Ich schaue mir die -f
Flagge auf dem Mann an, die wie folgt beschrieben wird:
-f, --whatis
Equivalent to whatis. Display a short description from the manual page, if available. See whatis(1) for details.
Wenn ich Einträge tatsächlich verwende, -f
steht am Ende immer eine Klammer, und manchmal erhält man mehrere Einträge.
Beispiele für man -f
Ergebnisse:
man -f grep
:
grep (1) - print lines matching a pattern
man -f man
:
man (7) - macros to format man pages
man (1) - an interface to the on-line reference manuals
man -f git
:
Git (3pm) - Perl interface to the Git version control system
git (1) - the stupid content tracker
Ich vermute, alle normalen Programmbeschreibungen werden mit angezeigt (1)
.
Kann jemand erklären, welche anderen Listen durchsucht werden und wie man erkennt, was die verschiedenen Zahlen in den Klammern bedeuten?
Hinweis: Mir ist auch aufgefallen, dass ich für Git die Handbuchseite (3pm) abrufen kann, indem ich man Git
anstelle von eingebe man git
. Es scheint kontraintuitiv, dass man git
das Handbuch eingeschlossen wird, git
aber nicht Git
, während as man -f git
Informationen zu beiden zurückgibt.
Antwort1
Das Ding in den Klammern (das auf manchen Systemen eine Kombination aus Buchstaben und Zahlen sein kann, aber meistens nur eine einzelne Ziffer ist) bezieht sich auf eineAbschnitt im Handbuch. „Das Handbuch“ ist die Gesamtheit aller verfügbaren Handbücher.
Auf meinem OpenBSD-System werden im man(1)
Handbuch (auch „Handbuch zum man
Befehl“ genannt, das Sie mit lesen können man man
) folgende Abschnitte zitiert:
1 General commands (tools and utilities).
2 System calls and error numbers.
3 Library functions.
3p perl(1) programmer's reference guide.
4 Device drivers.
5 File formats.
6 Games.
7 Miscellaneous information.
8 System maintenance and operation commands.
9 Kernel internals.
Die Abschnittsnummern sind auf allen Systemen größtenteils gleich, es kann jedoch geringfügige Abweichungen geben. Die Abschnitte sind nicht standardisiert, zumindest nicht von POSIX, daher denke ich, dass sie größtenteils traditionell sind.
Manchmal müssen Sie wissen, nach welchem Abschnitt Sie suchen. Dies ist printf
beispielsweise beim Handbuch der Fall. printf(1)
bezieht sich auf den printf
Nutzen der Shell, während printf(3)
die C-Bibliotheksroutine beschrieben wird printf()
. Wenn Sie eingeben man printf
, erhalten Sie wahrscheinlich printf(1)
. Um das Handbuch für die C-Bibliotheksfunktion zu erhalten, verwenden Sie man 3 printf
.
Die Abschnitte scheinen mit der dritten UNIX-Edition von Bell Labs im Jahr 1971 eingeführt worden zu sein (das erste UNIX, das in C und nicht in Assembler geschrieben wurde).
Das Handbuch der dritten UNIX-Edition enthieltdie folgenden Abschnitte:
I. Commands
II. System calls
III. Subroutines
IV. Special files
V. File formats
VI. User-maintained programs
VII. Miscellaneous
VIII. Maintenance
Antwort2
Auszug aus man man
(5. Absatz):
1 Executable programs or shell commands
2 System calls (functions provided by the kernel)
3 Library calls (functions within program libraries)
4 Special files (usually found in /dev)
5 File formats and conventions eg /etc/passwd
6 Games
7 Miscellaneous (including macro packages and conventions), e.g. man(7), groff(7)
8 System administration commands (usually only for root)
9 Kernel routines [Non standard]
Antwort3
Die Nummern geben an, aus welchem Abschnitt des Handbuchs die Informationen stammen (ursprünglich, welcher physische Band aus der Handbuchreihe, die Sie im Regal hatten).
Aus man man
:
The table below shows the section numbers of the manual followed by the types of
pages they contain.
1 Executable programs or shell commands
2 System calls (functions provided by the kernel)
3 Library calls (functions within program libraries)
4 Special files (usually found in /dev)
5 File formats and conventions eg /etc/passwd
6 Games
7 Miscellaneous (including macro packages and conventions), e.g. man(7),
groff(7)
8 System administration commands (usually only for root)
9 Kernel routines [Non standard]
Einige zusätzliche „Abschnitte“ wurden später hinzugefügt. Beispielsweise (3pm)
bezieht sich der in Ihrem oben zitierten Text auf ein Perl-Modul (oder eine Perl-Bibliothek).
Antwort4
Die Zahl nach dem Befehl gibt an, in welchem Abschnitt der Manpages sich die Dokumentation für diesen Befehl befindet. Beispielsweise bedeutet grep(1), dass die Manpage für grep in Abschnitt 1 der Manpages zu finden ist.
Bei verschiedenen UNIX-Varianten und Linux-Distributionen gelten unterschiedliche Konventionen bezüglich der Frage, welche Befehlsdokumentation in welchen Abschnitt gehört.