Index: de_DE.ISO8859-1/books/handbook/basics/chapter.xml =================================================================== --- de_DE.ISO8859-1/books/handbook/basics/chapter.xml +++ de_DE.ISO8859-1/books/handbook/basics/chapter.xml @@ -5,7 +5,7 @@ $FreeBSD$ $FreeBSDde$ - basiert auf: r40588 + basiert auf: r40856 --> Grundlagen des UNIX Betriebssystems @@ -23,12 +23,11 @@ Übersicht - Das folgende Kapitel umfasst die grundlegenden Kommandos - und Funktionsweisen des Betriebssystems FreeBSD. Viel von dem folgenden + Dieses Kapitel umfasst die grundlegenden Kommandos + und Funktionsweisen des &os;-Betriebssystems. Viel von diesem Material gilt auch für jedes andere &unix;-artige System. - Falls Sie mit dem Material schon vertraut sind, können Sie dieses - Kapitel überlesen. Wenn FreeBSD neu für Sie ist, dann sollten - Sie dieses Kapitel auf jeden Fall aufmerksam lesen. + Neue Benutzer von &os; sollten dieses Kapitel aufmerksam + lesen. Dieser Abschnitt behandelt die folgenden Themen: @@ -78,162 +77,128 @@ virtuelle Konsole Terminals - Sie können FreeBSD mit einem Terminal benutzen, der nur Text + Sie können &os; mit einem Terminal benutzen, der nur Text darstellen kann. Wenn Sie FreeBSD auf diese Weise benutzen, stehen Ihnen alle Möglichkeiten eines &unix; Betriebssystems zur Verfügung. Dieser Abschnitt beschreibt was Terminals und - Konsolen sind und wie sie unter FreeBSD eingesetzt werden. + Konsolen sind und wie sie unter &os; eingesetzt werden. Die Konsole Konsole - Wenn Ihr FreeBSD-System ohne eine graphische - Benutzeroberfläche startet, wird am Ende des Systemstarts, - nachdem die Startskripten gelaufen sind, ein Anmeldeprompt - ausgegeben. Die letzten Startmeldungen sollten ähnlich wie - die Folgenden aussehen: + Wenn das &os;-System so konfiguriert wurde, dass es ohne + eine grafische Benutzeroberfläche startet, wird das System + nach dem starten einen Anmeldeprompt ausgeben, wie in diesem + Beispiel zu sehen: - Additional ABI support:. -Local package initialization:. -Additional TCP options:. + FreeBSD/amd64 (pc3.example.org) (ttyv0) -Fri Sep 20 13:01:06 EEST 2002 - -FreeBSD/i386 (pc3.example.org) (ttyv0) - login: - Beachten Sie die letzten beiden Zeilen der Ausgabe, die - vorletzte lautet: + Die erste Zeile enthält einige Informationen über das + System. amd64 zeigt an, dass auf dem + System in diesem Beispiel eine 64-Bit Version von &os; + läuft. Der Hostname ist + pc3.example.org und + ttyv0 gibt an, dass dies die + Systemkonsole ist. - FreeBSD/i386 (pc3.example.org) (ttyv0) - - Diese Zeile enthält einige Informationen über das - gerade gestartete System. Die Ausgabe stammt von der - FreeBSD-Konsole einer Maschine mit einem Intel oder - Intel-kompatiblen Prozessor der x86-Architektur - Genau das ist mit i386 gemeint. Auch - wenn Ihr System keine Intel 386 CPU besitzt, wird - i386 ausgegeben. Es wird immer die - Architektur und nicht der Typ des Prozessors ausgegeben. - . Der Name des Systems (jedes &unix; System besitzt - einen Namen) ist pc3.example.org und die Ausgabe - stammt von der Systemkonsole, dem Terminal - ttyv0. - - Das Ende der Ausgabe ist immer die Aufforderung zur Eingabe - eines Benutzernamens: - - login: - - Der Anmeldevorgang wird im nächsten Abschnitt - erläutert. + Die zweite Zeile zeigt den Anmeldeprompt. Im nächsten + Abschnitt wird beschrieben, wie Sie sich an diesem Prompt + anmelden. Der Anmeldevorgang - FreeBSD ist ein Mehrbenutzersystem, das Multitasking - unterstützt. Das heißt mehrere Benutzer können + &os; ist ein Mehrbenutzersystem, das Multitasking + unterstützt. Das heißt mehrere Benutzer können gleichzeitig viele Programme auf einem System laufen lassen. Jedes Mehrbenutzersystem muss die Benutzer voneinander - unterscheiden können. Bei FreeBSD und allen anderen + unterscheiden können. Bei &os; und allen anderen &unix;-artigen Betriebssystemen wird dies dadurch erreicht, dass sich die Benutzer anmelden müssen, bevor sie Programme laufen lassen können. Jeder Benutzer besitzt einen eindeutigen Namen (den - Account) und ein dazugehörendes Passwort, die beide bei - der Anmeldung abgefragt werden. + Account) und ein dazugehörendes Passwort. &os; wird beides + abfragen, bevor es dem Benutzer ermöglicht Programme laufen zu + lassen. Startskripten - Nachdem FreeBSD gestartet ist und die Startskripten - Startskripten sind Programme, die FreeBSD automatisch bei - jedem Startvorgang ausführt. Der Zweck der Skripte - besteht darin, das System zu konfigurieren und nützliche - Dienste im Hintergrund zu starten. - , gelaufen sind, erscheint eine Aufforderung zur Eingabe - des Benutzernamens: + Wenn ein &os;-System startet, werden automatisch + Startskripten ausgeführt, um das System vorzubereiten und + entsprechend konfigurierte Dienste zu starten. Nachdem das + System die Startskripten abgearbeitet hat, wird es einen + Anmeldeprompt präsentieren: login: - Wenn Ihr Benutzername beispielsweise john - ist, geben Sie jetzt john gefolgt von - Enter ein. Sie sollten dann eine Aufforderung zur - Eingabe des Passworts erhalten: + Geben Sie den Benutzernamen ein, der während der + Systeminstallation + konfiguriert wurde und drücken Sie Enter. + Geben Sie dann das zum Benutzernamen zugeordnete Passwort ein + und drücken Enter. Das Passwort wird aus + Sicherheitsgründen + nicht angezeigt. - login: john -Password: - - Geben Sie jetzt das Passwort von john - gefolgt von Enter ein. Das Passwort wird aus - Sicherheitsgründen nicht auf dem Bildschirm angezeigt. - - Wenn Sie das richtige Passwort eingegeben haben, sind Sie - am System angemeldet und können nun alle verfügbaren - Kommandos absetzen. - - Anmgemeldet sind Sie, wenn Sie die Tagesmeldungen - (message of today) gefolgt - von einer Eingabeaufforderung (dem Zeichen #, - $ oder %) gesehen - haben. + Sobald das richtige Passwort eingegeben wird, wird die + Nachricht des Tages (MOTD) gefolgt von + einer Eingabeaufforderung (dem Zeichen #, + $ oder %) angezeigt. + Sie sind nun an der &os;-Systemkonsole angemeldet und bereit, + alle verfügbaren Kommandos zu probieren. Virtuelle Konsolen - Da FreeBSD mehrere Programme gleichzeitig laufen lassen kann, - ist eine einzige Konsole, an der Kommandos abgesetzt werden - können, zu wenig. Abhilfe schaffen virtuelle Konsolen, die - mehrere Konsolen zur Verfügung stellen. + &os; kann so konfiguriert werden, dass viele virtuelle + Konsolen zur Eingabe von Befehlen zur Verfügung stehen. Jede + virtuelle Konsole verfügt über einen eigenen Anmeldeprompt und + Ausgabekanal, und &os; kümmert sich um die ordnungsgemäße + Umleitung von Tastatureingaben und Monitorausgaben, wenn Sie + zwischen den virtuellen Konsolen umschalten. - Die Anzahl der virtuellen Konsolen unter FreeBSD können Sie - einstellen. Zwischen den einzelnen Konsolen können Sie mit - speziellen Tastenkombinationen wechseln. Jede Konsole verfügt - über einen eigenen Ausgabekanal und FreeBSD ordnet die - Tastatureingaben und Monitorausgaben der richtigen Konsole zu, wenn - Sie zwischen den Konsolen wechseln. - - Zum Umschalten der Konsolen stellt FreeBSD spezielle - Tastenkombinationen bereit - Eine recht technische und genaue Beschreibung der FreeBSD-Konsole - und der Tastatur-Treiber finden Sie in den Hilfeseiten - &man.syscons.4;, &man.atkbd.4;, &man.vidcontrol.1; und - &man.kbdcontrol.1;. Lesen Sie diese Seiten, wenn Sie an den - Einzelheiten interessiert sind. - . Benutzen Sie + Zum Umschalten der Konsolen stellt &os; spezielle + Tastenkombinationen bereit + Lesen Sie &man.syscons.4;, &man.atkbd.4;, + &man.vidcontrol.1; und &man.kbdcontrol.1; für eine recht + technische Beschreibung der &os;-Konsole und der + Tastatur-Treiber.. Benutzen Sie AltF1, - AltF2 bis + AltF2 + bis AltF8, - um zwischen den verschiedenen Konsolen umzuschalten. + um zwischen den verschiedenen virtuellen Konsolen + umzuschalten. - Wenn Sie zu einer anderen Konsole wechseln, sichert FreeBSD den - Bildschirminhalt und gibt den Bildschirminhalt der neuen Konsole - aus. Dies erzeugt die Illusion mehrerer Bildschirme und - Tastaturen, an denen Sie Kommandos absetzen können. Wenn eine - Konsole nicht sichtbar ist, weil Sie auf eine andere Konsole - gewechselt haben, laufen die dort abgesetzten Kommandos - weiter. + Wird von einer Konsole zur nächsten gewechselt, sichert + &os; den Bildschirminhalt und gibt den Bildschirminhalt der + neuen Konsole aus. Dies erzeugt die Illusion mehrerer + Bildschirme und Tastaturen, an denen Kommandos abgesetzt + werden können. Wenn eine Konsole nicht sichtbar ist, weil + ein Benutzer auf eine andere Konsole gewechselt hat, laufen + die dort abgesetzten Kommandos trotzdem weiter. <filename>/etc/ttys</filename> - In der Voreinstellung stehen unter FreeBSD acht virtuelle - Konsolen zur Verfügung, deren Anzahl Sie leicht erhöhen + In der Voreinstellung startet &os; acht virtuelle + Konsolen, deren Anzahl Sie leicht erhöhen oder verringern können. Die Anzahl und Art der Konsolen wird in /etc/ttys eingestellt. - Jede Zeile in /etc/ttys, die nicht mit - # anfängt, konfiguriert einen Terminal oder - eine virtuelle Konsole. In der Voreinstellung werden in dieser - Datei neun virtuelle Konsolen definiert, von denen acht aktiviert - sind. Die Konsolen sind in den Zeilen, die mit - ttyv beginnen, definiert: + Jede Zeile in /etc/ttys, die nicht + mit # anfängt, konfiguriert einen Terminal + oder eine virtuelle Konsole. In der Voreinstellung werden + neun virtuelle Konsolen definiert, von denen acht aktiviert + sind. Die Zeilen, die mit ttyv beginnen, + kennzeichnen die Konsolen: - # name getty type status comments + # name getty type status comments # ttyv0 "/usr/libexec/getty Pc" cons25 on secure # Virtual terminals @@ -246,39 +211,42 @@ ttyv7 "/usr/libexec/getty Pc" cons25 on secure ttyv8 "/usr/X11R6/bin/xdm -nodaemon" xterm off secure - Die Hilfeseite &man.ttys.5; enthält eine ausführliche - Beschreibung der Spalten dieser Datei und der Optionen, die Sie zum - Konfigurieren der virtuellen Konsolen benutzen können. + Die Manualpage &man.ttys.5; enthält eine ausführliche + Beschreibung der Spalten dieser Datei und der verfügbaren + Optionen für virtuelle Konsolen. Die Konsole im Single-User-Modus - Eine eingehende Beschreibung des Single-User-Modus finden Sie - in . Im Single-User-Modus steht - Ihnen nur eine Konsole zur Verfügung. - Die Definition dieser Konsole befindet sich ebenfalls in - /etc/ttys. Suchen Sie nach einer Zeile, die - mit console beginnt: + Eine eingehende Beschreibung des Single-User-Modus findet sich + in . Im Single-User-Modus steht + nur eine Konsole zur Verfügung. + Die Einstellungen dieser Konsole befinden sich in diesem + Abschnitt von /etc/ttys: - # name getty type status comments + # name getty type status comments # # If console is marked "insecure", then init will ask for the root password # when going to single-user mode. -console none unknown off secure +console none unknown off secure In der Zeile, die mit console beginnt, - können Sie secure durch - insecure ersetzen. Wenn Sie danach in den - Single-User-Modus booten, verlangt das System ebenfalls die - Eingabe des root-Passworts. + kann secure durch + insecure ersetzt werden. Wenn danach in + den Single-User-Modus gebootet wird, verlangt das System die + Eingabe des root-Passworts. In der + Standardeinstellung wird beim Betreten des Single-User-Modus + kein Passwort verlangt. Setzen Sie insecure nicht - leichtfertig ein. Wenn Sie das Passwort von - root vergessen, wird es schwierig, in den - Single-User-Modus zu gelangen, wenn Sie den - FreeBSD-Boot-Prozess nicht genau verstehen. + leichtfertig ein. Wenn Sie das + root-Passwort + vergessen, wird es schwierig, in den + Single-User-Modus zu gelangen, wenn man den Bootprozess von + &os; nicht genau versteht. @@ -285,33 +253,32 @@ Den Videomodus der Konsole anpassen - Der Standard-Videomodus der FreeBSD-Konsole kann auf jeden - Modus eingestellt werden, der von Ihrer Grafikkarte und Ihrem + Der Standard-Videomodus der &os;-Konsole kann auf jeden + Modus eingestellt werden, der von der Grafikkarte und dem Monitor unterstützt wird (beispielsweise 1024x768 oder - 1280x1024). Wollen Sie eine andere Einstellung verwenden, - müssen Sie das VESA-Modul laden: + 1280x1024). Um eine andere Einstellung zu verwenden, muss + das VESA-Modul geladen werden: &prompt.root; kldload vesa - Um festzustellen welche Video-Modi von Ihrer Hardware - unterstützt werden, nutzen Sie das Werkzeug - &man.vidcontrol.1;. Um beispielsweise einer Liste aller - unterstützten Modi zu erhalten, verwenden Sie den folgenden - Befehl: + Um festzustellen, welche Video-Modi von der Hardware + unterstützt werden, nutzen Sie &man.vidcontrol.1;. Um eine + Liste aller unterstützten Modi zu sehen, verwenden Sie diesen + Befehl: &prompt.root; vidcontrol -i mode - Als Ergebnis erhalten Sie eine Liste aller Videomodi, - die von Ihrer Hardware unterstützt werden. Sie wählen - einen neuen Modus aus, indem Sie den entsprechenden Wert - (wiederum als Benutzer root) an + Die Ausgabe dieses Befehls listet alle Videomodi, die von + der Hardware unterstützt werden. Um einen neuen Video-Modi zu + wählen, wird der entsprechende Modus als + root-Benutzer an &man.vidcontrol.1; übergeben: &prompt.root; vidcontrol MODE_279 - Um diese Einstellung dauerhaft zu speichern, müssen Sie - die folgende Zeile in die Datei - /etc/rc.conf aufnehmen: + Um diese Einstellung dauerhaft zu speichern, muss + folgende Zeile in /etc/rc.conf + hinzugefügt werden: allscreens_flags="MODE_279" @@ -321,14 +288,14 @@ Zugriffsrechte UNIX - FreeBSD, das ein direkter Abkömmling von BSD &unix; ist, + &os;, das ein direkter Abkömmling von BSD &unix; ist, stützt sich auf mehrere Grundkonzepte von &unix; Systemen. - Das erste und ausgeprägteste: FreeBSD ist - ein Mehrbenutzer-Betriebssystem. Das System ermöglicht, + Das erste und ausgeprägteste: &os; ist + ein Mehrbenutzer-Betriebssystem, das es ermöglicht, dass mehrere Benutzer gleichzeitig an völlig verschiedenen und unabhängigen Aufgaben arbeiten können. Es ist verantwortlich für eine gerechte Auf- und Zuteilung von - Nachfragen nach Hardware- und Peripheriegeräten, Speicher + Anfragen nach Hardware- und Peripheriegeräten, Speicher und CPU-Zeit unter den Benutzern. Da das System mehrere Benutzer unterstützt, hat alles, @@ -410,8 +377,8 @@ Verzeichnisse - Sie können auf der Kommandozeile - von &man.ls.1; angeben, um eine ausführliche Verzeichnisauflistung + Benutzen Sie das Argument mit + &man.ls.1;, um eine ausführliche Verzeichnisauflistung zu sehen, die in einer Spalte die Zugriffsrechte für den Besitzer, die Gruppe und alle anderen enthält. Die Ausgabe von ls -l könnte @@ -421,15 +388,9 @@ total 530 -rw-r--r-- 1 root wheel 512 Sep 5 12:31 myfile -rw-r--r-- 1 root wheel 512 Sep 5 12:31 otherfile --rw-r--r-- 1 root wheel 7680 Sep 5 12:31 email.txt -... +-rw-r--r-- 1 root wheel 7680 Sep 5 12:31 email.txt - Die erste Spalte der Ausgabe enth舁t die - Zugriffsrechte: - - -rw-r--r-- - - Das erste Zeichen von links ist ein Symbol, welches angibt, + Das erste Zeichen (ganz links) der ersten Spalte zeigt an, ob es sich um eine normale Datei, ein Verzeichnis, ein zeichenorientiertes Ger舩, ein Socket oder irgendeine andere Pseudo-Datei handelt. In diesem Beispiel zeigt - eine @@ -439,7 +400,7 @@ r-- die Rechte der Gruppe, zu der die Datei gehört. Die letzten drei Zeichen, r--, geben die Rechte für den Rest der Welt an. Ein Minus - bedeutet, dass das Recht nicht gegeben ist. In diesem Fall + bedeutet, dass das Recht nicht gegeben ist. In diesem Beispiel sind die Zugriffsrechte also: der Eigentümer kann die Datei lesen und schreiben, die Gruppe kann lesen und alle anderen können auch nur lesen. Entsprechend obiger Tabelle @@ -447,19 +408,18 @@ 644, worin jede Ziffer die drei Teile der Zugriffsrechte dieser Datei verkörpert. - Das ist alles schön und gut, aber wie kontrolliert das - System die Rechte von Hardware-Geräten? FreeBSD behandelt - die meisten Hardware-Geräte als Dateien, welche Programme - öffnen, lesen und mit Daten beschreiben können wie - alle anderen Dateien auch. Diese Spezial-Dateien sind im - Verzeichnis /dev gespeichert. + Wie kontrolliert das System die Rechte von Hardware-Geräten? + &os; behandelt die meisten Hardware-Geräte als Dateien, welche + Programme öffnen, lesen und mit Daten beschreiben können. Diese + speziellen Gerätedateien sind in /dev + gespeichert. Verzeichnisse werden ebenfalls wie Dateien behandelt. Sie haben Lese-, Schreib- und Ausführ-Rechte. Das Ausführungs-Bit hat eine etwas andere Bedeutung für ein Verzeichnis als für eine Datei. Die Ausführbarkeit - eines Verzeichnisses bedeutet, dass in das Verzeichnis - zum Beispiel mit cd gewechselt werden kann. + eines Verzeichnisses bedeutet, dass in das Verzeichnis, + zum Beispiel mit cd, gewechselt werden kann. Das bedeutet auch, dass in dem Verzeichnis auf Dateien, deren Namen bekannt sind, zugegriffen werden kann, vorausgesetzt die Zugriffsrechte der Dateien lassen dies zu. @@ -489,12 +449,13 @@ symbolische - Die Zugriffsrechte lassen sich auch über Symbole - anstelle von oktalen Werten festlegen. Symbolische - Zugriffsrechte werden in der Reihenfolge - Wer, Aktion - und Berechtigung angegeben. - Die folgenden Symbole stehen zur Auswahl: + Symbolische Zugriffsrechte verwenden Zeichen anstelle von + oktalen Werten, um die Berechtigungen für Dateien oder + Verzeichnisse festzulegen. Zugriffsrechte verwenden die + Syntax Wer, + Aktion und + Berechtigung. Die folgenden + Werte stehen zur Auswahl: @@ -583,11 +544,10 @@ - Symbolische Zugriffsrechte werden wie die numerischen - mit dem Kommando &man.chmod.1; vergeben. Wenn - Sie beispielsweise allen anderen Benutzern den Zugriff auf - die Datei FILE verbieten wollen, - benutzen Sie den nachstehenden Befehl: + Diese symbolischen Werte werden zusammen mit &man.chmod.1; + verwendet. Beispielsweise würde der folgende Befehl den Zugriff + auf FILE für alle anderen Benutzer + verbieten: &prompt.user; chmod go= FILE @@ -594,10 +554,9 @@ Wenn Sie mehr als eine Änderung der Rechte einer Datei vornehmen wollen, können Sie eine durch Kommata getrennte Liste der Rechte angeben. Das folgende Beispiel - entzieht der Gruppe und der Welt (den anderen) die - Schreibberechtigung auf die Datei FILE - und fügt dann für alle Ausführungsrechte - hinzu: + entzieht der Gruppe und der Welt die Schreibberechtigung auf + FILE und fügt für jeden + Ausführungsrechte hinzu: &prompt.user; chmod go-w,a+x FILE @@ -617,46 +576,40 @@ - Zusätzlich zu den vorhin diskutierten Zugriffsrechten - unterstützt &os; auch die sogenannten + Zusätzlich zu den Zugriffsrechten + unterstützt &os; auch die Nutzung von Datei-Flags. Diese erhöhen die Sicherheit Ihres Systems, indem sie eine verbesserte Kontrolle von Dateien erlauben. Verzeichnisse werden allerdings nicht - unterstützt. + unterstützt. Mit dem Einsatz von Datei-Flags kann sogar + root daran gehindert + werden, Dateien zu löschen oder zu verändern. - Diese verbesserte Sicherheit führt dazu, dass manche - Dateien nicht einmal von root gelöscht - oder bearbeitet werden können. - - Datei-Flags können über &man.chflags.1; gesetzt - oder gelöscht werden. Um beispielsweise die Datei - file1 mit dem - unlöschbar-Flag zu sichern, geben Sie + Datei-Flags werden mit &man.chflags.1; verändert. Um + beispielsweise auf der Datei file1 das + unlöschbar-Flag zu aktivieren, geben Sie folgenden Befehl ein: &prompt.root; chflags sunlink file1 - Um dieses Flag wieder zu löschen, geben Sie den - Befehl erneut ein. Allerdings setzen Sie ein + Um dieses Flag zu deaktivieren, setzen Sie ein no vor : &prompt.root; chflags nosunlink file1 - Um die Flags dieser Datei anzuzeigen, verwenden Sie - &man.ls.1; zusammen mit der Option : + Um die Flags einer Datei anzuzeigen, verwenden Sie + &man.ls.1; zusammen mit : &prompt.root; ls -lo file1 - Dadurch erhalten Sie eine Ausgabe ähnlich der - folgenden: - -rw-r--r-- 1 trhodes trhodes sunlnk 0 Mar 1 05:54 file1 - Viele Flags können nur von root + Einige Datei-Flags können nur vom + root-Benutzer gesetzt oder gelöscht werden. Andere wiederum können auch vom Eigentümer der Datei gesetzt werden. Weitere - Informationen zu Datei-Flags finden sich in den Manualpages - &man.chflags.1; und &man.chflags.2;. + Informationen hierzu finden sich in &man.chflags.1; und + &man.chflags.2;. @@ -693,16 +646,6 @@ einen Permission Denied-Fehler angezeigt zu bekommen. - - Die nosuid &man.mount.8;-Option wird dafür - sorgen, dass diese Anwendungen stillschweigend scheitern. Genauer - gesagt, sie werden nicht ausgeführt und der Anwender wird - darüber auch nicht informiert. Auf diese Option kann man sich - nicht vollständig verlassen, da ein - nosuid-Wrapper in der Lage wäre, dies zu - umgehen, wie in der &man.mount.8; Manualpage zu lesen ist. - - Die setuid-Berechtigung kann durch das Voranstellen bei einer Berechtigungsgruppe mit der Nummer Vier (4) gesetzt werden, wie im folgenden Beispiel gezeigt wird: @@ -709,23 +652,31 @@ &prompt.root; chmod 4755 suidexample.sh - Die Berechtigungen auf der - suidexample.sh-Datei - sollten jetzt wie folgt aussehen: + Die Berechtigungen auf suidexample.sh + sehen jetzt wie folgt aus: -rwsr-xr-x 1 trhodes trhodes 63 Aug 29 06:36 suidexample.sh - In dem Beispiel sollte auffallen, dass ein s - jetzt Teil der Berechtigungen des Dateibesitzers geworden ist, welches + Beachten Sie, dass ein s jetzt Teil der + Berechtigungen des Dateibesitzers geworden ist, welches das Ausführen-Bit ersetzt. Dies ermöglicht es Werkzeugen mit erhöhten Berechtigungen zu laufen, wie z.B. passwd. + + Die nosuid &man.mount.8;-Option + bewirkt, dass solche Anwendungen stillschweigend scheitern, + ohne den Anwender darüber zu informieren. Diese Option ist + nicht völlig zuverlässig, da ein + nosuid-Wrapper in der Lage wäre, dies zu + umgehen. + + Um dies in Echtzeit zu beobachten, öffnen Sie zwei Terminals. Starten Sie auf einem den passwd-Prozess als normaler Benutzer. Während es auf die Passworteingabe wartet, überprüfen Sie die Prozesstabelle und sehen Sie sich die - Informationen des passwd-Kommandos an. + Informationen für passwd an. Im Terminal A: @@ -752,12 +703,12 @@ hat. Um die setgid-Berechtigung auf einer Datei zu - setzen, geben Sie dem chmod-Befehl eine - führende Zwei (2) mit, wie im folgenden gezeigt: + setzen, geben Sie chmod eine + führende Zwei (2) mit: &prompt.root; chmod 2755 sgidexample.sh - Die neue Einstellung kann wie zuvor betrachtet werden. Beachten Sie, + Beachten Sie in der folgenden Auflistung, dass das s sich jetzt in dem Feld befindet, das für die Berechtigungen der Gruppe bestimmt ist: @@ -771,34 +722,32 @@ &man.setuid.2;-Systemaufrufe erhalten. - Diese beiden ersten angesprochenen Spezialberechtigungen (die - setuid und setgid - Berechtigungs-Bits) können die Systemsicherheit verringern, da - sie erhöhte Rechte ermöglichen. Es gibt noch ein drittes - Berechtigungs-Bit, das die Sicherheit eines Systems erhöhen kann: - das sticky bit. + Die setuid und + setgid Berechtigungs-Bits können die + Systemsicherheit verringern, da sie erhöhte Rechte + ermöglichen. Das dritte Berechtigungs-Bit, das + sticky bit kann die Sicherheit eines + Systems erhöhen. - Das sticky bit erlaubt, wenn es auf ein - Verzeichnis angewendet wird, nur dem Besitzer der Datei diese Dateien - auch zu löschen. Dieses Recht ist nützlich, um die - Löschung von Dateien in öffentlichen Verzeichnissen durch - Benutzer, denen diese Dateien nicht gehören, zu verhindern, wie - z.B. in /tmp. Um diese Berechtigung anzuwenden, - stellen Sie der Berechtigung eine Eins (1) voran, beispielsweise - so: + Wenn das sticky bit auf einem + Verzeichnis angewendet wird, erlaubt es das Löschen von + Dateien nur durch den Besitzer der Datei. Dies ist nützlich, + um die Löschung von Dateien in öffentlichen Verzeichnissen wie + /tmp, durch Benutzer denen diese Dateien + nicht gehören, zu verhindern. Um diese Berechtigung + anzuwenden, stellen Sie der Berechtigung eine Eins (1) + voran: &prompt.root; chmod 1777 /tmp - Den Effekt können Sie sich ansehen, indem Sie - das Kommando ls ausführen: + Das sticky bit kann anhand des + t ganz am Ende der Berechtigungen abgelesen + werden. &prompt.root; ls -al / | grep tmp drwxrwxrwt 10 root wheel 512 Aug 31 01:49 tmp - Das sticky bit kann anhand des - t ganz am Ende der Berechtigungen abgelesen - werden. @@ -806,12 +755,12 @@ Verzeichnis-Strukturen Verzeichnis Hierarchien - Die FreeBSD-Verzeichnishierarchie ist die Grundlage, um + Die &os;-Verzeichnishierarchie ist die Grundlage, um ein umfassendes Verständnis des Systems zu erlangen. - Das wichtigste Konzept, das Sie verstehen sollten, ist das - Root-Verzeichnis /. Dieses Verzeichnis ist das + Das wichtigste Verzeichnis ist das Root-Verzeichnis + /. Dieses Verzeichnis ist das erste, das während des Bootens eingehangen wird. Es - enthält das notwendige Basissystem, um das System in den + enthält das notwendige Basissystem, um das Betriebssystem in den Mehrbenutzerbetrieb zu bringen. Das Root-Verzeichnis enthält auch die Mountpunkte für Dateisysteme, die beim Wechsel in den Multiuser-Modus eingehängt werden. @@ -824,20 +773,19 @@ /var, /tmp, /mnt sowie /cdrom. Auf diese Verzeichnisse verweisen üblicherweise Einträge - in der Datei /etc/fstab. - /etc/fstab ist - eine Tabelle mit verschiedenen Dateisystemen und Mountpunkten - als Referenz des Systems. Die meisten der Dateisysteme in + in /etc/fstab. Diese Datei ist + eine Tabelle mit verschiedenen Dateisystemen und Mountpunkten, + vom System gelesen werden. Die meisten der Dateisysteme in /etc/fstab werden beim Booten automatisch durch das Skript &man.rc.8; gemountet, wenn die zugehörigen - Einträge nicht mit der Option + Einträge nicht mit versehen sind. Weitere Informationen zu diesem Thema finden Sie im . Eine vollständige Beschreibung der Dateisystem-Hierarchie - finden Sie in &man.hier.7;. Als Beispiel sei eine kurze - Übersicht über die am häufigsten verwendeten - Verzeichnisse gegeben: + finden Sie in &man.hier.7;. Die folgende Aufstellung gibt einen + kurzen Überblick über die am häufigsten verwendeten + Verzeichnisse: @@ -868,13 +816,14 @@ /boot/defaults/ - Vorgaben für die Boot-Konfiguration, siehe - &man.loader.conf.5;. + Vorgaben für die Boot-Konfiguration. Weitere + Details finden Sie in &man.loader.conf.5;. /dev/ - Gerätedateien, siehe &man.intro.4;. + Gerätedateien. Weitere Details finden Sie in + &man.intro.4;. @@ -884,8 +833,8 @@ /etc/defaults/ - Vorgaben für die System Konfigurationsdateien, - siehe &man.rc.8;. + Vorgaben für die System Konfigurationsdateien. + Weitere Details finden Sie in &man.rc.8;. @@ -896,21 +845,23 @@ /etc/namedb/ - Konfigurationsdateien von named, - siehe &man.named.8;. + Konfigurationsdateien von + named. Weitere Details finden Sie + in &man.named.8;. /etc/periodic/ - Täglich, wöchentlich oder monatlich - ablaufende Skripte, die von &man.cron.8; gestartet werden. - Siehe &man.periodic.8;. + Täglich, wöchentlich oder monatlich laufende + Skripte, die von &man.cron.8; gestartet werden. + Weitere Details finden Sie in + &man.periodic.8;. /etc/ppp/ Konfigurationsdateien von ppp, - siehe &man.ppp.8;. + wie in &man.ppp.8; beschrieben. @@ -921,14 +872,15 @@ /proc/ - Prozess Dateisystem, siehe &man.procfs.5; - und &man.mount.procfs.8;. + Prozess Dateisystem. Weitere Details finden Sie + in &man.procfs.5; und &man.mount.procfs.8;. /rescue/ Statisch gelinkte Programme zur Wiederherstellung - des Systems, lesen Sie dazu auch &man.rescue.8;. + des Systems, wie in &man.rescue.8; + beschrieben. @@ -950,11 +902,11 @@ Häufig wird ein speicherbasiertes Dateisystem unter /tmp eingehängt. Dieser Vorgang kann automatisiert werden, - wenn Sie die tmpmfs-bezogenen Variablen von - &man.rc.conf.5; verwenden. Alternativ können Sie - auch einen entsprechenden Eintrag in - /etc/fstab aufnehmen. Weitere - Informationen finden Sie in &man.mdmfs.8;. + wenn tmpmfs-bezogene Variablen von &man.rc.conf.5; + verwendet werden, oder ein entsprechender + Eintrag in /etc/fstab existiert. + Weitere Informationen finden Sie in + &man.mdmfs.8;. @@ -994,9 +946,9 @@ /usr/local/ - Lokale Programme, Bibliotheken usw. Die Ports-Sammlung - benutzt dieses Verzeichnis als Zielverzeichnis für zu - installierende Anwendungen. Innerhalb von + Lokale Programme und Bibliotheken. Die + Ports-Sammlung von &os; benutzt dieses Verzeichnis + als Zielverzeichnis für Anwendungen. Innerhalb von /usr/local sollte das von &man.hier.7; beschriebene Layout für /usr benutzt werden. Das @@ -1017,7 +969,7 @@ /usr/ports/ - Die FreeBSD-Ports-Sammlung (optional). + Die &os;-Ports-Sammlung (optional). @@ -1038,11 +990,6 @@ - /usr/X11R6/ - Optionale X11R6-Programme und Bibliotheken. - - - /var/ Wird für mehrere Zwecke genutzt und enthält Logdateien, temporäre Daten und Spooldateien. @@ -1049,10 +996,10 @@ Manchmal wird ein speicherbasiertes Dateisystem unter /var eingehängt. Dieser Vorgang kann automatisiert werden, - wenn Sie die varmfs-bezogenen Variablen von - &man.rc.conf.5; verwenden. Alternativ können Sie - auch einen entsprechenden Eintrag in - /etc/fstab aufnehmen. Weitere + wenn die varmfs-bezogenen Variablen von + &man.rc.conf.5; verwendet werden, oder ein + entsprechender Eintrag in + /etc/fstab existiert. Weitere Informationen finden Sie in &man.mdmfs.8;. @@ -1074,9 +1021,9 @@ /var/tmp/ - Tempor舐e Dateien. Dateien in diesem - Verzeichnis bleiben in der Regel auch bei einem Neustart - des Systems erhalten, es sei denn, bei + Tempor舐e Dateien, die in der Regel auch bei + einem Neustart des Systems erhalten bleiben, es sei + denn, bei /var handelt es sich um ein speicherbasiertes Dateisystem. @@ -1099,55 +1046,45 @@ In Dateinamen wird zwischen Groß- und Kleinschreibung unterschieden: readme.txt und README.TXT bezeichnen daher zwei - verschiedene Dateien. &os; benutzt keine Dateiendungen wie - .txt, um den Typ der Datei - (ein Programm, ein Dokument oder andere Daten) zu - bestimmen. + verschiedene Dateien. &os; benutzt keine Dateiendungen, + um den Typ der Datei zu bestimmen, egal ob es sich um ein + Programm, ein Dokument oder um andere Daten handelt. Dateien werden in Verzeichnissen gespeichert. In einem Verzeichnis können sich keine oder hunderte Dateien befinden. Ein Verzeichnis kann auch andere Verzeichnisse enthalten und so eine Hierarchie von Verzeichnissen aufbauen, - die Ihnen die Ablage von Daten erleichtert. + die die Ablage von Daten erleichtert. In Dateinamen werden Verzeichnisse durch einen Schrägstrich (/, - Slash) getrennt. Wenn + Slash) getrennt. Wenn z.B. das Verzeichnis foo ein Verzeichnis bar enthält, in dem sich die Datei readme.txt - befindet, lautet der vollständige Name der Datei - (oder der Pfad zur Datei) - foo/bar/readme.txt. + befindet, lautet der vollständige Name der Datei (oder der + Pfad zur Datei) + foo/bar/readme.txt. Beachten Sie, dass + sich dies von &windows; unterscheidet, wo der + \ (Backslash + für die Trennung von Datei- und Verzeichnisnamen + verwendet wird. &os; benutzt keine Laufwerkbuchstaben oder + Laufwerknamen im Pfad. Beispielsweise würde man unter + &os; nicht c:/foo/bar/readme.txt + eingeben. Verzeichnisse und Dateien werden in einem Dateisystem - gespeichert. Jedes Dateisystem besitzt ein - Wurzelverzeichnis - (Root-Directory), - das weitere Verzeichnisse enthalten kann. + gespeichert. Jedes Dateisystem besitzt genau ein + Wurzelverzeichnis, das so genannte + Root-Directory. Dieses + Wurzelverzeichnis kann weitere Verzeichnisse enthalten. + Ein Dateisystem wird als Wurzeldateisystem festgelegt, und + jedes weitere Dateisystem wird unter dem Wurzeldateisystem + eingehangen. Daher scheint jedes + Verzeichnis, unabhängig von der Anzahl der Platten, auf der + selben Platte zu liegen. - Dieses Konzept kennen Sie vielleicht von anderen - Betriebssystemen, aber es gibt einige Unterschiede: - In &ms-dos; werden Datei- und Verzeichnisnamen mit dem - Zeichen \ getrennt, &macos; benutzt - dazu das Zeichen :. - - &os; kennt keine Laufwerksbuchstaben und in Pfaden - werden keine Bezeichnungen für Laufwerke benutzt. - Die Pfadangabe c:/foo/bar/readme.txt - gibt es in &os; nicht. - - Stattdessen wird ein Dateisystem als Wurzeldateisystem - (root file system) - ausgewählt. Das Wurzelverzeichnis dieses Dateisystems - wird / genannt. - Jedes andere Dateisystem wird unter dem Wurzeldateisystem - eingehangen - (mount). Daher scheint - jedes Verzeichnis, unabhängig von der Anzahl der - Platten, auf derselben Platte zu liegen. - - Betrachten wir drei Dateisysteme A, + Angenommen, Sie haben drei Dateisysteme A, B und C. Jedes Dateisystem besitzt ein eigenes Wurzelverzeichnis, das zwei andere Verzeichnisse enthält: @@ -1159,7 +1096,7 @@ C2. Das Wurzeldateisystem soll A sein. - Das Kommando ls zeigt darin + ls zeigt darin die beiden Verzeichnisse A1 und A2 an. Der Verzeichnisbaum sieht wie folgt aus: @@ -1302,9 +1239,9 @@ bewirken. Normalerweise müssen Sie sich nicht mit Dateisystemen - beschäftigen. Während der Installation werden + beschäftigen. Während der Installation von &os; werden die Dateisysteme und die Stellen, in der sie eingehangen werden, - festgelegt. Dateisysteme müssen Sie erst wieder anlegen, + festgelegt. Dateisysteme müssen erst wieder angelegt werden, wenn Sie eine neue Platte hinzufügen. Sie können sogar mit nur einem großen @@ -1317,11 +1254,11 @@ Die Dateisysteme können mit unterschiedlichen Optionen (mount options) - eingehangen werden. Bei sorgfältiger Planung können - Sie beispielsweise das Wurzeldateisystem nur lesbar - einhängen. Damit schützen Sie sich vor dem - unabsichtlichen Löschen oder Editieren kritischer - Dateien. Von Benutzern beschreibbare Dateisysteme + eingehangen werden. Beispielsweise kann das + Wurzeldateisystem schreibgeschützt eingehangen werden, + sodass es für Benutzer nicht möglich ist, versehentlich + kritische Dateien zu editieren oder zu löschen. + Von Benutzern beschreibbare Dateisysteme wie /home können Sie mit der Option nosuid einhängen, wenn sie von anderen Dateisystemen getrennt @@ -1356,7 +1293,7 @@ Vorteil eines einzelnen Dateisystems - Die Größe von Dateisystemen liegt fest. + Dateisysteme haben eine festgelegte Größe. Es kann passieren, dass Sie eine Partition vergrößern müssen. Dies ist nicht leicht: Sie müssen die Daten sichern, das Dateisystem @@ -1381,9 +1318,9 @@ werden. &os; benutzt einen Teil der Platte für den - Swap-Bereich, der dem Rechner - virtuellen Speicher zur Verfügung - stellt. Dadurch kann der Rechner Anwendungen mehr Speicher + Swap-Bereich, um + virtuellen Speicher zur Verfügung zu + stellen. Dadurch kann der Rechner Anwendungen mehr Speicher zur Verfügung stellen als tatsächlich eingebaut ist. Wenn der Speicher knapp wird, kann &os; nicht benutzte Daten in den Swap-Bereich auslagern. Die ausgelagerten @@ -1412,7 +1349,7 @@ a Enth舁t normalerweise - das Wurzeldateisystem + das Wurzeldateisystem. @@ -1419,7 +1356,7 @@ b Enth舁t normalerweise - den Swap-Bereich + den Swap-Bereich. @@ -1487,12 +1424,9 @@ durchnummeriert. Gängige Festplatten-Namen sind in zusammengestellt. - Wenn Sie eine Partition angeben, erwartet &os;, dass Sie - auch die Slice und die Platte angeben, in denen sich die - Partition befindet. Wenn Sie eine Slice angeben, müssen - Sie auch die Platte der Slice angeben. Setzen Sie den Namen - aus dem Plattennamen gefolgt von einem s, - der Slice-Nummer und dem Buchstaben der Partition zusammen. + Wenn Sie eine Partition angeben, beinhaltet das den + Plattennamen, s, die Slice-Nummer und den + Buchstaben der Partition. Einige Beispiele finden Sie in . @@ -1499,13 +1433,10 @@ Der Aufbau einer Festplatte wird in dargestellt. - Um &os; zu installieren, müssen Sie zuerst Slices - auf den Festplatten anlegen. Innerhalb der Slices, die Sie - für &os; verwenden wollen, müssen Sie dann - Partitionen anlegen. In den Partitionen wiederum werden - die Dateisysteme (oder der Auslagerungsbereich) angelegt. - Für Dateisysteme müssen Sie schließlich - noch festlegen, wo diese eingehangen werden (Mount-Point). + Bei der Installation von &os; legen Sie Slices auf der + Festplatte an, erstellen Partitionen für &os; innerhalb der + Slice, erstellen ein Dateisystem oder Auslagerungsbereiche und + entscheiden, welche Dateisysteme wo eingehangen werden. Laufwerk-Codes @@ -1598,12 +1529,12 @@ Aufteilung einer FestplatteDas folgende Diagramm zeigt die Sicht von &os; auf die - erste IDE-Festplatte eines Rechners. Die Platte soll + erste IDE-Festplatte des Systems. Die Platte soll 4 GB gro゚ sein und zwei Slices (&ms-dos;-Partitionen) mit je 2 GB besitzen. Die erste Slice enth舁t ein &ms-dos;-Laufwerk (C:), die zweite - Slice wird von &os; benutzt. Im Beispiel verwendet die - &os;-Installationen drei Datenpartitionen und einen + Slice wird von &os; benutzt. Die &os;-Installation in + diesem Beispiel verwendet drei Datenpartitionen und einen Auslagerungsbereich.Jede der drei Partitionen enth舁t ein Dateisystem. @@ -1688,11 +1619,9 @@ Während des Boot-Prozesses werden in /etc/fstab aufgeführte Verzeichnisse, sofern sie nicht mit der Option - versehen sind, automatisch angehangen. + versehen sind, automatisch angehangen. Diese Datei enthält + Einträge in folgendem Format: - Die Zeilen in /etc/fstab haben das - folgende Format: - device /mount-point fstype options dumpfreq passno @@ -1709,8 +1638,8 @@ mount-point - Ein existierendes Verzeichnis, - an das das Dateisystem angehangen wird. + Ein existierendes Verzeichnis, auf dem + das Dateisystem gemountet wird. @@ -1719,7 +1648,7 @@ Der Typ des Dateisystems, - der an &man.mount.8; weitergegeben wird. FreeBSDs + der an &man.mount.8; weitergegeben wird. &os;s Standarddateisystem ist ufs. @@ -1742,9 +1671,10 @@ dumpfreq - Gibt die Anzahl der Tage an, nachdem das - Dateisystem gesichert werden soll. Fehlt der Wert, wird - 0 angenommen. + Wird von &man.dump.8; benutzt, um bestimmen + zu können, welche Dateisysteme gesichert werden müssen. + Fehlt der Wert, wird 0 + angenommen. @@ -1754,11 +1684,11 @@ Bestimmt die Reihenfolge, in der die Dateisysteme überprüft werden sollen. Für Dateisysteme, die übersprungen werden sollen, ist - passno auf null zu setzen. Für das + passno auf 0 zu setzen. Für das Root-Dateisystem, das vor allen anderen überprüft werden muss, sollte der Wert von - passno eins betragen. Allen anderen - Dateisystemen sollten Werte größer eins zugewiesen + passno 1 betragen. Allen anderen + Dateisystemen sollten Werte größer 1 zugewiesen werden. Wenn mehrere Dateisysteme den gleichen Wert besitzen, wird &man.fsck.8; versuchen, diese parallel zu überprüfen. @@ -1765,6 +1695,10 @@ + + Lesen Sie &man.fstab.5; für weitere Informationen über das + Format von /etc/fstab und dessen + Optionen. @@ -1774,17 +1708,17 @@ anh舅gen - &man.mount.8; h舅gt schlie゚lich Dateisysteme - an. + Dateisysteme werden mit &man.mount.8; eingeh舅gt. In der + grundlegenden Form wird es wie folgt benutzt: - In der grundlegenden Form wird es wie folgt benutzt: - - &prompt.root; mount device mountpoint + &prompt.root; mount device +mountpoint - Viele Optionen werden in &man.mount.8; beschrieben, - die am h舫figsten verwendeten sind: + Dieser Befehl bietet viele Optionen, die in &man.mount.8; + beschrieben werden. Die am h舫figsten verwendeten Optionen + sind: Optionen von <command>mount</command> @@ -1819,7 +1753,7 @@ Erzwingt das Anhängen eines unsauberen Dateisystems - oder erzwingt die Rücknahme des Schreibzugriffs, wenn + (riskant) oder die Rücknahme des Schreibzugriffs, wenn der Status des Dateisystems von beschreibbar auf schreibgeschützt geändert wird. @@ -1829,9 +1763,9 @@ - Hängt das Dateisystem schreibgeschützt ein. Das - kann auch durch Angabe von als Argument - der Option erreicht werden. + Hängt das Dateisystem schreibgeschützt ein. Dies + kann auch durch Angabe von + erreicht werden. @@ -1842,11 +1776,8 @@ Hängt das Dateisystem mit dem angegebenen Typ an, oder hängt nur Dateisysteme mit dem angegebenen Typ - an, wenn auch angegeben - wurde. - - Die Voreinstellung für den Typ des Dateisystems - ist ufs. + an, wenn angegeben wurde. + ufs ist das Standarddateisystem. @@ -1875,8 +1806,9 @@ - erwartet eine durch Kommata separierte Liste - von Optionen, unter anderem die folgenden: + Die folgenden Optionen können durch eine Kommata + separierte Liste an übergeben + werden: @@ -1908,21 +1840,22 @@ abhängen - &man.umount.8; akzeptiert als Parameter entweder - einen Mountpoint, einen Gerätenamen, oder die - Optionen oder . + &man.umount.8; hängt ein Dateisysstem ab. Dieser Befehl + akzeptiert als Parameter entweder + einen Mountpoint, einen Gerätenamen, + oder . Jede Form akzeptiert , um das Abhängen zu erzwingen, und , um etwas geschwätziger zu sein. Seien Sie bitte vorsichtig mit - : Ihr Computer kann abstürzen oder es - können Daten auf dem Dateisystem beschädigt werden, wenn - Sie das Abhängen erzwingen. + , da der Computer abstürzen kann oder es + können Daten auf dem Dateisystem beschädigt werden. - und werden benutzt - um alle Dateisysteme, deren Typ durch - modifiziert werden kann, abzuhängen. - hängt das Rootdateisystem nicht ab. + Um alle Dateisysteme abzuhängen, oder nur diejenigen, die + mit gelistet werden, wird + oder benutzt. + Beachten Sie, dass das Root-Dateisystem + nicht aushängt. @@ -1929,40 +1862,35 @@ Prozesse - Da FreeBSD ein Multitasking-Betriebssystem ist, sieht es so aus, - als ob mehrere Prozesse zur gleichen Zeit laufen. Jedes Programm, - das zu irgendeiner Zeit läuft, wird - Prozess genannt. Jedes Kommando - startet mindestens einen Prozess. Einige Systemprozesse - laufen ständig und stellen die Funktion des Systems sicher. + &os; ist ein Multitasking-Betriebssystem. Jedes + Programm, das zu irgendeiner Zeit läuft wird als + Prozess bezeichnet. Jedes laufende + Kommando startet mindestens einen neuen Prozess. Dazu gibt + es eine Reihe von Systemprozessen, die von &os; ausgeführt + werden. Jeder Prozess wird durch eine eindeutige Nummer identifiziert, - die Prozess-ID oder - PID genannt wird. Prozesse haben ebenso + die Prozess-ID + (PID) genannt wird. Prozesse haben ebenso wie Dateien einen Besitzer und eine Gruppe, die festlegen, welche - Dateien und Geräte der Prozess benutzen kann. Dabei - finden die vorher beschriebenen Zugriffsrechte Anwendung. Die meisten + Dateien und Geräte der Prozess benutzen kann. Die meisten Prozesse haben auch einen Elternprozess, der sie gestartet hat. - Wenn Sie in der Shell Kommandos eingeben, dann ist die Shell ein - Prozess und jedes Kommando, das Sie starten, ist auch ein - Prozess. Jeder Prozess, den Sie auf diese Weise starten, - besitzt den Shell-Prozess als Elternprozess. Die Ausnahme - hiervon ist ein spezieller Prozess, der &man.init.8; - heißt. init ist immer der erste Prozess - und hat somit die PID 1. init wird vom Kernel - beim Booten von FreeBSD gestartet. + Beispielsweise ist die Shell ein Prozess. Jedes in Shell + gestartete Kommando ist dann ein neuer Prozess, der die Shell + als Elternprozess besitzt. Die Ausnahme hiervon ist ein + spezieller Prozess namens &man.init.8;, der beim booten immer + als erstes gestartet wird und der immer die PID 1 hat. - Die Kommandos &man.ps.1; und &man.top.1; sind besonders - nützlich, um sich die Prozesse auf einem System anzusehen. - ps zeigt eine statische Liste der laufenden - Prozesse und kann deren PID, Speicherverbrauch und die - Kommandozeile, mit der sie gestartet wurden und vieles mehr - anzeigen. top zeigt alle laufenden Prozesse - an und aktualisiert die Anzeige, so dass Sie Ihrem Computer - bei der Arbeit zuschauen können. + Um die Prozesse auf dem System zu sehen, benutzen Sie + &man.ps.1; und &man.top.1;. Eine statische Liste der laufenden + Prozesse, deren PID, Speicherverbauch und die Kommandozeile, mit + der sie gestartet wurden, erhalten Sie mit &man.ps.1;. Um alle + laufenden Prozesse in einer Anzeige zu sehen, die alle paar + Sekunden aktualisiert wird, so dass Sie interaktiv sehen können + was der Computer macht, benutzen Sie &man.top.1;. - Normal zeigt Ihnen ps nur die laufenden - Prozesse, die Ihnen gehören. Zum Beispiel: + Normal zeigt ps nur die laufenden + Prozesse, die dem Benutzer gehören. Zum Beispiel: &prompt.user; ps PID TT STAT TIME COMMAND @@ -1970,7 +1898,6 @@ 7078 p0 S 2:40.88 xemacs mdoc.xsl (xemacs-21.1.14) 37393 p0 I 0:03.11 xemacs freebsd.dsl (xemacs-21.1.14) 48630 p0 S 2:50.89 /usr/local/lib/netscape-linux/navigator-linux-4.77.bi -48730 p0 IW 0:00.00 (dns helper) (navigator-linux-) 72210 p0 R+ 0:00.00 ps 390 p1 Is 0:01.14 tcsh 7059 p2 Is+ 1:36.18 /usr/local/bin/mutt -y @@ -1983,18 +1910,19 @@ 284 v0 IW 0:00.00 /bin/sh /home/nik/.xinitrc 285 v0 S 0:38.45 /usr/X11R6/bin/sawfish - Wie Sie sehen, gibt &man.ps.1; mehrere Spalten aus. In der - PID Spalte findet sich die vorher besprochene - Prozess-ID. PIDs werden von 1 beginnend bis 99999 zugewiesen - und fangen wieder von vorne an, wenn die Grenze überschritten - wird. Ist eine PID bereits vergeben, wird diese allerdings nicht - erneut vergeben. + Die Ausgabe von &man.ps.1; ist in einer Anzahl von Spalten + organisiert. Die PID Splate zeigt die + Prozess-ID. PIDs werden von 1 beginnend bis 99999 zugewiesen und + fangen wieder von vorne an. Ist eine PID breits vergeben, wird + diese allerdings nicht erneut vergeben. + + Die Spalte TT zeigt den Terminal, auf dem das Programm läuft. STAT zeigt den Status des Programms an und kann für die Zwecke dieser Diskussion ebenso wie TT ignoriert werden. TIME - gibt die Zeit an, die das Programm auf der CPU gelaufen ist – - dies ist nicht unbedingt die Zeit, die seit dem Start des Programms + gibt die Zeit an, die das Programm auf der CPU gelaufen ist. + Dies ist nicht unbedingt die Zeit, die seit dem Start des Programms vergangen ist, da die meisten Programme hauptsächlich auf bestimmte Dinge warten, bevor sie wirklich CPU-Zeit verbrauchen. Unter der Spalte COMMAND finden Sie schließlich @@ -2002,9 +1930,9 @@ &man.ps.1; besitzt viele Optionen, um die angezeigten Informationen zu beeinflussen. Eine nützliche Kombination ist - auxww. Mit werden Information - über alle laufenden Prozesse und nicht nur Ihrer eigenen - angezeigt. Der Name des Besitzers des Prozesses, sowie Informationen + auxww. zeigt Information + über alle laufenden Prozesse aller Benutzer. Der Name des + Besitzers des Prozesses, sowie Informationen über den Speicherverbrauch werden mit angezeigt. zeigt auch Dämonen-Prozesse an, und veranlasst &man.ps.1; die komplette @@ -2041,122 +1969,116 @@ verschiedenen CPU-Modi verbringt. Darunter befinden sich einige Spalten mit ähnlichen - Informationen wie in der Ausgabe von &man.ps.1;. Wie im vorigen - Beispiel können Sie die PID, den Besitzer, die verbrauchte - CPU-Zeit und das Kommando erkennen. &man.top.1; zeigt auch den - Speicherverbrauch des Prozesses an, der in zwei Spalten aufgeteilt - ist. Die erste Spalte gibt den gesamten Speicherverbrauch des - Prozesses an, in der zweiten Spalte wird der aktuelle Verbrauch - angegeben. &netscape; hat im gezeigten + Informationen wie in der Ausgabe von &man.ps.1;, wie + beispielsweise die PID, den Besitzer, die verbrauchte + CPU-Zeit und das Kommando, das den Prozess gestartet hat. + &man.top.1; zeigt auch den Speicherverbrauch des Prozesses an, + der in zwei Spalten aufgeteilt ist. Die erste Spalte gibt den + gesamten Speicherverbrauch des Prozesses an, in der zweiten + Spalte wird der aktuelle Verbrauch angegeben. + &netscape; hat im gezeigten Beispiel insgesamt 30 MB Speicher verbraucht. Momentan benutzt es allerdings nur 9 MB. - Die Anzeige wird von &man.top.1; automatisch alle zwei Sekunden - aktualisiert. Der Zeitraum kann mit eingestellt - werden. + Die Anzeige wird von &man.top.1; automatisch alle zwei + Sekunden aktualisiert. Ein anderer Intervall kann mit + spezifiziert werden. Dämonen, Signale und Stoppen von Prozessen - Wenn Sie einen Editor starten, können Sie ihn leicht bedienen - und Dateien laden. Sie können das, weil der Editor dafür - Vorsorge getroffen hat und auf einem Terminal + Wenn Sie einen Editor benutzen, können Sie ihn leicht + bedienen und Dateien laden, weil der Editor dafür Vorsorge + getroffen hat und auf einem Terminal läuft. Manche Programme erwarten keine Eingaben von einem Benutzer und lösen sich bei erster Gelegenheit von ihrem - Terminal. Ein Web-Server zum Beispiel verbringt den ganzen Tag - damit, auf Anfragen zu antworten und erwartet keine Eingaben von Ihnen. - Programme, die E-Mail von einem Ort zu einem anderen Ort transportieren - sind ein weiteres Beispiel für diesen Typ von Anwendungen. + Terminal. Ein Webserver zum Beispiel antwortet auf + Web-Anfragen und nicht auf Benutzereingaben. Mail-Server sind + ein weiteres Beispiel für diesen Typ von Anwendungen. - Wir nennen diese Programme Dämonen. - Dämonen stammen aus der griechischen Mythologie und waren - weder gut noch böse. Sie waren kleine dienstbare Geister, - die meistens nützliche Sachen für die Menschheit vollbrachten. - Ähnlich wie heutzutage Web-Server und Mail-Server nützliche - Dienste verrichten. Seit langer Zeit ist daher das BSD Maskottchen - dieser fröhlich aussehende Dämon mit Turnschuhen - und Dreizack. + Diese Programme sind als Dämonen + bekannt. Der Begriff Dämon stammt aus der griechischen + Mythologie und bezeichnet ein Wesen, das weder gut noch böse ist + und welches unsichtbar nützliche Aufgaben verrichtet. Deshalb + ist das BSD Maskottchen dieser fröhlich aussehende Dämon mit + Turnschuhen und Dreizack. Programme, die als Dämon laufen, werden entsprechend einer Konvention mit einem d am Ende benannt. BIND steht beispielsweise für Berkeley Internet Name Domain, das tatsächlich laufende Programm - heißt aber - named. Der Apache Webserver wird - httpd genannt, der Druckerspool-Dämon heißt - lpd usw. Dies ist allerdings eine Konvention - und keine unumstößliche Regel: Der Dämon der - Anwendung sendmail heißt - sendmail und nicht maild, wie - Sie vielleicht gedacht hatten. + heißt aber named. Der + Apache Webserver wird + httpd genannt und der Druckerspool-Dämon + heißt lpd. Dies ist allerdings nur eine + Konvention. Der Dämon der Anwendung + sendmail heißt beispielsweise + sendmail und nicht + maild. - Manchmal müssen Sie mit einem Dämon kommunizieren. Dazu - verwenden Sie Signale. Sie können - mit einem Dämonen oder jedem anderen laufenden Prozess - kommunizieren, indem Sie diesem ein Signal schicken. Sie können - verschiedene Signale verschicken – manche haben eine festgelegte - Bedeutung, andere werden von der Anwendung interpretiert. Die - Dokumentation zur fraglichen Anwendung wird erklären, wie - die Anwendung Signale interpretiert. Sie können nur Signale - zu Prozessen senden, die Ihnen gehören. Normale Benutzer haben - nicht die Berechtigung, Prozessen anderer Benutzer mit &man.kill.1; - oder &man.kill.2; Signale zu schicken. Der Benutzer - root darf jedem Prozess Signale schicken. + Eine Möglichkeit mit einem Dämon oder einem laufenden + Prozess zu kommunizieren, ist über das Versenden von + Signalen mittels &man.kill.1;. Es gibt + eine Reihe von verschiedenen Signalen. Manche haben eine feste + Bedeutung, während andere in der Dokumentation der Anwendung + beschrieben sind. Ein Benutzer kann ein Signal nur an einen + Prozess senden, welcher ihm gehört. Wird versucht ein Signal + an einen Prozess eines anderen Benutzers zu senden, resultiert + dies in einem Zugriffsfehler mangels fehlender Berechtigungen. + Die Ausnahme ist der + root-Benutzer, welcher + jedem Prozess Signale senden kann. - In manchen Fällen wird FreeBSD Signale senden. Wenn eine - Anwendung schlecht geschrieben ist und auf Speicher zugreift, auf - den sie nicht zugreifen soll, so sendet FreeBSD dem Prozess - das Segmentation Violation Signal + &os; kann auch ein Signal an einen Prozess senden. Wenn + eine Anwendung schlecht geschrieben ist und auf Speicher + zugreift, auf den sie nicht zugreifen soll, so sendet &os; dem + Prozess das Segmentation Violation Signal (SIGSEGV). Wenn eine Anwendung den &man.alarm.3; Systemaufruf benutzt hat, um nach einiger Zeit benachrichtigt zu werden, bekommt sie das Alarm Signal (SIGALRM) gesendet. - Zwei Signale können benutzt werden, um Prozesse zu stoppen: - SIGTERM und SIGKILL. Mit - SIGTERM fordern Sie den Prozess höflich zum - Beenden auf. Der Prozess kann das Signal abfangen und merken, - dass er sich beenden soll. Er hat dann Gelegenheit Logdateien - zu schließen und die Aktion, die er vor der Aufforderung - sich zu beenden durchführte, abzuschließen. Er kann - sogar SIGTERM ignorieren, wenn er eine Aktion - durchführt, die nicht unterbrochen werden darf. + Zwei Signale können benutzt werden, um einen Prozess zu stoppen: + SIGTERM und SIGKILL. + SIGTERM fordert den Prozess höflich zum + Beenden auf. Der Prozess kann das Signal abfangen und hat dann + Gelegenheit Logdateien zu schließen und die Aktion, die er + durchführte, abzuschließen. In manchen Situationen kann der + Prozess SIGTERM ignorieren, wenn er eine + Aktion durchführt, die nicht unterbrochen werden darf. SIGKILL kann von keinem Prozess ignoriert werden. Das Signal lässt sich mit Mich interessiert nicht, was du gerade machst, hör sofort auf damit! - umschreiben. Wenn Sie einem Prozess SIGKILL - schicken, dann wird FreeBSD diesen sofort beenden - Das stimmt nicht ganz: Es gibt Fälle, in denen ein Prozess - nicht unterbrochen werden kann. Wenn der Prozesss zum Beispiel - eine Datei von einem anderen Rechner auf dem Netzwerk liest und dieser - Rechner aus irgendwelchen Gründen nicht erreichbar ist - (ausgeschaltet, oder ein Netzwerkfehler), dann ist der Prozess - nicht zu unterbrechen. Wenn der Prozess den Lesezugriff - nach einem Timeout von typischerweise zwei Minuten aufgibt, - dann wird er beendet. + umschreiben. Wird einem Prozess SIGKILL + geschickt, dann wird &os; diesen sofort beenden + Es gibt Fälle, in denen ein Prozess nicht unterbrochen + werden kann. Wenn ein Prozess zum Beispiel eine Datei von + einem anderen Rechner auf dem Netzwerk liest und dieser + Rechner nicht erreichbar ist, dann ist der Prozess nicht zu + unterbrechen. Wenn der Prozess den Lesezugriff nach einem + Timeout von typischerweise zwei Minuten aufgibt, dann wird + er beendet. . - Andere Signale, die Sie vielleicht verschicken wollen, sind + Andere häufig verwendete Signale sind SIGHUP, SIGUSR1 und SIGUSR2. Diese Signale sind für allgemeine - Zwecke vorgesehen und verschiedene Anwendungen werden unterschiedlich - auf diese Signale reagieren. + Zwecke vorgesehen und verschiedene Anwendungen werden + unterschiedlich auf diese Signale reagieren. - Nehmen wir an, Sie haben die Konfiguration Ihres Webservers - verändert und möchten dies dem Server mitteilen. Sie - könnten den Server natürlich stoppen und - httpd wieder starten. Die Folge wäre eine - kurze Zeit, in der der Server nicht erreichbar ist. Die meisten - Dämonen lesen Ihre Konfigurationsdatei beim Empfang eines - SIGHUP neu ein. Da es keinen Standard gibt, der - vorschreibt, wie auf diese Signale zu reagieren ist, lesen - Sie bitte die Dokumentation zu dem in Frage kommenden Dämon. + Ändern Sie beispielsweise die Konfiguration eines + Webservers, so muss dieser angewiesen werden, seine + Konfiguration neu zu lesen. Ein Neustart von + httpd würde dazu führen, dass der Server für + kurze Zeit nicht erreichbar ist. Senden Sie dem Dämon + stattdessen das SIGHUP-Signal. Es sei + erwähnt, dass verschiedene Dämonen sich anders verhalten. Lesen + Sie bitte die Dokumentation des entsprechenden Dämonen um zu + überprüfen, ob der Dämon bei einem SIGHUP die + gewünschten Ergebnisse erzielt. - Mit &man.kill.1; können Sie, wie unten gezeigt, Signale - verschicken. - Verschicken von Signalen @@ -2164,64 +2086,70 @@ Signal schicken. Die Konfigurationsdatei von inetd ist /etc/inetd.conf. Diese Konfigurationsdatei liest inetd ein, - wenn er ein SIGHUP empfängt. + wenn er SIGHUP empfängt. - Suchen Sie die Prozess-ID des Prozesses, dem Sie ein - Signal schicken wollen. Benutzen Sie - dazu &man.pgrep.1;. + Suchen Sie mit &man.pgrep.1; die Prozess-ID des + Prozesses, dem Sie ein Signal schicken wollen. In diesem + Beispiel ist die PID von &man.inetd.8; 198: &prompt.user; pgrep -l inetd 198 inetd -wW - Die Prozess-ID von &man.inetd.8; ist 198. - Senden Sie das Signal mit &man.kill.1;. Da &man.inetd.8; - unter dem Benutzer root läuft, müssen - Sie zuerst mit &man.su.1; root werden: + Benutzen Sie &man.kill.1;, um ein Signal zu senden. Da + &man.inetd.8; dem Benutzer root gehört, müssen + Sie zuerst mit &man.su.1; + root + werden: &prompt.user; su Password: &prompt.root; /bin/kill -s HUP 198 - &man.kill.1; wird, wie andere Kommandos von &unix; Systemen auch, keine Ausgabe - erzeugen, wenn das Kommando erfolgreich war. Wenn Sie versuchen, - einem Prozess, der nicht Ihnen gehört, ein Signal zu - senden, dann werden Sie die Meldung - kill: PID: Operation not - permitted sehen. Wenn Sie sich bei der Eingabe der - PID vertippen, werden Sie das Signal dem falschen Prozess - schicken, was schlecht sein kann. Wenn Sie Glück haben, - existiert der Prozess nicht und Sie werden mit der Ausgabe + &man.kill.1; wird, wie andere &unix; Kommandos auch, + keine Ausgabe erzeugen, wenn das Kommando erfolgreich war. + Wenn Sie versuchen, einem Prozess, der nicht Ihnen gehört, + ein Signal zu senden, dann werden Sie die Meldung + kill: PID: Operation + not permitted sehen. Ein Tippfehler bei der + Eingabe der PID führt dazu, dass das Signal an einen + falschen Prozess gesendet wird, was zu negativen Ergebnissen + führen kann, oder das Signal wird an eine PID gesendet die + derzeit nicht in Gebrauch ist, was zu dem Fehler kill: PID: No such - process belohnt. + process führt. - Warum soll ich <command>/bin/kill</command> benutzen? + Warum sollte man <command>/bin/kill</command> + benutzen? Viele Shells stellen kill als internes Kommando zur Verfügung, das heißt die Shell sendet das Signal direkt, anstatt /bin/kill - zu starten. Das kann nützlich sein, aber die - unterschiedlichen Shells benutzen eine verschiedene Syntax, - um die Namen der Signale anzugeben. Anstatt jede Syntax zu + zu starten. Beachten Sie, dass die unterschiedlichen + Shells eine andere Syntax benutzen, um die Namen der + Signale anzugeben. Anstatt jede Syntax zu lernen, kann es einfacher sein, /bin/kill - ... direkt aufzurufen. + ... direkt + aufzurufen. - Andere Signale senden Sie auf die gleiche Weise, ersetzen - Sie nur TERM oder KILL - entsprechend. + Beim Versenden von anderen Signalen, ersetzen + Sie TERM oder KILL in der + Kommandozeile mit dem entsprechenden Signal. - Es kann gravierende Auswirkungen haben, wenn Sie zufällig - Prozesse beenden. Insbesondere &man.init.8; mit der Prozess-ID - ist ein Spezialfall. Mit /bin/kill -s KILL 1 - können Sie Ihr System schnell herunterfahren. + Das zufällige Beenden eines Prozesses kann gravierende + Auswirkungen haben. Insbesondere &man.init.8;, mit der PID 1, + ist ein Spezialfall. /bin/kill -s KILL 1 + ist ein schneller, jedoch nicht empfohlener Weg, dass System + herunterzufahren. Überprüfen Sie die Argumente von &man.kill.1; immer zweimal bevor Sie Return drücken. @@ -2233,55 +2161,47 @@ Shells Kommandozeile - Von der tagtäglichen Arbeit mit FreeBSD wird eine Menge - mit der Kommandozeilen Schnittstelle der Shell erledigt. Die - Hauptaufgabe einer Shell besteht darin, Kommandos der Eingabe - anzunehmen und diese auszuführen. Viele Shells haben - außerdem eingebaute Funktionen, die die tägliche - Arbeit erleichtern, beispielsweise eine Dateiverwaltung, - die Vervollständigung von Dateinamen (Globbing), einen - Kommandozeileneditor, sowie Makros und Umgebungsvariablen. FreeBSD - enthält die Shells sh (die Bourne Shell) und - tcsh (die verbesserte C-Shell) im Basissystem. - Viele andere Shells, wie zsh oder - bash, befinden sich in der Ports-Sammlung. + &os; stellt mit der Shell eine Kommandozeilen-Schnittstelle + zur Verfügung. Eine Shell empfängt Befehle von einem + Eingabekanal und führt diese aus. Viele Shells bieten bieten + eingebaute Funktionen, die die tägliche Arbeit erleichtern, + beispielsweise eine Dateiverwaltung, die Vervollständigung von + Dateinamen (Globbing), Kommandozeilen-Editor, sowie Makros und + Umgebungsvariablen. &os; enthält die Shells + sh (Bourne Shell) und tcsh + (verbesserte C-Shell) im Basissystem. Weitere Shells, wie + zsh oder bash, befinden + sich in der Ports-Sammlung. - Welche Shell soll ich benutzen? Das ist wirklich eine - Geschmacksfrage. Sind Sie ein C-Programmierer, finden Sie - vielleicht eine C-artige Shell wie die tcsh - angenehmer. Kommen Sie von Linux oder ist Ihnen der Umgang mit &unix; Systemen - neu, so könnten Sie die bash probieren. - Der Punkt ist, dass - jede Shell ihre speziellen Eigenschaften hat, die mit Ihrer - bevorzugten Arbeitsumgebung harmonieren können oder nicht. - Sie müssen sich eine Shell aussuchen. + Die verwendete Shell ist letztlich eine Frage des + Geschmacks. Ein C-Programmierer, findet vielleicht eine + C-artige Shell wie tcsh angenehmer. Ein + Linux-Benutzer bevorzugt vielleicht bash. + Jede Shell hat ihre speziellen Eigenschaften, die mit der + bevorzugten Arbeitsumgebung des Benutzers harmonieren kann oder + nicht. Deshalb stehen mehrere Shells zur Auswahl. Ein verbreitetes Merkmal in Shells ist die - Dateinamen-Vervollständigung. Sie müssen nur einige - Buchstaben eines Kommandos oder eines Dateinamen eingeben und - die Shell vervollständigt den Rest automatisch durch - drücken der Tab-Taste. Hier ist ein Beispiel. - Angenommen, Sie + Dateinamen-Vervollständigung. Nachdem der Benutzer einige + Buchstaben eines Kommandos oder eines Dateinamen eingeben hat, + vervollständigt die Shell den Rest automatisch durch + drücken der Tab-Taste. Angenommen, Sie haben zwei Dateien foobar und - foo.bar. Die Datei - foo.bar möchten Sie löschen. Nun - würden Sie an der Tastatur eingeben: - rm fo[Tab]. - [Tab]. + foo.bar. Um foo.bar + zu löschen, geben Sie folgendes ein: + rm fo[Tab].[Tab] - Die Shell würde dann rm + Die Shell sollte dann rm foo[BEEP].bar ausgeben. - [BEEP] meint den Rechner-Piepser. Diesen gibt die Shell - aus, um anzuzeigen, dass es den Dateinamen nicht - vervollständigen konnte, da es mehrere Möglichkeiten - gibt. Beide Dateien foobar und - foo.bar beginnen mit fo, - so konnte nur bis foo ergänzt werden. - Nachdem Sie . eingaben und dann die - Tab-Taste - drückten, konnte die Shell den Rest für Sie - ausfüllen. + [BEEP] meint den Rechner-Piepser, den die Shell ausgibt um + anzuzeigen, dass es den Dateinamen nicht vervollständigen + konnte, da es mehrere Möglichkeiten gibt. Beide Dateien + foobar und foo.bar + beginnen mit fo. Nach der Eingabe von + . und erneutem drücken der + Tab-Taste, war die Shell in der Lage den Rest + auszufüllen. Umgebungsvariablen @@ -2290,7 +2210,7 @@ im Umgebungsraum der Shell, die jedes von der Shell aufgerufene Programm lesen kann. Daher enthält der Umgebungsraum viele Konfigurationsdaten für Programme. Die folgende Liste zeigt - verbreitete Umgebungsvariablen und was sie bedeuten: + verbreitete Umgebungsvariablen und deren Bedeutung: Umgebungsvariablen @@ -2316,7 +2236,8 @@ DISPLAY - Der Name des X11-Bildschirms, auf dem + Der Name des + Xorg-Bildschirms, auf dem Ausgaben erfolgen sollen. @@ -2340,13 +2261,12 @@ OSTYPE - Typ des Betriebsystems, beispielsweise FreeBSD. + Typ des Betriebssystems. MACHTYPE - Die CPU Architektur auf dem das System - l舫ft. + Die CPU-Architektur des Systems. @@ -2372,80 +2292,72 @@ Shells Bourne Shell - Das Setzen von Umgebungsvariablen funktioniert - von Shell zu Shell unterschiedlich. Zum Beispiel benutzt man - in C-artigen Shells wie der tcsh dazu - setenv. Unter Bourne-Shells wie sh - oder bash benutzen Sie zum Setzen von - Umgebungsvariablen export. Um - beispielsweise die Variable EDITOR mit - csh oder tcsh auf - /usr/local/bin/emacs zu setzen, setzen Sie das - folgende Kommando ab: + Das Setzen von Umgebungsvariablen unterscheidet sich + von Shell zu Shell. In tcsh und + csh wird dazu setenv + benutzt. sh und bash + benutzen export um Umgebungsvariablen zu + setzten. Dieses Beispiel für die tcsh-Shell + setzt die Variable EDITOR auf + /usr/local/bin/emacs: &prompt.user; setenv EDITOR /usr/local/bin/emacs - Unter Bourne-Shells: + Der entsprechende Befehl für bash + wäre: &prompt.user; export EDITOR="/usr/local/bin/emacs" - Sie können die meisten Shells Umgebungsvariablen - expandieren lassen, in dem Sie in der Kommandozeile ein - $ davor eingeben. Zum Beispiel gibt - echo $TERM aus, worauf $TERM - gesetzt ist, weil die Shell $TERM expandiert - und das Ergebnis an echo gibt. + Um eine Umgebungsvariable zu expandieren, geben Sie in der + Kommandozeile das Zeichen $ vor dessen Namen + ein. Zum Beispiel gibt echo $TERM den + aktuellen Wert von$TERM aus. - Shells behandeln viele Spezialzeichen, so genannte + Shells behandeln Spezialzeichen, so genannte Metazeichen, als besondere Darstellungen für Daten. - Das allgemeinste ist das Zeichen *, das eine + Das häufigste Zeichen ist *, das eine beliebige Anzahl Zeichen in einem Dateinamen repräsentiert. - Diese Metazeichen können zum Vervollständigen von + Metazeichen können zur Vervollständigung von Dateinamen (Globbing) benutzt werden. Beispielsweise liefert - das Kommando echo * nahezu das gleiche - wie die Eingabe von ls, da die Shell alle + echo * nahezu das gleiche wie + ls, da die Shell alle Dateinamen die mit * übereinstimmen, an echo weitergibt. - Um zu verhindern, dass die Shell diese Sonderzeichen - interpretiert, kann man sie schützen, indem man ihnen einen - Backslash (\) voranstellt. echo - $TERM gibt aus, auf was auch immer Ihr Terminal - gesetzt ist. echo \$TERM gibt - $TERM genauso aus, wie es hier steht. + Um zu verhindern, dass die Shell ein Sonderzeichen + interpretiert, schützt man es, indem man einen + Backslash (\) voranstellt. Zum Beispiel + zeigt echo $TERM die Einstellung des + Terminals an, wohingegen echo \$TERM einfach + die Zeichenfolge $TERM ausgibt. Ändern der Shell - Der einfachste Weg Ihre Shell zu ändern, ist das - Kommando chsh zu benutzen. - chsh platziert Sie im Editor, welcher durch - Ihre Umgebungsvariable EDITOR gesetzt ist, - im vi wenn die Variable nicht gesetzt ist. - Ändern Sie die Zeile mit Shell: - entsprechend Ihren Wünschen. + Der einfachste Weg die Standard Shell zu ändern, ist + chsh zu benutzen. + chsh startet den Editor, welcher durch + die Umgebungsvariable EDITOR gesetzt ist. + Standardmäßig ist dies vi. + Tragen Sie in die Zeile die mit Shell: beginnt, + den absoluten Pfad der neuen Shell ein. - Sie können auch chsh mit der Option - aufrufen, dann wird Ihre Shell gesetzt, - ohne dass Sie in einen Editor gelangen. Um Ihre Shell - zum Beispiel auf die bash zu ändern, - geben Sie das folgende Kommando ein: + Alternativ setzt chsh -s die Shell, + ohne dabei einen Editor aufzurufen. Um die Shell + zum Beispiel auf bash zu ändern, geben Sie + folgenden Befehl ein: &prompt.user; chsh -s /usr/local/bin/bash - Die von Ihnen gewünschte Shell - muss in /etc/shells - aufgeführt sein. Haben Sie eine Shell aus der - Ports-Sammlung installiert, - sollte das schon automatisch erledigt werden. Installierten - Sie die Shell von Hand, so müssen Sie sie dort - eintragen. + Die neue Shell muss in + /etc/shells aufgeführt sein. Wurde die + Shell aus der Ports-Sammlung + installiert, sollte sie automatisch zu dieser Datei + hinzugefügt worden sein. Wenn der Eintrag fehlt, nutzen Sie + folgenden Befehl, und ersetzen Sie den Pfad mit dem Pfad zur + gewünschten Shell: - Haben Sie beispielsweise die bash nach - /usr/local/bin installiert, geben Sie - Folgendes ein: - &prompt.root; echo "/usr/local/bin/bash" >> /etc/shells Danach können Sie chsh aufrufen. @@ -2458,9 +2370,9 @@ Text Editoren Editoren - Eine gro゚er Teil der Konfiguration wird bei FreeBSD durch + Die meiste Konfiguration unter &os; wird durch das Editieren von Textdateien erledigt. Deshalb ist es eine - gute Idee, mit einem Texteditor vertraut zu werden. FreeBSD hat + gute Idee, mit einem Texteditor vertraut zu werden. &os; hat ein paar davon im Basissystem und sehr viel mehr in der Ports-Sammlung. @@ -2473,21 +2385,19 @@ ee - Der am leichtesten und einfachsten zu erlernende Editor nennt - sich ee, was für + Ein einfach zu erlernender Editor ist + ee, was für easy editor steht. - Um ee zu starten, gibt man in der + Um diesen Editor zu starten, gibt man in der Kommandozeile ee filename ein, wobei filename den Namen der zu editierenden - Datei darstellt. Um zum Beispiel /etc/rc.conf - zu editieren, tippen Sie ee /etc/rc.conf ein. - Einmal im Editor, finden Sie alle Editor-Funktionen oben im + Datei darstellt. Einmal im Editor, finden sich alle Editor-Funktionen oben im Display aufgelistet. Das Einschaltungszeichen ^ steht für die Ctrl (oder Strg) Taste, mit ^e ist also die Tastenkombination Ctrle gemeint. Um ee zu verlassen, drücken - Sie Esc und wählen dann aus. Der Editor fragt nach, ob Sie speichern möchten, wenn die Datei verändert wurde. @@ -2505,22 +2415,21 @@ Text Editoren emacs - FreeBSD verfügt über leistungsfähigere + &os; verfügt über leistungsfähigere Editoren wie vi als Teil des - Basissystems, andere Editoren wie emacs - oder vim sind Teil der Ports-Sammlung. - Diese Editoren bieten höhere Funktionalität und - Leistungsfähigkeit, jedoch auf Kosten einer etwas - schwierigeren Erlernbarkeit. Wenn Sie viele Textdateien - editieren, sparen Sie auf lange Sicht mehr Zeit durch das Erlernen - von Editoren wie vim oder - emacs ein. + Basissystems. Andere Editoren wie emacs + und vim sind Teil der Ports-Sammlung. + Diese Editoren bieten höhere Funktionalität, jedoch auf Kosten einer etwas + schwierigeren Erlernbarkeit. Das Erlernen eines + leistungsfähigeren Editors, wie vim + oder Emacs, kann auf lange Sicht Zeit + einsparen. Viele Anwendungen, die Dateien verändern oder Texteingabe erwarten, werden automatisch einen Texteditor öffnen. Um den - Standardeditor zu ändern, setzen Sie die Umgebungsvariable - EDITOR. Um mehr darüber zu erfahren, lesen Sie den - Abschnitt Shells. + Standardeditor zu ändern, wird die Umgebungsvariable + EDITOR gesetzt, wie im Abschnitt + Shells beschrieben. @@ -2528,16 +2437,17 @@ Der Begriff Gerät wird meist in Verbindung mit Hardware wie Laufwerken, Druckern, Grafikkarten oder Tastaturen gebraucht. - Der Großteil der Meldungen, die beim Booten von FreeBSD angezeigt - werden, beziehen sich auf gefundene Geräte. Sie können sich - die Bootmeldungen später in /var/run/dmesg.boot - ansehen. + Der Großteil der Meldungen, die beim Booten von &os; angezeigt + werden, beziehen sich auf gefundene Geräte. Eine Kopie dieser + Bootmeldungen wird in /var/run/dmesg.boot + gespeichert. - Gerätenamen, die Sie wahrscheinlich in den Bootmeldungen sehen - werden, sind zum Beispiel acd0, das erste - IDE CD-ROM oder kbd0, die Tastatur. + Jedes Gerät verfügt über einen Gerätenamen und Gerätenummer. + Zum Beispiel steht acd0 für das erste + IDE CD-ROM Laufwerk, während kbd0 die + Tastatur repräsentiert. - Auf die meisten Geräte wird unter &unix; Systemen über spezielle + Auf die meisten Geräte wird unter &os; über spezielle Gerätedateien im /dev Verzeichnis zugegriffen. @@ -2556,9 +2466,8 @@ Namensraum des Dateisystems Zugriff auf den Namensraum der Geräte im Kernel. Damit müssen Gerätedateien nicht mehr extra angelegt werden, sondern werden von - DEVFS verwaltet. - - Weitere Informationen finden Sie in &man.devfs.5;. + DEVFS automatisch verwaltet. Weitere + Informationen finden Sie in &man.devfs.5;. @@ -2567,10 +2476,9 @@ BinärformateUm zu verstehen, warum &os; das Format - &man.elf.5; benutzt, müssen Sie - zunächst etwas über die drei gegenwärtig + &man.elf.5; benutzt, müssen zunächst die drei gegenwärtig dominanten ausführbaren Formate - für &unix; Systeme wissen: + für &unix; beschrieben werden: @@ -2578,11 +2486,11 @@ Das 舁teste und klassische Objektformat von &unix; Systemen. Es benutzt einen kurzen, - kompakten Header mit einer magischen Nummer am Anfang, die oft - benutzt wird, um das Format zu charakterisieren - (weitere Details finden Sie unter &man.a.out.5;). Es - enth舁t drei geladene Segmente: .text, .data und - .bss, sowie eine Symboltabelle und eine + kompakten Header mit einer + &man.magic.5; number am + Anfang, die oft benutzt wird, um das Format zu + charakterisieren. Es enth舁t drei geladene Segmente: .text, + .data und .bss, sowie eine Symboltabelle und eine Stringtabelle. @@ -2590,9 +2498,8 @@ COFF Das Objektformat von SVR3. Der Header - enth舁t nun eine Sectiontable. Man kann - also mit mehr als nur den Sections .text, .data und .bss - arbeiten. + enth舁t eine Sectiontable, die mehr enthalten + kann als nur .text, .data und .bss Sektionen.. @@ -2600,90 +2507,82 @@ Der Nachfolger von COFF. Kennzeichnend sind mehrere Sections und mögliche - 32-Bit- oder 64-Bit-Werte. Ein wesentlicher Nachteil: - ELF wurde auch unter der Annahme - entworfen, dass es nur eine ABI (Application - Binary Interface) pro Systemarchitektur geben wird. - Tatsächlich ist diese Annahme falsch – nicht - einmal für die kommerzielle SYSV-Welt (in der es - mindestens drei ABIs gibt: SVR4, Solaris, SCO) trifft - sie zu. + 32-Bit- oder 64-Bit-Werte. Ein wesentlicher Nachteil ist, + dass ELF unter der Annahme entworfen + wurde, dass es nur eine ABI (Application Binary Interface) + pro Systemarchitektur geben wird. Tatsächlich ist diese + Annahme falsch, denn nicht einmal für die kommerzielle + SYSV-Welt (in der es mindestens drei ABIs gibt: SVR4, + Solaris, SCO) trifft sie zu. - FreeBSD versucht, dieses Problem zu umgehen, indem + &os; versucht dieses Problem zu umgehen, indem ein Werkzeug bereitgestellt wird, um ausführbare Dateien im ELF-Format mit Informationen über die ABI zu versehen, zu der - sie passen. Weitere Informationen finden Sie in der - Manualpage &man.brandelf.1;. + sie passen. Weitere Informationen finden Sie in + &man.brandelf.1;. - FreeBSD kommt aus dem klassischen Lager + &os; kommt aus dem klassischen Lager und verwendete traditionell das Format &man.a.out.5;, eine Technik, die bereits über viele BSD-Releases hinweg eingesetzt und geprüft worden ist. Obwohl es bereits seit einiger Zeit möglich war, auf einem - FreeBSD-System auch Binaries (und Kernel) im + &os;-System auch Binaries (und Kernel) im ELF-Format zu erstellen und - auszuführen, widersetzte FreeBSD sich anfangs dem + auszuführen, widersetzte &os; sich anfangs dem Druck, auf ELF als - Standardformat umzusteigen. Warum? Nun, als das - Linux-Lager die schmerzhafte Umstellung auf - ELF durchführte, ging es nicht so - sehr darum, dem ausführbaren Format - a.out zu entkommen, als dem - unflexiblen, auf Sprungtabellen basierten Mechanismus + Standardformat umzusteigen. Warum? Nun, als + Linux die schmerzhafte Umstellung auf + ELF durchführte, weil der + unflexible, auf Sprungtabellen basierte Mechanismus für Shared-Libraries der die Konstruktion von Shared-Libraries für Hersteller und Entwickler - gleichermaßen sehr kompliziert machte. Da die + kompliziert machte. Da die verfügbaren ELF-Werkzeuge eine Lösung für das Problem mit den Shared-Libraries - anboten und ohnehin generell als ein Schritt + anboten und generell als ein Schritt vorwärts angesehen wurden, wurde der Aufwand für die Umstellung als notwendig akzeptiert und die - Umstellung wurde durchgeführt. Unter FreeBSD ist der + Umstellung wurde durchgeführt. Unter &os; ist der Mechanismus von Shared-Libraries enger an den Stil des - Shared-Library-Mechanismus von Suns &sunos; - angelehnt und von daher sehr einfach zu verwenden. + Shared-Library-Mechanismus von &sunos; + angelehnt und einfacher zu verwenden. - Ja, aber warum gibt es so viele unterschiedliche Formate? + Ja, aber warum gibt es so viele unterschiedliche Formate? + Damals zu Zeiten der PDP-11, als simple Hardware ein einfaches, + kleines System unterstützte, war a.out + absolut passend für die Aufgabe, Binaries darzustellen. Als + &unix; portiert wurde, wurde auch das + a.out-Format beibehalten, weil es für die + frühen Portierungen auf Architekturen wie den Motorola 68k oder + die VAX ausreichte. - - In alter, grauer Vorzeit gab es simple Hardware. - Diese simple Hardware unterstützte ein einfaches, - kleines System. a.out war absolut passend - für die Aufgabe, Binaries auf diesem simplen System (eine PDP-11) - darzustellen. Als &unix; von diesem simplen System portiert - wurde, wurde auch das a.out-Format beibehalten, - weil es für die frühen Portierungen auf Architekturen - wie den Motorola 68000 und VAX ausreichte. - Dann dachte sich ein schlauer Hardware-Ingenieur, dass, wenn er Software zwingen könnte, einige Tricks anzustellen, es ihm möglich wäre, ein - paar Gatter im Design zu sparen, und seinen CPU-Kern - schneller zu machen. Obgleich es dazu gebracht wurde, mit - dieser neuen Art von Hardware (heute als RISC - bekannt) zu arbeiten, war a.out für - diese Hardware schlecht geeignet. Deshalb wurden viele neue - Formate entwickelt, um eine bessere Leistung auf dieser - Hardware zu erreichen, als mit dem begrenzten, simplen - a.out-Format. Dinge wie + paar Gatter im Design zu sparen, und die CPU + schneller zu machen. a.out war für diese + neue Art von Hardware, bekannt als RISC, + schlecht geeignet. Viele neue Formate wurden entwickelt, um + eine bessere Leistung auf dieser Hardware zu erreichen, als mit + dem begrenzten, simplen a.out-Format. COFF, ECOFF und - einige andere obskure wurden erdacht und ihre Grenzen - untersucht, bevor die Dinge sich in Richtung - ELF entwickelten. + einige andere wurden erdacht und ihre Grenzen + untersucht, bevor man sich auf ELF + festgelegt hat.Hinzu kam, dass die Größe von Programmen gewaltig wurde und Festplatten sowie physikalischer Speicher immer noch relativ klein waren. - Also wurde das Konzept von Shared-Libraries geboren. Das - VM-System wurde auch immer fortgeschrittener. Obwohl bei - jedem dieser Fortschritte das + Also wurde das Konzept von Shared-Libraries geboren. Die + virtuelle Speicherverwaltung wurde auch immer fortgeschrittener. + Obwohl bei jedem dieser Fortschritte das a.out-Format benutzt worden ist, - wurde sein Nutzen mit jedem neuen Merkmal mehr und mehr - gedehnt. Zusätzlich wollte man Dinge dynamisch zur - Ausführungszeit laden, oder Teile ihres Programms + wurde sein Nutzen mit jedem neuen Merkmal mehr gedehnt. + Zusätzlich wollte man Dinge dynamisch zur + Ausführungszeit laden, oder Teile eines Programms nach der Initialisierung wegwerfen, um Hauptspeicher oder Swap-Speicher zu sparen. Programmiersprachen wurden immer fortschrittlicher und man wollte, dass @@ -2702,36 +2601,34 @@ ELF überzugehen.Im Laufe der Zeit haben sich die Erstellungswerkzeuge, - von denen FreeBSD seine Erstellungswerkzeuge abgeleitet - hat (speziell der Assembler und der Loader), in zwei - parallele Zweige entwickelt. Im FreeBSD-Zweig wurden + von denen &os; seine Erstellungswerkzeuge abgeleitet + hat, speziell der Assembler und der Loader, in zwei + parallele Zweige entwickelt. Im &os;-Zweig wurden Shared-Libraries hinzugefügt und einige Fehler behoben. Das GNU-Team, das diese Programme ursprünglich geschrieben hat, hat sie umgeschrieben und eine simplere Unterstützung zur Erstellung von Cross-Compilern durch beliebiges Einschalten verschiedener - Formate usw. hinzugefügt. Viele Leute wollten - Cross-Compiler für FreeBSD erstellen, aber sie hatten - kein Glück, denn FreeBSD's ältere Sourcen + Formate hinzugefügt. Viele Leute wollten + Cross-Compiler für &os; erstellen, aber sie hatten + kein Glück, denn &os;'s ältere Sourcen für as und ld waren hierzu nicht geeignet. Die neuen GNU-Werkzeuge (binutils) unterstützen - Cross-Compilierung, ELF, Shared-Libraries, - C++-Erweiterungen und mehr. Weiterhin geben viele - Hersteller ELF-Binaries heraus und es - ist gut, wenn FreeBSD sie ausführen kann. + Cross-Compilierung, ELF, Shared-Libraries und + C++-Erweiterungen. Weiterhin geben viele + Hersteller ELF-Binaries heraus und &os; + sollte in der Lage sein, diese ausführen.ELF ist ausdrucksfähiger als a.out und gestattet eine bessere Erweiterbarkeit des Basissystems. Die ELF-Werkzeuge werden - besser gewartet und bieten Unterstützung von - Cross-Compilierung, was für viele Leute wichtig ist. + besser gewartet und bieten Unterstützung für Cross-Compilierung. ELF mag etwas langsamer sein, als a.out, aber zu versuchen, das zu messen, könnte schwierig werden. Es gibt unzählige Details, in denen sich die beiden Formate unterscheiden, wie sie Pages - abbilden, Initialisierungscode handhaben usw. Keins davon - ist sehr wichtig, aber es sind Unterschiede. Irgendwann + abbilden, oder Initialisierungscode handhaben. Irgendwann wird die Unterstützung für Programme im a.out-Format aus dem GENERIC-Kernel entfernt werden. @@ -2748,13 +2645,12 @@ Manualpages Manualpages - Die umfassendste Dokumentation rund um FreeBSD gibt es in + Die umfassendste Dokumentation rund um &os; gibt es in Form von Manualpages. Annähernd jedes Programm im System bringt eine kurze Referenzdokumentation mit, die die grundsätzliche Funktion und verschiedene Parameter - erklärt. Diese Dokumentationen kann man mit dem - man Kommando benutzen. Die Benutzung des - man Kommandos ist einfach: + erklärt. Diese Manuals können mit man + eingesehen werden: &prompt.user; man Kommando @@ -2765,7 +2661,7 @@ &prompt.user; man ls - Die Online-Dokumentation ist in nummerierte Sektionen + Die Online-Manuals sind in nummerierte Sektionen unterteilt: @@ -2809,10 +2705,9 @@ In einigen Fällen kann dasselbe Thema in mehreren Sektionen auftauchen. Es gibt zum Beispiel ein chmod Benutzerkommando und einen chmod() - Systemaufruf. In diesem Fall können Sie dem - man Kommando + Systemaufruf. Sie können man sagen, aus welcher Sektion Sie die Information erhalten - möchten, indem Sie die Sektion mit angeben: + möchten, indem Sie die Sektionsnummer mit angeben: &prompt.user; man 1 chmod @@ -2823,27 +2718,23 @@ Benutzerkommando chmod und mit &man.chmod.2; ist der Systemaufruf gemeint. - Das ist nett, wenn Sie den Namen eines Kommandos wissen, - und lediglich wissen wollen, wie es zu benutzen ist. Aber was - tun Sie, wenn Sie Sich nicht an den Namen des Kommandos - erinnern können? Sie können mit man - nach Schlüsselbegriffen in den - Kommandobeschreibungen zu suchen, indem Sie den Parameter - benutzen: + Wenn Sie den Namen des Kommandos kennen, benutzen Sie + man -k, um nach Schlüsselbegriffen in den + Kommandobeschreibungen zu suchen: - &prompt.user; man -k mail + &prompt.user; man -k mail + - Mit diesem Kommando bekommen Sie eine Liste der - Kommandos, deren Beschreibung das Schlüsselwort - mail enthält. Diese Funktionalität - erhalten Sie auch, wenn Sie das Kommando apropos + Dieser Befehl zeigt eine Liste von Kommandos, deren + Beschreibung das Schlüsselwort + mail enthält. Die gleiche Funktionalität + erhalten Sie auch, wenn Sie &man.apropos.1; benutzen. - Nun, Sie schauen Sich alle die geheimnisvollen Kommandos - in /usr/bin an, haben aber nicht den - blassesten Schimmer, wozu die meisten davon gut sind? Dann - rufen Sie doch das folgende Kommando auf: - &prompt.user; cd /usr/bin + Um herauszufinden, was die Kommandos in + /usr/bin tun, geben Sie ein: + + &prompt.user; cd /usr/bin &prompt.user; man -f * Dasselbe erreichen Sie durch Eingabe von: @@ -2856,17 +2747,16 @@ GNU Info Dateien - FreeBSD enthält viele Anwendungen und Utilities + &os; enthält viele Anwendungen und Utilities der Free Software Foundation (FSF). Zusätzlich zu den - Manualpages bringen diese Programme ausführlichere - Hypertext-Dokumente (info genannt) mit, - welche man sich mit dem Kommando info - ansehen kann. Wenn Sie emacs - installiert haben, können Sie auch dessen info-Modus - benutzen. + Manualpages können diese Programme Hypertext-Dokumente + enthalten, die info-Seiten genannt werden. + Diesse Dokumente können mit info + ansehen kann. Wenn Sie editors/emacs + installiert haben, können Sie auch den info-Modus von + emacs benutzen. - Um das Kommando &man.info.1; zu benutzen, geben Sie - ein: + Um &man.info.1; zu benutzen, geben Sie ein: &prompt.user; info