1.2 Manpages
In diesem Lab lernen wir die Verwendung von manpages
kennen und schreiben zum
besseren Verständnis eine eigene manpage
für ein eigenes Programm.
Inhalt
- Was sind Manpages
- Wie ist eine Manpage aufgebaut?
- Verwendung von Manpages
- Erstellen einer eigenen Manpage
Was sind Manpages?
Manpages (nach dem Unix-Kommando
man
, was für englisch manual „Handbuch“ steht) sind eine Sammlung von Hilfe- und Dokumentationsseiten unter Unix und verwandten Betriebssystemen. Sie werden mit den Kommandosman
undwhatis
durchsucht sowie ausgegeben. Zur schnellen Durchmusterung wird ein eigener Index, die sogenannte Whatis-Datenbank, angelegt. Manpages werden unter Zuhilfenahme des speziell konzipierten Macro-Paketstroff
erzeugt.
Wann immer wir Hilfe oder Dokumentation zu einem beliebigen Programm benötigen können wir also auf die Manpage zugreifen, insofern diese auch existiert. Bei allen Standardprogrammen ist dies der Fall.
Wie ist eine Manpage aufgebaut?
Alle Manpages folgen dem selben Layout. Gegliedert wird in sogenannte Sections.
|
|
Layout einer Manpage mit Beschreibung
Oft werden Manpages um einzelne Punkte erweitert. Dazu gehören beispielsweise
EXIT STATUS, ENVIRONMENT, FILES, HISTORY, etc. Doch in der Manpage steht viel
mehr als nur Programmdokumentation. Manpages enthalten auch Informationen zu
Programmcode, Applikationsschnittstellen, Kernelroutinen und vieles mehr.
Folgende Tabelle ist ein Auszug aus man man
(Selbstverständlich existiert für
das Programm man
auch eine Manpage).
|
|
Auszug aus der Manpage zu man
Verwendung von Manpages
Informationen über ein Programm abfragen
Möchte man wissen was ein Programm für Inputs erfordert oder generelle Informationen über die Argumente abfragen tut man dies folgendermassen.
|
|
Aufruf der Manpage von ls
Obige Eingabe ruft die Manpage von ls
auf. Eigentlich ruft man
das Programm
less
mit den gewünschten Argumenten auf. Daher bedient man Manpages genau
gleich wie man less
verwendet.
- Gescrolled wird mit j,k
- Gesucht wird mit /
- Verlassen wird eine Manpage über q
- Hilfe zu Hotkeys gibt’s mit h
Nach Manpanges suchen
Hat man keine Ahnung wo sich die gewünschte Information befinden könnte, kann
man man
mit Suchparameter aufrufen.
|
|
Suche nach allen Einträgen für echo
Wie wir sehen liefert eine Suche nach echo
einige Resultate. In den Klammern
wird jeweils die Section angegeben. Suchen wir also nach der Dokumentation für
Shellprogramme sollte man sich auf die 1-er Sections konzentrieren. Wollen wir
uns eine Spezifische manpage ansehen gilt folgende Syntax.
|
|
Applikationsdokumentation von echo
Wir sehen also dass wir über die Manpages nicht nur erfahren wie ein Programm
funktioniert, sondern auch wie wir den Programmcode nutzen und gegebenenfalls
anpassen können. Dies funktioniert selbstverständlich nicht nur mit echo
sondern mit beliebigen Suchbegriffen. Ein gutes Beispiel ist die Dokumentation
der ASCII
Table welche man mittels man ascii
aufruft. Sie ist sehr hilfreich um
nachzuschlagen welcher ASCII-Wert zu welchem Zeichen korrelliert.
Erstellen einer eigenen Manpage
Wo leben Manpages im Dateisystem?
Manpages der Standardwerkzeuge werden unter /usr/share/man/man1
installiert und mittels
gzip
komprimiert, damit sie möglichst wenig Platz benötigen.
|
|
Beispiel Rohausgabe einer Manpage für ls
Die Orte unter welcher Manpages automatisch mittels man
indexiert werden und
somit gesucht werden können sind in der Variable MANPATH
abgelegt.
Sie erinnert ein wenig an die globale PATH
Variable. Erstellt man eigene
Manpages sollte man sich daran halten. Defaultwerte stehen in der
Konfigurationsdatei /etc/man.config
. Diese Werte können natürlich auch angepasst
werden. Mehr dazu liefert die entsprechende Manpage man manpath
. ;-)
Wie baue ich denn nun eine Eigene Manpage?
Stellen wir uns vor dass wir ein Programm geschrieben hätten welches bei Puzzle
Pizza bestellt. Wir nennen es ppizza
. Beim Aufruf von ppizza
wird bei
darina.ch
eine Zufallspizza bestellt welche dann
abhängig vom momentan arbeitenden Personal nach einigen Minuten abgeholt werden kann.
Mittels ppizza -v
kann eine zufällige, vegetarische Pizza bestellt werden.
Schreiben wir nun also eine Manpage für dieses Programm. Dazu müssen wir uns an die
eigenartige Syntax des Programmes GNU Troff groff
halten.
|
|
Erstellen einer eigenen Manpage
Speichert man den obigen Text in einem Dokument names ppizza
kann man es mit man ./ppizza
öffnen und wird mit einer wunderschönen neuen Manpage begrüsst. Der Author streitet an dieser Stelle ab dass so ein Programm existiert.
Wie installiere ich denn nun meine eigene Manpage?
Ganz einfach, man komprimiert sie mit gzip
und kopiert sie in einen Ordnder
welcher unter manpath
aufgelistet ist.
|
|
Installation der eigenen Manpage