Auch Profis kennen nicht alle Kommando-Optionen – sie wissen aber, wo sie suchen müssen. Das LPI erwartet viele Detailkenntnisse, setzt aber auch voraus, dass Prüflinge die Standardmethoden kennen, um Hilfe in der Programmdokumentation zu finden.
Fast alle Tools, die Administratoren für die LPI-Prüfung kennen müssen, sind Programme, die in der Shell laufen – wo es grafisch wird, geht es nur um die Konfiguration des X-Window-Systems. Die klassischen Kommandozeilen-Tools, von denen es viele schon in älteren Unix-Versionen gab, bringen meist eigene Dokumentation in einem von zwei Standardformaten mit: Manpages (Manual Pages, Handbuchseiten) sind dabei Standard auf allen Unix-Systemen, während die etwas neuere Alternative der Info-Seiten aus der GNU-Welt stammt. Daneben gibt es oft noch zusätzliche Dokumente in Form von einfachen Ascii- oder formatierten HTML-Texten.
Manual Pages
Die wichtigste Informationsquelle rund um die Kommandozeilen-Tools sind die Manual Pages. Software-Entwickler erstellen sie bequem und schnell und bringen sie nach Änderungen problemlos auf den neuesten Stand. Spezielle Tools erledigen das sogar automatisch, indem sie Änderungen im Quelltext analysieren. Gleichzeitig ist es leicht, Manpages zu installieren und sie zu lesen.
Handbuchseiten wie die in Abbildung 1behandeln ein bestimmtes Thema, oft einen einzigen Befehl. Spezielle Programme übernehmen die Suche und Anzeige einer Manpage, wahlweise auf der Kommandozeile, mit einer grafischen Oberfläche oder auch übers Web.

Abbildung 1: Manpages gibt es zu den meisten installierten Kommandozeilen-Programmen. Dank ihres einheitlichen Aufbaus ist die Orientierung leicht, am Anfang stehen Syntax und Beschreibung.
Das Dateiformat der Manpages stammt von Roff, einem Textsatzsystem aus den frühen 70er Jahren. Es unterstützt in den für Manpages verwendeten Betriebsarten nur grundlegende Formatierungen wie Überschriften, Hervorhebungen und Aufzählungen. Diese Einfachheit garantiert, dass jeder Programmierer Manpages erstellen und jeder Anwender sie lesen kann. So entstehen keine unnötigen Hemmschwellen für die ohnehin manchmal lästige Dokumentation von Software.
Manpages sind in jeder aktuellen Linux-Distribution reichlich vorhanden und, da sie wenig Platz einnehmen, oft schon in der minimalen Konfiguration enthalten. Außerdem installieren viele Programmpakete ihre eigenen Handbuchseiten gleich mit. Das Linux Documentation Project [1] bietet ergänzende Seiten zu grundlegenden Themen wie der Bibliothek Libc und dem Kernel an.
Anwender rufen eine Manpage von der Konsole aus auf, indem sie den Namen – häufig den Namen des gewünschten Befehls – als Argument zum Programm »man« angeben: »man bash«. Der Kasten “Grafische Frontends” stellt alternative Tools für die Anzeige vor.
Ordnung im Man-Dschungel
Jede Manpage gehört zu einem Abschnitt (Englisch: section). Acht klassische Abschnitte stellt Tabelle 1 vor. Zusätzlich zu diesen mit Nummern benannten gibt es noch weitere, mit Buchstaben versehene Abschnitte. Normalerweise sind das die Buchstaben »n« (für new), »l« (local), »p« (public) und »o« (old). Auf vielen Systemen landen etwa die Manpages zur Programmiersprache Tcl unter »n«.
|
Tabelle 1: |
|
|---|---|
|
Abschnitt |
Beschreibung |
|
1 |
Ausführbare Programme und Shellbefehle |
|
2 |
Systemaufrufe (Kernelfunktionen) |
|
3 |
Bibliotheksaufrufe (Funktionen in Systembibliotheken) |
|
4 |
Spezielle Dateien, gewöhnlich in »/dev« |
|
5 |
Dateiformate und Konventionen, zum Beispiel |
|
6 |
Spiele |
|
7 |
Makropakete und Konventionen, etwa »XF86Config«, |
|
8 |
Administrationsbefehle, etwa »lsmod«, |
Die Manualdateien, deren Namen abhängig vom Abschnitt auf ».1«, ».2« und so weiter enden, liegen in Verzeichnissen, die der Filesystem Hierarchy Standard [2] festlegt, und sind damit leicht auffindbar. Für jeden Abschnitt gibt es ein eigenes Unterverzeichnis, etwa »man1«. Wo »man« die Handbuchseiten findet, legen zum einen die Datei »/etc/manpath.config« und zum anderen die Umgebungsvariable »MANPATH« fest. Jeder Benutzer hat so die Möglichkeit, Manpages in anderen als den Standardverzeichnissen zu installieren.
Je nach Konfiguration legt »man« in dafür vorgesehenen Verzeichnissen formatierte Manpages (so genannte Cat Pages) ab, sodass beim nächsten Abruf dieser Seiten keine Formatierung mehr nötig ist. Das spart auf langsamen Computern Rechenzeit. Die Verzeichnisse heißen analog zu den Manpage-Ordnern »cat1«, »cat2« und so weiter.
Einige Systeme mounten die Partition von »/usr« read-only, um die Sicherheit zu erhöhen. Um auf solchen Systemen trotzdem Cat Pages zu verwenden, ist es möglich, sie unterhalb von »/var« zu speichern. Das legt der Administrator über die globale Konfigurationsdatei »/etc/manpath.config« fest. Debian und Open Suse verwenden etwa das Verzeichnis »/var/cache/man«.
Zusätzliche Ordner enthalten lokalisierte Manpages. Die englischsprachige Dokumentation zum Kommando »chmod« findet sich beispielsweise in der Datei »/usr/share/man/man1/chmod.1«, die deutsche Übersetzung in »/usr/share/man/de/man1/chmod.1«. Welche Seite »man« anzeigt, entscheiden die Umgebungsvariablen »LANG« und »LC_ALL«. Viele Linux-Distributionen speichern die Manpages übrigens komprimiert, meist im Gzip-Format, sehr selten aber auch als Bzip2-Datei.
|
LPI-Aufgabengruppen |
|---|
|
Das Linux Professional Institute gliedert die Prüfungsfragen in Aufgabengruppen. Dieser Artikel erklärt die folgenden Abschnitte:
|
Apropos, was ist …?
Wer nun in dem Wust an Kommandos genau das eine sucht, dessen Name ihm gerade nicht einfällt, dem helfen zwei Tools aus dem Man-Paket: »apropos« durchforstet die Titel aller gespeicherten Manpages nach dem angegebenen Argument. Dabei spielt es keine Rolle, ob der Suchbegriff als ganzes Wort oder als Bestandteil eines Wortes vorkommt. »whatis« arbeitet ähnlich, zeigt aber nur Treffer, bei denen das Argument als ganzes Wort im Titel vorkommt.
Beide Kommandos benutzen zum schnellen Auffinden der gewünschten Informationen eine binäre Datenbank, die der Befehl »makewhatis« (oder »mandb«, je nach Distribution) erstellt. Ein Cronjob [5] startet regelmäßig diesen Vorgang, damit die Datenbank immer auf dem aktuellen Stand ist.
Eigenkreationen
Intern benutzt »man« meist die Roff-Tools (»nroff« oder »groff«). Auf GNU-Systemen ruft »nroff« lediglich »groff« (GNU Roff) auf, welches das Verhalten des traditionellen »nroff«-Kommandos emuliert. »nroff« erzeugt aus der Manpage einfachen Ascii-Text, das GNU-Tool beherrscht noch weitere Dateiformate wie Postscript und HTML.
Der folgende Befehl wandelt den Quelltext einer Manpage ins Ascii-Format (genauer: nach ISO-Latin oder UTF) um und zeigt das Ergebnis in »less« an:
nroff -man Manpage-Datei | less
Die Option »-m« gibt das Makropaket an, das »nroff« zum Interpretieren der Formatierung verwenden soll (hier »an«), sodass sich die leicht merkbare Schreibweise »-man« ergibt.
Makros für die Ausgabe
Das Makropaket »an« enthält die gebräuchlichen Befehle für Manpages. Auf vielen Linux-Systemen gibt es zusätzlich noch das etwas erweiterte Makropaket »andoc« (Aufruf mit »-mandoc«). Um eine Manpage ins Postscript-Format zu konvertieren, genügt der Aufruf »groff -Tps -man Manpage-Datei > ausgabe.ps«. Das Ausgabeformat legt hier die Option »-T« fest.
Mehr Übersicht
Der größte Vorteil der Manpages ist, dass sie klein sind und jedes Unix-System sie versteht. Schwierig wird es, wenn größere Zusammenhänge oder komplexe Softwarepakete zu dokumentieren sind. Die Manpages zu den diversen Shells beispielsweise, die jeweils eine komplette Programmiersprache nebst Tools und Tipps beschreiben, geraten an die Grenze des Zumutbaren. Die Manpage zur Bash ist mit rund 4500 Zeilen (entsprechend etwa 70 Druckseiten) alles andere als übersichtlich.
Ein sinnvoller Ansatz ist es, die Manpage in kleine Teile zu zerlegen, wie es bei Perl der Fall ist. Benutzer holen sich damit gezielt nur den relevanten Teil der Dokumentation auf den Bildschirm. Eine Einstiegsseite dient als Orientierungshilfe und Inhaltsverzeichnis.
Navigieren in Bäumen
Als Alternative bietet sich das Info-System an. Anstelle der linearen Form von Manpages kommt eine Baumstruktur zum Einsatz, die Texte durch hierarchische Menüs gliedert. Zusätzliche Querverweise erlauben ein rasches Hin-und-her-Springen zwischen inhaltlich verwandten Themen. Ein durchdachtes Navigationssystem erleichtert die Bewegung innerhalb des Baums.
Die baumartige Verteilung der Informationen orientiert sich an der üblichen Praxis bei der Arbeit am Computer. Wer eine neue Skriptsprache verwendet, wünscht sich eine kurze Einführung und wird bei der Anwendung schnell querlesen, um die gerade benötigten Informationen zusammenzusuchen. Dabei ist eine ordentliche und gut überschaubare Gliederung der Referenz sehr hilfreich.
Für die Navigation im Info-System gibt es den Befehl »info«. Außerdem zeigen die Editoren Emacs und Xemacs Info-Seiten an (Abbildung 3). Im einfachsten Fall liest der Benutzer Info-Seiten von vorne nach hinten wie eine Manpage. Zum Blättern dienen die [Leertaste] (vorwärts) und [Backspace] (rückwärts).
Tauchen Verzweigungen auf, funktionieren die beiden Tasten auch, jedoch sind alternative Schritte sinnvoller: Menüs sind durch »* Menu:« gekennzeichnet und geben eine Übersicht über die unmittelbar untergeordneten Knoten. Mit [M] springt der Anwender direkt zu einem der Menüpunkte. Dabei reicht es, die ersten paar Buchstaben in der Eingabeaufforderung einzugeben und den Rest mit [Tab] automatisch zu ergänzen. Den Cursor auf den betreffenden Menüpunkt zu setzen und [Enter] zu drücken bewirkt das Gleiche.
Der Navigation zwischen einzelnen Knoten dienen die folgenden Tasten: [N] (next, zur nächsten Seite), [P] (previous, zur vorherigen Seite) und [U] (up, zur übergeordneten Seite). Erwähnenswert sind auch die Querverweise, die durch »see« (siehe) gekennzeichnet sind: Ihnen folgt man mit [F] (follow, folgen). Zurück zum zuvor angezeigten Knoten geht es mit [L] (last, letzte Seite).
Viele Anwendungen, die das GNU-Projekt entwickelt hat, bieten nur in den Info-Seiten die vollständige Dokumentation, denn »info« ist das bevorzugte Dokumentationsformat in der GNU-Welt. Häufig gibt es dann zusätzlich eine minimalistische Manpage, die nur die wichtigsten Optionen nennt und auf die Info-Seiten verweist.

Abbildung 3: Mit dem Editor Emacs browsen Anwender im Info-System. Unter X gestartet ist es sogar möglich, die Info-Menüs mit der Maus aufzurufen.
Readmes, Howtos und FAQs
Bei all diesen speziellen Dokumentations-Tools sollten Administratoren die banalste Form von Dokumentation nicht vergessen: Reine Textdateien (oft mit dem Namen »README«) begleiten die meisten Programme und enthalten häufig wertvolle Informationen. Linux-Distributionen verstecken diese Dateien unterhalb von »/usr/share/doc/«, sehr alte Versionen arbeiten mit »/usr/doc/«.
Unter [1] präsentiert das Linux Documentation Project eine große Dokumentensammlung. Dort gibt es unter anderem Howtos, die manches schwierige Problem unter Linux lösen helfen (etwa WLAN-Karten einrichten, DVDs brennen, LDAP konfigurieren). Diverse FAQs (Frequently Asked Questions) beantworten häufig gestellte Fragen.
Auch in den Programmen selbst findet sich in vielen Fällen eine eingebaute Hilfe, die das Tool beim Aufruf mit dem Parameter »-h« oder »–help« preisgibt. Die so abrufbaren Informationen sind aber meist nur als Gedächtnisstütze nutzbar und selten so umfangreich wie Man- oder Info-Seiten.
|
Botschaften des |
|---|
|
Anwender suchen nicht nur in den Programm-Dokumentationen, sondern lesen auch Botschaften des Systemverwalters – allerdings nur, wenn sie sich an einer Textkonsole anmelden oder via SSH auf dem Rechner einloggen. Der Administrator schreibt solche Botschaften in drei Dateien, die das System in verschiedenen Situationen anzeigt:
|
Hauptsache gefunden
Bei der Suche nach Dokumentation führen viele Wege zum Ziel. Geht es nur um eine Liste der Aufrufparameter, reicht meist der Programmaufruf mit »-h« oder ein kurzer Blick in die Manpage. Wie ein Programm funktioniert, ist oft in der Manpage, den Info-Seiten oder der Programm-Dokumentation zu erfahren. Bleiben alle hier aufgezeigten Wege und auch eine Internetsuche erfolglos, haben Linux-Profis zuletzt noch die Option, im Quelltext des jeweiligen Programms nach Hinweisen zu suchen. Nach diesem Ansatz fragt das LPI in der Prüfung jedoch nicht.
|
Infos |
|---|
|
[1] Linux Documentation Project: [http://www.tldp.org] [2] Filesystem Hierarchy Standard zum Thema Manual Pages: [http://www.pathname.com/fhs/pub/fhs-2.3.html#USRSHAREMANMANUALPAGES] [3] Manpages im Web: [http://linux.ctyme.com] [4] »tkinfo«: [http://math-www.uni-paderborn.de/~axel/tkinfo/] [5] Peer Heinlein, “Admins Vollprogramm – LPIC-1-Kurs, Teil 10”: Linux-Magazin 05/07, S. 84 |






