3.6    Hilfe

Zu guter Letzt fehlt uns für eine komplette Betrachtung des Einstiegs noch die Möglichkeit, Hilfe zu erhalten. Schließlich sind die Optionen und Möglichkeiten vieler Programme so reichhaltig, dass man sie kaum komplett im Kopf behalten kann. Vor allem in nicht ganz alltäglichen Situationen wird man gerne einmal auf Befehlsreferenzen zurückgreifen.

3.6.1    Manpages

Eine solche Befehlsreferenz finden Sie in den Manpages. Diese sind das traditionelle Hilfesystem für Unix und somit (wie auch nicht anders zu erwarten) in erster Linie über die Shell erreichbar.

Zu fast allen Befehlen und Programmen gibt es eine Handbuchseite (engl. manual page), die aus der Shell heraus mit dem man-Kommando betrachtet werden kann. Das Scrollen funktioniert dabei wie gewohnt, und das Suchen erfolgt wie bei less oder auch beim vi über die (/)-Taste, gefolgt vom Suchausdruck und (¢), sowie durch Betätigen der Taste (N) zum Aufrufen der nächsten Fundstelle.

$ man ls

Listing 3.18     Aufrufen der Manpage für ls

Manpages enthalten üblicherweise eine kurze Beschreibung des Programms sowie eine komplette Referenz der verfügbaren Kommandozeilenoptionen. Nur selten findet sich ein ausführlicheres Beispiel in einer Manpage. Und so passt diese Hilfe wieder zur Unix-Philosophie: Erfahrene Nutzer wollen nur kurz die Syntax bestimmter Optionen nachschlagen und sich dafür nicht durch seitenlange Einführungen quälen müssen.

Sections

Für manche Stichwörter gibt es mehr als nur ein Hilfethema und somit auch mehr als eine Manpage. Ein gutes Beispiel dafür ist das Programm man selbst: Es gibt zu diesem Thema einmal eine Hilfeseite zur Bedienung des man-Programms und eine Hilfeseite zur Erstellung von Manpages. Damit man Hilfeseiten zu unterschiedlichen Themenkomplexen unterscheiden kann, gibt es unterschiedliche Sections (Abschnitte), in die die Manpages eingeteilt werden:

  1. ausführbare Programme oder Shellbefehle

  2. Systemaufrufe (Kernelfunktionen)

  3. Bibliotheksaufrufe (Funktionen in Systembibliotheken)

  4. spezielle Dateien (gewöhnlich in /dev)

  5. Dateiformate und Konventionen, z. B. /etc/passwd

  6. Spiele

  7. Makropakete und Konventionen, z. B. man(7), groff(7)

  8. Systemadministrationsbefehle (in der Regel nur für root)

  9. Kernelroutinen (linux-spezifisch)

Die Sektionen sind im System als einfache Verzeichnisse realisiert, in denen jeweils die Manpages der entsprechenden Sektionen abgelegt sind. Die Manpages selbst sind wiederum nur Dateien in bestimmter Formatierung.

Möchten Sie explizit auf eine Seite innerhalb einer Sektion zugreifen, so geben Sie beim Aufruf von man einfach die Sektionsnummer des eigentlichen Hilfethemas an:

$ man 1 write
$ man 2 write

Listing 3.19     Unterschiedliche Man-Sektionen

In diesem Beispiel wird zuerst die Manpage für das ausführbare Programm write aus der Sektion 1 und danach die Manpage zum Syscall write() aus der Sektion 2 aufgerufen. Lassen Sie diese explizite Angabe der Sektionsnummer weg und tippen nur man write, so wird die Manpage aus der niedrigsten Sektion – also in unserem Fall die Manpage aus Sektion 1 zum Programm write – angezeigt. Um die Verwirrung zu reduzieren, wird für den Bezug auf eine bestimmte Sektion diese in Klammern nach dem Befehl angegeben, also beispielsweise write(2).

whatis

Das kleine Programm whatis hilft uns, alle Sektionen zu einem bestimmten Thema herauszufinden. Das Tool ist dabei lediglich ein Frontend für den Aufruf von man mit dem Parameter -f:

$ whatis write
write (1)           - send a message to another user
write (2)           - write to a file descriptor
$ man -f write
write (1)           - send a message to another user
write (2)           - write to a file descriptor

Listing 3.20     whatis

Angezeigt werden also der Titel der Manpage, die Sektionsnummer sowie eine kurze Beschreibung des Seiteninhalts.

apropos

Eine etwas weiter gefasste Suche ermöglicht das Tool apropos, das wiederum nur Frontend für man mit der Option -k ist:

$ apropos write
…
kwrite (1)          - KDE text editor
llseek (2)          - reposition read/write file offset
login (3)           - write utmp and wtmp entries
…

Listing 3.21     apropos

Hier werden alle Manpages angezeigt, bei denen im Namen der Seite oder in der Kurzbeschreibung auf das Suchwort Bezug genommen wird. Beide Tools – whatis und apropos – ergänzen somit das Manpage-Hilfesystem von Unix.

3.6.2    GNU info

Ähnlich wie man funktioniert das Programm info der GNU-Community. Die Bedienung ist etwas anders, aber eigentlich auch recht intuitiv. Der Grund für ein eigenes Hilfesystem dieser Open-Source-Gruppe liegt in der Abkürzung GNU selbst: GNU is Not Unix. Mit info sollte ein eigenes Hilfesystem für ein komplett freies GNU-basiertes Betriebssystem geschaffen werden. Mittlerweile spricht man teilweise von GNU/Linux, um auszudrücken, dass Linux zwar den Systemkern, aber GNU die wichtigsten grundlegenden Systemtools zur Verfügung stellt. Aber natürlich gibt es alle GNU-Infoseiten auch als Manpages.

3.6.3    Programmdokumentation

Solche Manual- oder Infoseiten sind natürlich meist ein zentraler Bestandteil der Dokumentation von Softwarepaketen. Außerdem werden oft sogenannte README-Dateien nach /usr/doc oder /usr/share/doc installiert, die noch einmal im Detail Auskunft über spezielle Funktionen und Aspekte der Bedienung geben.

Eine Auflistung aller verfügbaren Optionen und damit eine ähnliche Ausgabe wie in den Manpages können Sie oft durch die Angabe der Parameter --help oder -h auf der Kommandozeile aufrufen. Ansonsten hilft meistens auch die Entwicklerdokumentation weiter, die Sie bei Open-Source-Projekten oft auf GitHub (http://www.github.com) finden. Alternativ gibt es für jede Distribution auch noch zahlreiche Foren auf den entsprechenden Internetseiten. Bei Linux-Fragen sind oft diverse Mailinglisten und Newsgroups recht hilfreich. Ansonsten hilft natürlich auch immer die Suchmaschine Ihrer Wahl, gefüttert mit passenden Suchbegriffen.