orm@doc-tcpip.org

Erstellt: September 2000 - Letzte Modifikation: Oktober 2001

[ Main | Local ]


Die Online-Hilfe von Unix: man-Pages


Das online Manual - man Pages

Das Unix Manual - Was bedeutet man (8) ein-befehl??

Die man-Pages unter jedem Unix System sind vollständig und sehr brauchbar. Leider wissen die Wenigsten, wie das Ganze funktioniert, und es ist erstaunlich, wie lange man braucht, um sich klarzuwerden, das man auch man man absetzen kann. Hier also eine Zusammenfassung der nützlichen Dinge.

Die einzelnen Manual Pages werden vom Programierer geschrieben - so ist es zumindest gedacht. Daher schwankt Qualität und Umfang in gewissem Maß. Es gibt ein vorgegebenes Format für die einzelene Seite und eine Einordnung in Themengebiete, den Sectionen.

Und jedes Unix-Derivat kocht seine eigene Suppe...

Die Sectionen

Ich fange mit den Sectionen an, den damit löst sich das Rätsel der Nummern in der Klammer. Es gibt im Standard 8 Sectionen (je nach Unix-Derivat sind es ein paar mehr, verbreitet sind 9):

  1. Section 1 Deamons, User-Kommandos, ausführbare Programme
  2. Section 2 System Calls, Kernel Services
  3. Section 3 Subroutinen (Library Calls)
  4. Section 4 Device Treiber, Special Files, Hardware (/etc/dev)
  5. Section 5 alle Konfigurations-Files mit deren Format (man inetd.conf)
  6. Section 6 Spiele (ja, ist war)
  7. Section 7 Verschiedene Programme, installierte Software Pakete etc.
  8. Section 8 Administrative Kommandos, Befehle von Root etc.
  9. Section 9 Kernel Interfaces

Für jede Section gibt es in der Regel eine intro Seite, die man mit man # intro zu sehen bekommt (# ist eine Zahl zwischen 1 und 9 ..).

Das ist eine wichtige Information, da das klassische man-Kommando alle Sectionen durchsucht, aber dann aufhört, wenn es etwas gefunden hat. Hat ein Stichwort in allen Sectionen einen Eintrag, sieht man immer nur den aus Section 1.

Daher die Angabe der Nummer in der Klammer, der das Kommando anhält, nur dieser Section zu suchen. Als Beispiel soll printf dienen. Das ist einmal vom User in Skripten aufrufbar, ist aber auch eine Subroutine, ein Library Call. Ohne die explizite Angabe man 3 printf bleibt einem das verborgen.

Mit dem Kommando man -f stichwort bekommt man eine Zeile pro gefundenem Eintrag in einer Section (Das, was für Name definiert ist - kommt weiter unten).

Mit dem Kommando man -a stichwort bekommt man alle Einträge aus den Sectionen angezeigt (Wieder die Definition für Name).

Mit dem Kommando man -k stichwort bekommt man alle Einträge, in deren Name-Definition das Stichwort vorkommt. Das ist oft auch die Information, die das whatis-Kommando ausgibt.

Praktisch ist auch noch das Kommando man -w, welches einem den Pfad zur wirklichen, physikalischen Datei der Man-Page weist.

Es gibt noch eine Reihe weiterer Kommandos, die zur Aufbereitung und Darstellung des Textes der Man-Page dienen. Mit diesen sollte man testen, wenn man die Man-Pages nicht vernünftig auf dem Bildschirm darstellen kann (mit störenden Steuerzeichen zB.).

Da Unix lebt, ändert sich hier einiges. So geht der Trend in Richtung HTML-man Pages. Damit ist der Sinn der Sectionen natürlich auch in Frage gestellt. Unter AIX sind die Man-Pages mittlerweile so implementiert. Es gibt nur noch 3 Sectionen (Kommandos, Subroutinen und Files, also die Sectionen 1, 3 und 4). Und es gibt nur noch einen Eintrag pro Stichwort. Die Sectionen 1, 6, 7, und 8 zeigen auf die Kommandos, 2 und 3 auf die Subroutinen und 4 und 5 auf die Files. Ausserdem sind die Beschreibungen der Subroutinen in eine technische Referenz ausgelagert worden.

Das Format der man-Pages

Das Format, also die erwartete Information zu einem Stichwort, hängt vom Unix-Derivat ab. Unter Linux gibt es folgende Unterpunkte, die auch selbsterklärend sind (glaube ich jedenfalls): Name, Synopsis, Description, Options, Files, See also, Bugs, Author.

Unter AIX sieht das ein wenig anders aus. Hier sind die Felder nicht so exakt definiert, und je nach Natur des Kommandos gibt es mehr oder weniger Punkte: Name, Purpose, Syntax, Description, Flags, Exit Status, Security, Example, Files, Related Information.

Was Auffällt, das es keine Bugs gibt. Das spricht natürlich für ein kommerzielles Unix ;-).

Ein kurzes Beispiel

Das Kommando man -k, auf alten Systemen auch apropos. Das hilft, wenn man nicht so richtig weiß, wie ein Kommanod heißt:

orm@linux:~ > mank-k printf
vsnprintf (3)	     - formatted output conversion
vfwprintf (3)	     - formatted wide character output conversion
vsprintf (3)	     - formatted output conversion
sprintf (3)	     - formatted output conversion
wprintf (3)	     - formatted wide character output conversion
snprintf (3)	     - formatted output conversion
swprintf (3)	     - formatted wide character output conversion
vfprintf (3)	     - formatted output conversion
fprintf (3)	     - formatted output conversion
ber_printf (3)	     - LBER simplified Basic Encoding Rules library routines for encoding
printf (3)	     - formatted output conversion
fwprintf (3)	     - formatted wide character output conversion
vprintf (3)	     - formatted output conversion
printf (1)	     - format and print data
vswprintf (3)	     - formatted wide character output conversion
vwprintf (3)	     - formatted wide character output conversion
format (n)	     - Format a string in the style of sprintf


[ Main | Local ]

[ Allgemein | UNIX | AIX | TCP-IP | TCP | ROUTING | DNS | NTP | NFS | FreeBSD | Linux | SMTP | Tracing | GPS ]

Copyright 2001-2014 by Orm Hager - Es gilt die GPL
Feedback bitte an: Orm Hager (orm@doc-tcpip.org )