Update to r42014.

This commit is contained in:
Bjoern Heidotting 2015-09-26 16:57:40 +00:00
parent 4c7b412de5
commit e317b0f628
Notes: svn2git 2020-12-08 03:00:23 +00:00
svn path=/head/; revision=47441

View file

@ -5,7 +5,7 @@
$FreeBSD$
$FreeBSDde$
basiert auf: r41814
basiert auf: r42014
-->
<chapter xmlns="http://docbook.org/ns/docbook" xmlns:xlink="http://www.w3.org/1999/xlink" version="5.0" xml:id="basics">
<info><title>Grundlagen des UNIX Betriebssystems</title>
@ -18,8 +18,6 @@
</authorgroup>
</info>
<sect1 xml:id="basics-synopsis">
<title>Übersicht</title>
@ -77,11 +75,12 @@
<indexterm><primary>virtuelle Konsole</primary></indexterm>
<indexterm><primary>Terminals</primary></indexterm>
<para>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 &os; eingesetzt werden.</para>
<para>&os; kann mit einem Terminal benutzt werden, der nur Text
darstellen kann. Wird &os; auf diese Weise benutzt, so steht
einem ein großer Teil der Flexibilität und Leistungsfähigkeit
eines &unix; Betriebssystems zur Verfügung. Dieser Abschnitt
beschreibt was Terminals und Konsolen sind und wie sie unter
&os; eingesetzt werden.</para>
<sect2 xml:id="consoles-intro">
<title>Die Konsole</title>
@ -136,7 +135,8 @@ login:</screen>
<screen>login:</screen>
<para>Geben Sie den Benutzernamen ein, der während der
<link linkend="bsdinstall-addusers">Systeminstallation</link>
Systeminstallation, wie in <link
linkend="bsdinstall-addusers"/> beschrieben,
konfiguriert wurde und drücken Sie <keycap>Enter</keycap>.
Geben Sie dann das zum Benutzernamen zugeordnete Passwort ein
und drücken <keycap>Enter</keycap>. Das Passwort wird aus
@ -158,8 +158,8 @@ login:</screen>
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.</para>
Umleitung von Tastatureingaben und Monitorausgaben, wenn
zwischen den virtuellen Konsolen umgeschaltet wird.</para>
<para>Zum Umschalten der Konsolen stellt &os; spezielle
Tastenkombinationen bereit<footnote>
@ -219,8 +219,9 @@ ttyv8 "/usr/X11R6/bin/xdm -nodaemon" xterm off secure</programlisting>
<sect2 xml:id="consoles-singleuser">
<title>Die Konsole im Single-User-Modus</title>
<para>Eine eingehende Beschreibung des Single-User-Modus findet sich
in <xref linkend="boot-singleuser"/>. Im Single-User-Modus steht
<para>Eine eingehende Beschreibung des
<quote>Single-User-Modus</quote> findet sich in
<xref linkend="boot-singleuser"/>. Im Single-User-Modus steht
nur <emphasis>eine</emphasis> Konsole zur Verfügung.
Die Einstellungen dieser Konsole befinden sich in diesem
Abschnitt von <filename>/etc/ttys</filename>:</para>
@ -232,8 +233,8 @@ ttyv8 "/usr/X11R6/bin/xdm -nodaemon" xterm off secure</programlisting>
console none unknown off secure</programlisting>
<note>
<para>In der Zeile, die mit <literal>console</literal> beginnt,
kann <literal>secure</literal> durch
<para>In der Zeile, die mit <literal>console</literal>
beginnt, kann <literal>secure</literal> durch
<literal>insecure</literal> ersetzt werden. Wenn danach in
den Single-User-Modus gebootet wird, verlangt das System die
Eingabe des <systemitem
@ -242,9 +243,9 @@ console none unknown off secure</programlisting>
kein Passwort verlangt.</para>
<para><emphasis>Setzen Sie <literal>insecure</literal> nicht
leichtfertig ein.</emphasis> Wenn Sie das
leichtfertig ein.</emphasis> Wenn das
<systemitem class="username">root</systemitem>-Passwort
vergessen, wird es schwierig, in den
vergessen wird, wird es schwierig in den
Single-User-Modus zu gelangen, wenn man den Bootprozess von
&os; nicht genau versteht.</para>
</note>
@ -298,6 +299,16 @@ console none unknown off secure</programlisting>
Anfragen nach Hardware- und Peripheriegeräten, Speicher
und CPU-Zeit unter den Benutzern.</para>
<para>Weitere Informationen über Benutzerkonten finden Sie im
Kapitel <link linkend="users">Benutzer und grundlegende
Account-Verwaltung</link>. Es ist wichtig zu verstehen, dass
jeder Person (Benutzer) die den Computer verwendet, ein eigener
Benutzername und Passwort zugewiesen wird. Das System erkennt
die Personen auf Grundlage dieser Benutzernamen. Da es häufig
vorkommt, dass mehrere Personen am gleichen Projekt arbeiten,
stellt &unix; auch Gruppen zur Verfügung. Mehrere Benutzer
können der gleichen Gruppe zugewiesen werden.</para>
<para>Da das System mehrere Benutzer unterstützt, hat alles,
was das System verwaltet, einen Satz von Rechten, die bestimmen,
wer die jeweilige Ressource lesen, schreiben oder ausführen
@ -381,7 +392,7 @@ console none unknown off secure</programlisting>
</tgroup>
</informaltable>
<indexterm>
<primary><command>ls</command></primary>
<primary>&man.ls.1;</primary>
</indexterm>
<indexterm><primary>Verzeichnisse</primary></indexterm>
@ -427,7 +438,7 @@ total 530
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 <command>cd</command>, gewechselt werden kann.
zum Beispiel mit &man.cd.1;, 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.</para>
@ -582,13 +593,10 @@ total 530
</authorgroup>
</info>
<para>Zusätzlich zu den Zugriffsrechten
unterstützt &os; auch die Nutzung von
<quote>Datei-Flags</quote>. Diese erhöhen die Sicherheit
Ihres Systems, indem sie eine verbesserte Kontrolle von
Dateien erlauben. Verzeichnisse werden allerdings nicht
<para>Zusätzlich zu den Zugriffsrechten unterstützt &os; auch
die Nutzung von <quote>Datei-Flags</quote>. Diese erhöhen die
Sicherheit des Systems, indem sie eine verbesserte Kontrolle
von Dateien erlauben. Verzeichnisse werden allerdings nicht
unterstützt. Mit dem Einsatz von Datei-Flags kann sogar
<systemitem class="username">root</systemitem> daran gehindert
werden, Dateien zu löschen oder zu verändern.</para>
@ -680,11 +688,11 @@ total 530
umgehen.</para>
</note>
<para>Um dies in Echtzeit zu beobachten, öffnen Sie zwei Terminals.
Starten Sie auf einem den <command>passwd</command>-Prozess als normaler
Benutzer. Während es auf die Passworteingabe wartet,
überprüfen Sie die Prozesstabelle und sehen Sie sich die
Informationen für <command>passwd</command> an.</para>
<para>Um dies in Echtzeit zu beobachten, öffnen Sie zwei
Terminals. Starten Sie auf einem <command>passwd</command>
als normaler Benutzer. Während es auf die Passworteingabe
wartet, überprüfen Sie die Prozesstabelle und sehen Sie sich
die Informationen für &man.passwd.1; an:</para>
<para>Im Terminal A:</para>
@ -698,9 +706,9 @@ Old Password:</screen>
<screen>trhodes 5232 0.0 0.2 3420 1608 0 R+ 2:10AM 0:00.00 grep passwd
root 5211 0.0 0.2 3620 1724 2 I+ 2:09AM 0:00.01 passwd</screen>
<para>Wie oben erwähnt, wird <command>passwd</command> von einem
normalen Benutzer ausgeführt, benutzt aber die effektive
<acronym>UID</acronym> von <systemitem class="username">root</systemitem>.</para>
<para>Obwohl &man.passwd.1; als normaler Benutzer ausgeführt
wird, benutzt es die effektive <acronym>UID</acronym> von
<systemitem class="username">root</systemitem>.</para>
<para>Die <literal>setgid</literal>-Berechtigung führt die gleiche
Aktion wie die <literal>setuid</literal>-Berechtigung durch, allerdings
@ -710,9 +718,9 @@ root 5211 0.0 0.2 3620 1724 2 I+ 2:09AM 0:00.01 passwd</screen>
Datei besitzt und nicht die des Benutzers, der den Prozess gestartet
hat.</para>
<para>Um die <literal>setgid</literal>-Berechtigung auf einer Datei zu
setzen, geben Sie <command>chmod</command> eine
führende Zwei (2) mit:</para>
<para>Um die <literal>setgid</literal>-Berechtigung auf einer
Datei zu setzen, geben Sie &man.chmod.1; eine führende
Zwei (2) mit:</para>
<screen>&prompt.root; <userinput>chmod 2755 sgidexample.sh</userinput></screen>
@ -854,8 +862,7 @@ root 5211 0.0 0.2 3620 1724 2 I+ 2:09AM 0:00.01 passwd</screen>
<row>
<entry><filename>/etc/namedb/</filename></entry>
<entry>Konfigurationsdateien von
<command>named</command>. Weitere Details finden Sie
in &man.named.8;.</entry>
&man.named.8;.</entry>
</row>
<row>
@ -868,8 +875,7 @@ root 5211 0.0 0.2 3620 1724 2 I+ 2:09AM 0:00.01 passwd</screen>
<row>
<entry><filename>/etc/ppp/</filename></entry>
<entry>Konfigurationsdateien von <command>ppp</command>,
wie in &man.ppp.8; beschrieben.</entry>
<entry>Konfigurationsdateien von &man.ppp.8;.</entry>
</row>
<row>
@ -964,7 +970,7 @@ root 5211 0.0 0.2 3620 1724 2 I+ 2:09AM 0:00.01 passwd</screen>
<filename>/usr/local</filename> anstelle unter
<filename>/usr/local/share</filename> angelegt. Die
Dokumentation der Ports findet sich in
<filename>share/doc/port</filename>.
<filename>share/doc/<replaceable>port</replaceable></filename>.
</entry>
</row>
@ -1073,7 +1079,7 @@ root 5211 0.0 0.2 3620 1724 2 I+ 2:09AM 0:00.01 passwd</screen>
befindet, lautet der vollständige Name der Datei (oder der
<firstterm>Pfad</firstterm> zur Datei)
<filename>foo/bar/readme.txt</filename>. Beachten Sie, dass
sich dies von &windows; unterscheidet, wo der
sich dies von &windows; unterscheidet, wo der
<literal>\</literal> (<foreignphrase>Backslash</foreignphrase>
für die Trennung von Datei- und Verzeichnisnamen
verwendet wird. &os; benutzt keine Laufwerkbuchstaben oder
@ -1092,21 +1098,17 @@ root 5211 0.0 0.2 3620 1724 2 I+ 2:09AM 0:00.01 passwd</screen>
Verzeichnis, unabhängig von der Anzahl der Platten, auf der
selben Platte zu liegen.</para>
<para>Angenommen, Sie haben drei Dateisysteme <literal>A</literal>,
<para>Betrachten wir die drei Dateisysteme <literal>A</literal>,
<literal>B</literal> und <literal>C</literal>. Jedes
Dateisystem besitzt ein eigenes Wurzelverzeichnis, das
zwei andere Verzeichnisse enthält:
<filename>A1</filename>,
<filename>A2</filename>,
<filename>B1</filename>,
<filename>B2</filename>,
<filename>C1</filename> und
<filename>C2</filename>.</para>
<filename>A1</filename>, <filename>A2</filename>,
<filename>B1</filename>, <filename>B2</filename>,
<filename>C1</filename> und <filename>C2</filename>.</para>
<para>Das Wurzeldateisystem soll <literal>A</literal> sein.
<command>ls</command> zeigt darin
die beiden Verzeichnisse <filename>A1</filename>
und <filename>A2</filename> an.
&man.ls.1; zeigt darin die beiden Verzeichnisse
<filename>A1</filename> und <filename>A2</filename> an.
Der Verzeichnisbaum sieht wie folgt aus:</para>
<mediaobject>
@ -1126,11 +1128,10 @@ root 5211 0.0 0.2 3620 1724 2 I+ 2:09AM 0:00.01 passwd</screen>
<para>Ein Dateisystem wird in einem Verzeichnis eines anderen
Dateisystems eingehangen. Wir hängen nun das Dateisystem
<literal>B</literal> in das Verzeichnis
<filename>A1</filename> ein. Das
Wurzelverzeichnis von <literal>B</literal> ersetzt nun
das Verzeichnis <filename>A1</filename> und
die Verzeichnisse des Dateisystems <literal>B</literal>
werden sichtbar:</para>
<filename>A1</filename> ein. Das Wurzelverzeichnis von
<literal>B</literal> ersetzt nun das Verzeichnis
<filename>A1</filename> und die Verzeichnisse des Dateisystems
<literal>B</literal> werden sichtbar:</para>
<mediaobject>
<imageobject>
@ -1151,16 +1152,14 @@ root 5211 0.0 0.2 3620 1724 2 I+ 2:09AM 0:00.01 passwd</screen>
</mediaobject>
<para>Jede Datei in den Verzeichnissen
<filename>B1</filename> oder
<filename>B2</filename> kann
über den Pfad <filename>/A1/B1</filename>
oder <filename>/A1/B2</filename>
erreicht werden. Dateien aus dem Verzeichnis
<filename>/A1</filename> sind jetzt
verborgen. Wenn das Dateisystem <literal>B</literal>
wieder <firstterm>abgehangen</firstterm> wird
(<foreignphrase>umount</foreignphrase>), erscheinen
die verborgenen Dateien wieder.</para>
<filename>B1</filename> oder <filename>B2</filename> kann
über den Pfad <filename>/A1/B1</filename> oder
<filename>/A1/B2</filename> erreicht werden. Dateien aus dem
Verzeichnis <filename>/A1</filename> sind jetzt verborgen.
Wenn das Dateisystem <literal>B</literal> wieder
<firstterm>abgehangen</firstterm> wird
(<foreignphrase>umount</foreignphrase>), erscheinen die
verborgenen Dateien wieder.</para>
<para>Wenn das Dateisystem <literal>B</literal> unter dem
Verzeichnis <filename>A2</filename>
@ -1243,12 +1242,6 @@ root 5211 0.0 0.2 3620 1724 2 I+ 2:09AM 0:00.01 passwd</screen>
</textobject>
</mediaobject>
<para>Normalerweise müssen Sie sich nicht mit Dateisystemen
beschäftigen. Während der Installation von &os; werden
die Dateisysteme und die Stellen, in der sie eingehangen werden,
festgelegt. Dateisysteme müssen erst wieder angelegt werden,
wenn Sie eine neue Platte hinzufügen.</para>
<para>Sie können sogar mit nur einem großen
Dateisystem auskommen. Dies hat mehrere Nachteile
und einen Vorteil.</para>
@ -1265,9 +1258,9 @@ root 5211 0.0 0.2 3620 1724 2 I+ 2:09AM 0:00.01 passwd</screen>
kritische Dateien zu editieren oder zu löschen.
Von Benutzern beschreibbare Dateisysteme
wie <filename>/home</filename>
können Sie mit der Option <firstterm>nosuid</firstterm>
einhängen, wenn sie von anderen Dateisystemen getrennt
sind. Die <firstterm>SUID</firstterm>- und
können mit der Option <firstterm>nosuid</firstterm>
eingehangen werden, wenn sie von anderen Dateisystemen
getrennt sind. Die <firstterm>SUID</firstterm>- und
<firstterm>GUID</firstterm>-Bits verlieren auf solchen
Dateisystemen ihre Wirkung und die Sicherheit des
Systems kann dadurch erhöht werden.</para>
@ -1372,8 +1365,8 @@ root 5211 0.0 0.2 3620 1724 2 I+ 2:09AM 0:00.01 passwd</screen>
die auf der kompletten Slice arbeiten, wie ein
Bad-Block-Scanner, können so die
<literal>c</literal>-Partition benutzen.
Für gewöhnlich legen Sie in dieser
Partition kein Dateisystem an.</entry>
Für gewöhnlich wird in dieser Partition kein
Dateisystem angelegt.</entry>
</row>
<row>
@ -1428,7 +1421,7 @@ root 5211 0.0 0.2 3620 1724 2 I+ 2:09AM 0:00.01 passwd</screen>
Nummer, die angibt, um welche Festplatte es sich handelt.
Anders als bei Slices werden Festplatten von Null beginnend
durchnummeriert. Gängige Festplatten-Namen sind in
<xref linkend="basics-dev-codes"/> zusammengestellt.</para>
<xref linkend="basics-dev-codes"/> aufgeführt.</para>
<para>Wenn Sie eine Partition angeben, beinhaltet das den
Plattennamen, <literal>s</literal>, die Slice-Nummer und den
@ -1622,11 +1615,11 @@ root 5211 0.0 0.2 3620 1724 2 I+ 2:09AM 0:00.01 passwd</screen>
<primary>Dateisysteme</primary>
<secondary>fstab</secondary>
</indexterm>
<para>Während des <link linkend="boot">Boot-Prozesses</link>
<para>Während des Boot-Prozesses (<xref linkend="boot"/>)
werden in <filename>/etc/fstab</filename> aufgeführte
Verzeichnisse, sofern sie nicht mit der Option <option>noauto</option>
versehen sind, automatisch angehangen. Diese Datei enthält
Einträge in folgendem Format:</para>
Verzeichnisse, sofern sie nicht mit der Option
<option>noauto</option> versehen sind, automatisch angehangen.
Diese Datei enthält Einträge in folgendem Format:</para>
<programlisting><replaceable>device</replaceable> <replaceable>/mount-point</replaceable> <replaceable>fstype</replaceable> <replaceable>options</replaceable> <replaceable>dumpfreq</replaceable> <replaceable>passno</replaceable></programlisting>
@ -1708,7 +1701,8 @@ root 5211 0.0 0.2 3620 1724 2 I+ 2:09AM 0:00.01 passwd</screen>
</sect2>
<sect2 xml:id="disks-mount">
<title>Das <command>mount</command> Kommando</title>
<title>Verwendung von &man.mount.8;</title>
<indexterm>
<primary>Dateisysteme</primary>
<secondary>anhängen</secondary>
@ -1830,7 +1824,8 @@ root 5211 0.0 0.2 3620 1724 2 I+ 2:09AM 0:00.01 passwd</screen>
</sect2>
<sect2 xml:id="disks-umount">
<title>Das <command>umount</command> Kommando</title>
<title>Verwendung von &man.umount.8;</title>
<indexterm>
<primary>Dateisysteme</primary>
<secondary>abhängen</secondary>
@ -1875,17 +1870,19 @@ root 5211 0.0 0.2 3620 1724 2 I+ 2:09AM 0:00.01 passwd</screen>
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.</para>
als erstes gestartet wird und der immer die
<acronym>PID</acronym> 1 hat.</para>
<para>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;.</para>
Prozesse, deren <acronym>PID</acronym>s, Speicherverbrauch 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;.</para>
<para>Normal zeigt <command>ps</command> nur die laufenden
<para>In der Voreinstellung zeigt &man.ps.1; nur die laufenden
Prozesse, die dem Benutzer gehören. Zum Beispiel:</para>
<screen>&prompt.user; <userinput>ps</userinput>
@ -1906,22 +1903,20 @@ root 5211 0.0 0.2 3620 1724 2 I+ 2:09AM 0:00.01 passwd</screen>
285 v0 S 0:38.45 /usr/X11R6/bin/sawfish</screen>
<para>Die Ausgabe von &man.ps.1; ist in einer Anzahl von Spalten
organisiert. Die <literal>PID</literal> 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 <literal>TT</literal> zeigt den Terminal, auf dem das
Programm läuft. <literal>STAT</literal> zeigt den Status
des Programms an und kann für die Zwecke dieser Diskussion ebenso
wie <literal>TT</literal> ignoriert werden. <literal>TIME</literal>
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 <literal>COMMAND</literal> finden Sie schließlich
die Kommandozeile, mit der das Programm gestartet wurde.</para>
organisiert. Die <literal>PID</literal> Spalte zeigt die
Prozess-ID. <acronym>PID</acronym>s werden von 1 beginnend bis
99999 zugewiesen und fangen wieder von vorne an. Ist eine
<acronym>PID</acronym> bereits vergeben, wird diese allerdings
nicht erneut vergeben. Die Spalte <literal>TT</literal> zeigt
den Terminal, auf dem das Programm läuft.
<literal>STAT</literal> zeigt den Status des Programms und
<literal>TIME</literal> 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
<literal>COMMAND</literal> findet sich schließlich die
Kommandozeile, mit der das Programm gestartet wurde.</para>
<para>&man.ps.1; besitzt viele Optionen, um die angezeigten Informationen
zu beeinflussen. Eine nützliche Kombination ist
@ -1954,24 +1949,25 @@ Swap: 256M Total, 38M Used, 217M Free, 15% Inuse
...</screen>
<para>Die Ausgabe ist in zwei Abschnitte geteilt. In den ersten
fünf Kopfzeilen finden sich die zuletzt zugeteilte PID, die
Systemauslastung (engl. <foreignphrase>load average</foreignphrase>),
die Systemlaufzeit (die Zeit seit dem letzten Reboot) und die
momentane Zeit. Die weiteren Zahlen im Kopf beschreiben wie viele
Prozesse momentan laufen (im Beispiel 47), wie viel Speicher
und Swap verbraucht wurde und wie viel Zeit das System in den
verschiedenen CPU-Modi verbringt.</para>
fünf Kopfzeilen finden sich die zuletzt zugeteilte
<acronym>PID</acronym>, die Systemauslastung
(engl. <foreignphrase>load average</foreignphrase>), die
Systemlaufzeit (die Zeit seit dem letzten Reboot) und die
momentane Zeit. Die weiteren Zahlen im Kopf beschreiben wie
viele Prozesse momentan laufen (im Beispiel 47), wie viel
Speicher und Swap verbraucht wurde und wie viel Zeit das System
in den verschiedenen CPU-Modi verbringt.</para>
<para>Darunter befinden sich einige Spalten mit ähnlichen
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
Informationen wie in der Ausgabe von &man.ps.1;,
beispielsweise die <acronym>PID</acronym>, den Besitzer, die
verbrauchte CPU-Zeit und das Kommando, das den Prozess gestartet
hat. &man.top.1; zeigt in zwei Spalten den Speicherverbrauch
des Prozesses an. Die erste Spalte gibt
den gesamten Speicherverbrauch des Prozesses an, in der zweiten
Spalte wird der aktuelle Verbrauch angegeben.
<application>mutt</application> hat im gezeigten
Beispiel insgesamt 8&nbsp;MB Speicher verbraucht. Momentan benutzt
<application>mutt</application> hat im gezeigten Beispiel
insgesamt 8&nbsp;MB Speicher verbraucht. Momentan benutzt
es allerdings nur 5&nbsp;MB.</para>
<para>Die Anzeige wird von &man.top.1; automatisch alle zwei
@ -2002,14 +1998,12 @@ Swap: 256M Total, 38M Used, 217M Free, 15% Inuse
Konvention mit einem <quote>d</quote> am Ende benannt.
<application>BIND</application> steht beispielsweise für
Berkeley Internet Name Domain, das tatsächlich laufende Programm
heißt aber <command>named</command>. Der
<application>Apache</application> Webserver wird
<command>httpd</command> genannt und der Druckerspool-Dämon
heißt <command>lpd</command>. Dies ist allerdings nur eine
Konvention. Der Dämon der Anwendung
<application>sendmail</application> heißt beispielsweise
<command>sendmail</command> und nicht
<command>maild</command>.</para>
heißt aber &man.named.8;. Der <application>Apache</application>
Webserver wird <command>httpd</command> genannt und der
Druckerspool-Dämon heißt &man.lpd.8;. Dies ist allerdings nur
eine Konvention. Der Dämon der Anwendung
<application>Sendmail</application> heißt beispielsweise
&man.sendmail.8; und nicht <literal>maild</literal>.</para>
<para>Eine Möglichkeit mit einem Dämon oder einem laufenden
Prozess zu kommunizieren, ist über das Versenden von
@ -2078,14 +2072,15 @@ Swap: 256M Total, 38M Used, 217M Free, 15% Inuse
<para>Das folgende Beispiel zeigt, wie Sie &man.inetd.8; ein
Signal schicken. Die Konfigurationsdatei von
<command>inetd</command> ist <filename>/etc/inetd.conf</filename>.
Diese Konfigurationsdatei liest <command>inetd</command> ein,
&man.inetd.8; ist <filename>/etc/inetd.conf</filename>.
Diese Konfigurationsdatei liest &man.inetd.8; ein,
wenn er <literal>SIGHUP</literal> empfängt.</para>
<step>
<para>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:</para>
<para>Suchen Sie mit &man.pgrep.1; die <acronym>PID</acronym>
des Prozesses, dem Sie ein Signal schicken wollen. In
diesem Beispiel ist die <acronym>PID</acronym> von
&man.inetd.8; 198:</para>
<screen>&prompt.user; <userinput>pgrep -l inetd</userinput>
198 inetd -wW</screen>
@ -2106,14 +2101,15 @@ Swap: 256M Total, 38M Used, 217M Free, 15% Inuse
<para>&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
Wird versucht, einem Prozess der nicht dem Benutzer
gehört, ein Signal zu senden, dann wird die Meldung
<errorname>kill: <replaceable>PID</replaceable>: Operation
not permitted</errorname> 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
not permitted</errorname> ausgegeben. Ein Tippfehler bei
der Eingabe der <acronym>PID</acronym> 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 <acronym>PID</acronym> gesendet die derzeit nicht in
Gebrauch ist, was zu dem Fehler
<errorname>kill: <replaceable>PID</replaceable>: No such
process</errorname> führt.</para>
@ -2140,10 +2136,10 @@ Swap: 256M Total, 38M Used, 217M Free, 15% Inuse
<important>
<para>Das zufällige Beenden eines Prozesses kann gravierende
Auswirkungen haben. Insbesondere &man.init.8;, mit der PID 1,
ist ein Spezialfall. <command>/bin/kill -s KILL 1</command>
ist ein schneller, jedoch nicht empfohlener Weg, das System
herunterzufahren.
Auswirkungen haben. Insbesondere &man.init.8;, mit der
<acronym>PID</acronym> 1, ist ein Spezialfall.
<command>/bin/kill -s KILL 1</command> ist ein schneller,
jedoch nicht empfohlener Weg, das System herunterzufahren.
Überprüfen Sie die Argumente von &man.kill.1;
<emphasis>immer</emphasis> zweimal <emphasis>bevor</emphasis>
Sie <keycap>Return</keycap> drücken.</para>
@ -2161,16 +2157,16 @@ Swap: 256M Total, 38M Used, 217M Free, 15% Inuse
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
<command>sh</command> (Bourne Shell) und <command>tcsh</command>
(verbesserte C-Shell) im Basissystem. Weitere Shells, wie
<command>zsh</command> oder <command>bash</command>, befinden
sich in der Ports-Sammlung.</para>
Umgebungsvariablen. &os; enthält einige Shells, darunter die
Bourne Shell (&man.sh.1;) und die verbesserte C-Shell
(&man.tcsh.1;). Weitere Shells, wie <command>zsh</command> oder
<command>bash</command>, befinden sich in der
Ports-Sammlung.</para>
<para>Die verwendete Shell ist letztlich eine Frage des
Geschmacks. Ein C-Programmierer, findet vielleicht eine
C-artige Shell wie <command>tcsh</command> angenehmer. Ein
Linux-Benutzer bevorzugt vielleicht <command>bash</command>.
C-artige Shell wie &man.tcsh.1; angenehmer. Ein
&linux;-Benutzer bevorzugt vielleicht <command>bash</command>.
Jede Shell hat ihre speziellen Eigenschaften, die mit der
bevorzugten Arbeitsumgebung des Benutzers harmonieren kann oder
nicht. Deshalb stehen mehrere Shells zur Auswahl.</para>
@ -2286,12 +2282,11 @@ Swap: 256M Total, 38M Used, 217M Free, 15% Inuse
<secondary>Bourne Shell</secondary>
</indexterm>
<para>Das Setzen von Umgebungsvariablen unterscheidet sich
von Shell zu Shell. In <command>tcsh</command> und
<command>csh</command> wird dazu <command>setenv</command>
benutzt. <command>sh</command> und <command>bash</command>
benutzen <command>export</command> um Umgebungsvariablen zu
setzen. Dieses Beispiel für die <command>tcsh</command>-Shell
setzt die Variable <envar>EDITOR</envar> auf
von Shell zu Shell. In &man.tcsh.1; und &man.csh.1; wird dazu
<command>setenv</command> benutzt. &man.sh.1; und
<command>bash</command> benutzen <command>export</command> um
Umgebungsvariablen zu setzen. Dieses Beispiel für die
&man.tcsh.1;-Shell setzt die Variable <envar>EDITOR</envar> auf
<filename>/usr/local/bin/emacs</filename>:</para>
<screen>&prompt.user; <userinput>setenv EDITOR /usr/local/bin/emacs</userinput></screen>
@ -2306,16 +2301,15 @@ Swap: 256M Total, 38M Used, 217M Free, 15% Inuse
ein. Zum Beispiel gibt <command>echo $TERM</command> den
aktuellen Wert von<envar>$TERM</envar> aus.</para>
<para>Shells behandeln Spezialzeichen, so genannte
Metazeichen, als besondere Darstellungen für Daten.
Das häufigste Zeichen ist <literal>*</literal>, das eine
beliebige Anzahl Zeichen in einem Dateinamen repräsentiert.
Metazeichen können zur Vervollständigung von
Dateinamen (Globbing) benutzt werden. Beispielsweise liefert
<command>echo *</command> nahezu das gleiche wie
<command>ls</command>, da die Shell alle
Dateinamen die mit <literal>*</literal> übereinstimmen, an
<command>echo</command> weitergibt.</para>
<para>Shells behandeln Spezialzeichen, so genannte Metazeichen,
als besondere Darstellungen für Daten. Das häufigste Zeichen
ist <literal>*</literal>, das eine beliebige Anzahl Zeichen in
einem Dateinamen repräsentiert. Metazeichen können zur
Vervollständigung von Dateinamen (Globbing) benutzt werden.
Beispielsweise liefert <command>echo *</command> nahezu das
gleiche wie &man.ls.1;, da die Shell alle Dateinamen die mit
<literal>*</literal> übereinstimmen, an <command>echo</command>
weitergibt.</para>
<para>Um zu verhindern, dass die Shell ein Sonderzeichen
interpretiert, schützt man es, indem man einen
@ -2331,7 +2325,7 @@ Swap: 256M Total, 38M Used, 217M Free, 15% Inuse
<command>chsh</command> zu benutzen.
<command>chsh</command> startet den Editor, welcher durch
die Umgebungsvariable <envar>EDITOR</envar> gesetzt ist.
Standardmäßig ist dies <command>vi</command>.
Standardmäßig ist dies &man.vi.1;.
Tragen Sie in die Zeile die mit <quote>Shell:</quote> beginnt,
den absoluten Pfad der neuen Shell ein.</para>
@ -2345,15 +2339,15 @@ Swap: 256M Total, 38M Used, 217M Free, 15% Inuse
<note>
<para>Die neue Shell <emphasis>muss</emphasis> in
<filename>/etc/shells</filename> aufgeführt sein. Wurde die
Shell aus der <link linkend="ports">Ports-Sammlung</link>
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:</para>
Shell aus der &os; Ports-Sammlung installiert, so wie in
<xref linkend="ports"/> beschrieben, 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:</para>
<screen>&prompt.root; <userinput>echo &quot;/usr/local/bin/bash&quot; &gt;&gt; /etc/shells</userinput></screen>
<para>Danach können Sie <command>chsh</command> aufrufen.</para>
<para>Danach kann &man.chsh.1; erneut aufgerufen werden.</para>
</note>
</sect2>
</sect1>
@ -2370,7 +2364,7 @@ Swap: 256M Total, 38M Used, 217M Free, 15% Inuse
Ports-Sammlung.</para>
<indexterm>
<primary><command>ee</command></primary>
<primary>&man.ee.1;</primary>
</indexterm>
<indexterm>
@ -2378,28 +2372,29 @@ Swap: 256M Total, 38M Used, 217M Free, 15% Inuse
<secondary><command>ee</command></secondary>
</indexterm>
<para>Ein einfach zu erlernender Editor ist
<application>ee</application>, was für
<foreignphrase>easy editor</foreignphrase> steht.
Um diesen Editor zu starten, gibt man in der
Kommandozeile <command>ee filename</command> ein, wobei
<replaceable>filename</replaceable> den Namen der zu editierenden
Datei darstellt. Einmal im Editor, finden sich alle Editor-Funktionen oben im
Display aufgelistet. Das Einschaltungszeichen
<literal>^</literal> steht für die <keycap>Ctrl</keycap> (oder
<keycap>Strg</keycap>) Taste, mit <literal>^e</literal> ist also die
Tastenkombination <keycombo action="simul"><keycap>Ctrl</keycap><keycap>e</keycap></keycombo>
gemeint. Um <application>ee</application> zu verlassen, drücken
Sie <keycap>Esc</keycap> und wählen dann im Hauptmenü <option>leave
<para>Ein einfach zu erlernender Editor ist &man.ee.1;, was für
<foreignphrase>easy editor</foreignphrase> steht. Um diesen
Editor zu starten, gibt man in der Kommandozeile <command>ee
<replaceable>filename</replaceable></command> ein, wobei
<replaceable>filename</replaceable> den Namen der zu
editierenden Datei darstellt. Einmal im Editor, finden sich
alle Editor-Funktionen oben im Display aufgelistet. Das
Einschaltungszeichen <literal>^</literal> steht für die
<keycap>Ctrl</keycap> (oder <keycap>Strg</keycap>) Taste, mit
<literal>^e</literal> ist also die Tastenkombination
<keycombo
action="simul"><keycap>Ctrl</keycap><keycap>e</keycap></keycombo>
gemeint. Um &man.ee.1; zu verlassen, drücken Sie
<keycap>Esc</keycap> und wählen dann im Hauptmenü <option>leave
editor</option> aus. Der Editor fragt nach, ob Sie speichern
möchten, wenn die Datei verändert wurde.</para>
<indexterm>
<primary><command>vi</command></primary>
<primary>&man.vi.1;</primary>
</indexterm>
<indexterm>
<primary>Text Editoren</primary>
<secondary><command>vi</command></secondary>
<secondary>&man.vi.1;</secondary>
</indexterm>
<indexterm>
<primary><command>emacs</command></primary>
@ -2408,12 +2403,13 @@ Swap: 256M Total, 38M Used, 217M Free, 15% Inuse
<primary>Text Editoren</primary>
<secondary><command>emacs</command></secondary>
</indexterm>
<para>&os; verfügt über leistungsfähigere
Editoren wie <application>vi</application> als Teil des
Basissystems. Andere Editoren wie <application>emacs</application>
und <application>vim</application> sind Teil der Ports-Sammlung.
Diese Editoren bieten höhere Funktionalität, jedoch auf Kosten einer etwas
schwierigeren Erlernbarkeit. Das Erlernen eines
<para>&os; verfügt über leistungsfähigere Editoren wie &man.vi.1;
als Teil des Basissystems. Andere Editoren wie
<package>editors/emacs</package> und
<package>editors/vim</package> 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 <application>vim</application>
oder <application>Emacs</application>, kann auf lange Sicht Zeit
einsparen.</para>
@ -2422,7 +2418,7 @@ Swap: 256M Total, 38M Used, 217M Free, 15% Inuse
erwarten, werden automatisch einen Texteditor öffnen. Um den
Standardeditor zu ändern, wird die Umgebungsvariable
<envar>EDITOR</envar> gesetzt, wie im Abschnitt
<link linkend="shells">Shells</link> beschrieben.</para>
<xref linkend="shells"/> beschrieben.</para>
</sect1>
<sect1 xml:id="basics-devices">
@ -2448,10 +2444,27 @@ Swap: 256M Total, 38M Used, 217M Free, 15% Inuse
<sect1 xml:id="binary-formats">
<title>Binärformate</title>
<para>Um zu verstehen, warum &os; das Format
&man.elf.5; benutzt, müssen zunächst die drei gegenwärtig
<quote>dominanten</quote> ausführbaren Formate
für &unix; beschrieben werden:</para>
<para>Wenn ein Kommando an die Shell übergeben wird, dann wird die
Shell die ausführbare Datei in den Speicher laden und einen
neuen Prozess erstellen. Ausführbare Dateien sind entweder
Binärdateien (die meist vom Linker während der Übersetzung
eines Programms erzeugt werden), oder ein Shell-Skript (eine
Textdatei, welche von einer Binärdatei, wie &man.sh.1; oder
&man.perl.1; interpretiert wird). Das Kommando &man.file.1;
kann für gewöhnlich bestimmen, von welchem Typ eine Datei
ist.</para>
<para>Binärdateien benötigen ein klar definiertes Format, damit
das System in der Lage ist, sie richtig zu verwenden. Ein Teil
der Datei enthält den ausführbaren Maschinencode (Anweisungen
die der CPU sagen, was zu tun ist), ein anderer Teil enthält
Daten mit vordefinierten Werten, ein weiterer wiederum Daten
ohne vordefinierte Werte. Im Laufe der Zeit wurden verschiedene
binäre Dateiformate entwickelt.</para>
<para>Um zu verstehen, warum &os; das Format &man.elf.5; benutzt,
müssen zunächst die drei gegenwärtig <quote>dominanten</quote>
ausführbaren Formate für &unix; beschrieben werden:</para>
<itemizedlist>
<listitem>
@ -2583,9 +2596,8 @@ Swap: 256M Total, 38M Used, 217M Free, 15% Inuse
Cross-Compilern durch beliebiges Einschalten verschiedener
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 <application>as</application> und <application>ld</application>
waren hierzu nicht geeignet. Die neuen
kein Glück, denn &os;'s ältere Sourcen für &man.as.1; und
&man.ld.1; waren hierzu nicht geeignet. Die neuen
GNU-Werkzeuge (<application>binutils</application>) unterstützen
Cross-Compilierung, <acronym>ELF</acronym>, Shared-Libraries und
C++-Erweiterungen. Weiterhin geben viele
@ -2617,12 +2629,12 @@ Swap: 256M Total, 38M Used, 217M Free, 15% Inuse
erklärt. Diese Manuals können mit <command>man</command>
eingesehen werden:</para>
<screen>&prompt.user; <userinput>man Kommando</userinput></screen>
<screen>&prompt.user; <userinput>man <replaceable>Kommando</replaceable></userinput></screen>
<para><literal>Kommando</literal> ist der Name des Kommandos,
über das Sie etwas erfahren wollen. Um beispielsweise
mehr über das Kommando <command>ls</command> zu lernen,
geben Sie ein:</para>
<para><replaceable>Kommando</replaceable> ist der Name des
Kommandos, über das man etwas erfahren will. Um
beispielsweise mehr über das Kommando &man.ls.1; zu
erfahren, geben Sie ein:</para>
<screen>&prompt.user; <userinput>man ls</userinput></screen>
@ -2668,24 +2680,24 @@ Swap: 256M Total, 38M Used, 217M Free, 15% Inuse
</orderedlist>
<para>In einigen Fällen kann dasselbe Thema in mehreren
Sektionen auftauchen. Es gibt zum Beispiel ein <command>chmod</command>
Benutzerkommando und einen <function>chmod()</function>
Systemaufruf. Sie können <command>man</command>
sagen, aus welcher Sektion Sie die Information erhalten
möchten, indem Sie die Sektionsnummer mit angeben:</para>
Sektionen auftauchen. Es gibt zum Beispiel ein
&man.chmod.1; Benutzerkommando und einen
<function>chmod()</function> Systemaufruf. Um &man.man.1;
mitzuteilen, aus welcher Sektion die Information angezeigt
werden soll, kann die Sektionsnummer mit angeben
werden:</para>
<screen>&prompt.user; <userinput>man 1 chmod</userinput></screen>
<para>Dies wird Ihnen die Manualpage für das Benutzerkommando
<command>chmod</command> zeigen. Verweise auf eine Sektion
der Manualpages werden traditionell in Klammern
gesetzt. So bezieht sich &man.chmod.1; auf das
Benutzerkommando <command>chmod</command> und mit
&man.chmod.2; ist der Systemaufruf gemeint.</para>
&man.chmod.1; zeigen. Verweise auf eine Sektion der
Manualpages werden traditionell in Klammern gesetzt. So
bezieht sich &man.chmod.1; auf das Benutzerkommando und
&man.chmod.2; auf den Systemaufruf.</para>
<para>Wenn Sie den Namen des Kommandos kennen, benutzen Sie
<command>man -k</command>, um nach Schlüsselbegriffen in den
Kommandobeschreibungen zu suchen:</para>
<para>Wenn der Name des Kommandos nicht bekannt ist, benutzt
man <command>man -k</command>, um nach Schlüsselbegriffen in
den Kommandobeschreibungen zu suchen:</para>
<screen>&prompt.user; <userinput>man -k <replaceable>mail</replaceable>
</userinput></screen>
@ -2712,14 +2724,14 @@ Swap: 256M Total, 38M Used, 217M Free, 15% Inuse
<sect2 xml:id="basics-info">
<title>GNU Info Dateien</title>
<para>&os; enthält viele Anwendungen und Utilities
der Free Software Foundation (FSF). Zusätzlich zu den
Manualpages können diese Programme Hypertext-Dokumente
enthalten, die <literal>info</literal>-Seiten genannt werden.
Diese Dokumente können mit <command>info</command>
ansehen kann. Wenn Sie <package>editors/emacs</package>
installiert haben, können Sie auch den info-Modus von
<application>emacs</application> benutzen.</para>
<para>&os; enthält viele Anwendungen und Utilities der Free
Software Foundation (FSF). Zusätzlich zu den Manualpages
können diese Programme Hypertext-Dokumente enthalten, die
<literal>info</literal>-Seiten genannt werden. Diese
Dokumente können mit &man.info.1; ansehen kann. Wenn
<package>editors/emacs</package> installiert ist, kann auch
der info-Modus von <application>emacs</application> benutzt
werden.</para>
<para>Um &man.info.1; zu benutzen, geben Sie ein:</para>