it-swarm.com.de

Was bedeuten die Zahlen auf einer Manpage?

Wenn ich zum Beispiel man ls Tippe, sehe ich LS(1). Aber wenn ich man apachectl Tippe, sehe ich APACHECTL(8) und wenn ich man cd Tippe, erhalte ich cd(n).

Ich frage mich, welche Bedeutung die Zahlen in Klammern haben, wenn sie welche haben.

514
Wilduck

Die Nummer entspricht dem Abschnitt des Handbuchs, aus dem diese Seite stammt. 1 ist Benutzerbefehle, während 8 Sysadmin-Zeug ist. Die Manpage für den Menschen selbst (man man) Erklärt es und listet die Standard-Manpage auf:

MANUAL SECTIONS
    The standard sections of the manual include:

    1      User Commands
    2      System Calls
    3      C Library Functions
    4      Devices and Special Files
    5      File Formats and Conventions
    6      Games et. al.
    7      Miscellanea
    8      System Administration tools and Daemons

    Distributions customize the manual section to their specifics,
    which often include additional sections.

Es gibt bestimmte Begriffe, die unterschiedliche Seiten in unterschiedlichen Abschnitten haben (z. B. printf als Befehl in Abschnitt 1, als stdlib -Funktion in Abschnitt 3); In solchen Fällen können Sie die Abschnittsnummer vor dem Seitennamen an man übergeben, um die gewünschte auszuwählen, oder mit man -a jede übereinstimmende Seite in einer Reihe anzeigen:

$ man 1 printf
$ man 3 printf
$ man -a printf

Mit man -k Können Sie feststellen, in welche Abschnitte ein Begriff fällt (entspricht dem Befehl apropos). Es werden auch Teilstring-Übereinstimmungen ausgeführt (z. B. wird sprintf angezeigt, wenn Sie man -k printf Ausführen). Sie müssen daher ^term Verwenden, um dies einzuschränken:

$ man -k '^printf'
printf               (1)  - format and print data
printf               (1p)  - write formatted output
printf               (3)  - formatted output conversion
printf               (3p)  - print formatted output
printf [builtins]    (1)  - bash built-in commands, see bash(1)
524
Michael Mrozek

Die Geschichte dieser Abschnittsnummern geht zurück auf das Original nix Programmer's Manual von Thompson und Ritchie aus dem Jahr 1971.

Die ursprünglichen Abschnitte waren

  1. Befehle
  2. Systemaufrufe
  3. Unterprogramme
  4. Spezielle Dateien
  5. Dateiformate
  6. Vom Benutzer gepflegte Programme
  7. Sonstiges
59
KeithB

konqueror beschreibt auch nicht standardmäßige Abschnitte: (danke an @ greg0ire für die Idee)

0     Header files
0p    Header files (POSIX)
1     Executable programs or Shell commands
1p    Executable programs or Shell commands (POSIX)
2     System calls (functions provided by the kernel)
3     Library calls (functions within program libraries)
3n    Network Functions
3p    Perl Modules
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
l     Local documentation
n     New manpages
34

Was es bedeutet, wurde bereits beschrieben, aber ich möchte auch hinzufügen, dass jeder Abschnitt eine spezielle Handbuchseite mit Einführung hat: intro. Siehe zum Beispiel man 1 intro oder man 3 intro und so weiter.

21
php-coder

Aus der Manpage 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 conven‐
       tions), e.g. man(7), groff(7)
   8   System administration commands (usually only for root)
   9   Kernel routines [Non standard]

Warum sie so getrennt sind - es gibt einige Überschneidungen. Bestimmte Manpages existieren in mehr als einem Abschnitt, je nachdem, was Sie meinen.

Vergleichen Sie zum Beispiel man crontab mit man 5 crontab - Letzteres ist wahrscheinlich das, nach dem Sie suchen wollten.

16
Shadur

Dies sind Abschnittsnummern. Tippe einfach man man oder öffne konqueror und tippe man: // man und du wirst sehen, was diese Abschnitte sind.

8
greg0ire

Oft wird auf eine Manpage verwiesen, indem sie mit dem in Klammern eingeschlossenen Abschnitt versehen wird, z.

read(2)

Dieser Stil hat zwei Hauptvorteile:

  • es ist sofort klar, dass Sie auf eine Manpage verweisen - d. h. Sie können so etwas wie 'vgl. lies (3) 'statt' vgl. die Abschnitt 3 Manpage von read '
  • wenn mehrere Abschnitte Manpages mit demselben Namen enthalten, ist die Angabe des Abschnitts genauer

Manpages sind in Abschnitte unterteilt, z. Abschnitt 1 enthält alle Manpages für Benutzerbefehle, Abschnitt 2 alle Manpages für die Systemaufrufe, Abschnitt 3 enthält Bibliotheksfunktionen usw.

Wenn Sie in der Befehlszeile den Abschnitt nicht explizit angeben, wird die erste übereinstimmende Manpage in der Standardabschnittsüberquerungsreihenfolge angezeigt, z.

$ man read

zeigt BASH_BUILTINS(1) auf Fedora an. Wo

$ man 2 read

zeigt die Manpage für den Systemaufruf read() an.

Es ist zu beachten, dass die Positionsspezifikation des Abschnitts nicht tragbar ist - z. Unter Solaris würden Sie dies folgendermaßen angeben:

$ man -s 2 read

Normalerweise listet man man Auch einige der verfügbaren Abschnitte auf. Aber nicht unbedingt alle. Um alle verfügbaren Abschnitte aufzulisten, können die Unterverzeichnisse aller Verzeichnisse aufgelistet werden, die im Standard-Man-Pfad oder in der Umgebungsvariablen $MANPATH Aufgeführt sind. Auf einem Fedora 23-System mit einigen installierten Entwicklungspaketen verfügt /usr/share/man Beispielsweise über folgende Unterverzeichnisse:

cs  es  id  man0p  man2   man3x  man5x  man7x  man9x  pt_BR  sk  zh_CN
da  fr  it  man1   man2x  man4   man6   man8   mann   pt_PT  sv  zh_TW
de  hr  ja  man1p  man3   man4x  man6x  man8x  pl     ro     tr
en  hu  ko  man1x  man3p  man5   man7   man9   pt     ru     zh

Die Verzeichnisse mit dem Präfix man repräsentieren jeden Abschnitt - während die anderen übersetzte Abschnitte enthalten. Um eine Liste nicht leerer Abschnitte zu erhalten, könnte man einen Befehl wie folgt ausgeben:

$ find /usr/share/man -type f  | sed '[email protected]^.*/man\(..*\)/.*[email protected]\[email protected]' \
    | sort -u | column
0p  1p  3   4   6   8
1   2   3p  5   7

(Die Abschnitte, die mit p enden, sind POSIX-Manpages.)

Um eine Manpage in einer anderen Sprache anzuzeigen (falls verfügbar), kann eine sprachbezogene Umgebungsvariable festgelegt werden, z.

$ LC_MESSAGES=de_DE man read

Außerdem sollte jeder Abschnitt eine Einführungsmanpage mit dem Namen intro enthalten, z. sichtbar über:

$ man 2 intro
7
maxschlepzig

Die Definitionen für SVr4 sind:

1 User Commands
2 System Calls
3 library Functions
4 File Formats
5 Standards, Environment and Macros (e.g. man(5))
6 Games and Demos
7 Device and Network Interfaces, Special Files
8 Maintenance Procedures
9 Kernel and Driver entry points and structures

Dies ist die tatsächliche Nummerierung für ein "genetisches" UNIX. POSIX definiert keine Zahlen.

4
schily