Was ist der Unterschied zwischen "Mann" und "Mann (#)"?

31

man 7 regexIch habe gerade jemanden gesehen, der auf Stackoverflow verweist. Ich habe versucht, man regexeine sehr ähnliche Ausgabe zu erhalten - es scheint leichte Unterschiede zu geben.

Also, was ist diese magische Nummer 7? Durch die Suche man 7 unixin Google erhalte ich mysteriösere Ergebnisse wie UNIX (7) ...

Aditya MP
quelle

Antworten:

33

Über UNIX(7)

Um Ihre Frage zu "UNIX (7)" zu beantworten, wird standardmäßig "Die Manpage für UNIX in Abschnitt 7 (Verschiedenes)" verwendet.

So öffnen Sie eine Seite wie init(8)würden Sie diesen Befehl verwenden: man 8 init.


man regex vs man 7 regex

Um Ihre Frage nach den "subtilen Unterschieden" zwischen man regexund zu beantworten man 7 regex:

manStandardmäßig wird die Seite mit der niedrigsten Abschnittsnummer geöffnet . In diesem Fall ist es Abschnitt 3 (Bibliotheksaufrufe). Das Öffnen der Seite aus Abschnitt 7 (Verschiedenes) ist ganz anders.

Seiten in verschiedenen Abschnitten behandeln verschiedene Dinge, obwohl sie in diesem Fall ähnlich sind, bedenken Sie apt:

man -f apt:

apt (8)              - Advanced Package Tool
apt (1)              - annotation processing tool

In diesem Beispiel ist aptAbschnitt 8 (Systemadministrationsbefehle) völlig unabhängig von der Seite aus Abschnitt 1 (Ausführbare Programme oder Shell-Befehle).

Zum späteren Nachschlagen verwenden Sie man -f PAGE_NAME, um alle Seiten mit diesem Namen in allen Abschnitten zu suchen. Sie können dann eine Seite aus dem Abschnitt öffnen, mit dem Sie möchten man SECTION PAGE_NAME.

Manpage-Abschnitte

Die verschiedenen Seitenbereiche lauten wie folgt und sind zu finden unter man man:

  1. Ausführbare Programme oder Shell-Befehle
  2. Systemaufrufe (vom Kernel bereitgestellte Funktionen)
  3. Bibliotheksaufrufe (Funktionen innerhalb von Programmbibliotheken)
  4. Spezielle Dateien (normalerweise zu finden in /dev)
  5. Dateiformate und Konventionen z /etc/passwd
  6. Spiele
  7. Verschiedenes (einschließlich Makropaketen und Konventionen), z man(7).groff(7)
  8. Systemadministrationsbefehle (normalerweise nur für root)
  9. Kernel-Routinen [Nicht-Standard]
kiri
quelle
14

Die Abschnittsnummern

manzeigt die Hilfeseite aus einem beliebigen Abschnitt an, man 7zeigt die Hilfeseite aus Abschnitt 7 an. Daher bezieht sich 7 hier auf den Abschnitt des bestimmten Befehls, für den Sie die Hilfeseite suchen.

Ein Abschnitt, falls vorhanden, weist den Menschen an, nur in diesem Abschnitt des Handbuchs nachzuschauen.


Die Abschnitte

In der folgenden Tabelle finden Sie die Abschnittsnummern des Handbuchs, gefolgt von den darin enthaltenen Seitentypen.

1: Ausführbare Programme oder Shell-Befehle

2: Systemaufrufe (vom Kernel bereitgestellte Funktionen)

3: Bibliotheksaufrufe (Funktionen innerhalb von Programmbibliotheken)

4: Spezielle Dateien (normalerweise in / dev)

5: Dateiformate und Konventionen, zB / etc / passwd

6: Spiele

7: Verschiedenes (einschließlich Makropakete und Konventionen), zB man (7), groff (7)

8: Systemadministrationsbefehle (normalerweise nur für root). Übersichten über verschiedene Themen, Konventionen und Protokolle, Zeichensatzstandards und verschiedene andere Dinge.

9: Kernel-Routinen [Nicht-Standard]


Befehle in mehr als einem Abschnitt

In den meisten Fällen möchten Sie den manBefehl ohne zusätzliches n verwenden . In einigen Fällen wird ein Befehl jedoch in mehreren Abschnitten angezeigt. Wenn Sie zum Beispiel den Befehl ausgeben man open, erhalten Sie die Manpage für openvt aus Abschnitt 1. Wenn Sie die Manpage zum Öffnen jedoch als C-Befehl (oder als Systemaufruf gemäß der obigen Tabelle) anzeigen möchten, müssen Sie den Befehl ausgeben man 2 open.

Ein sehr ähnliches Beispiel wird man printfund sein man 3 printf. Bitte geben Sie die Befehle ein und überzeugen Sie sich vom Unterschied in der Ausgabe.


Ihre Ausgabe von man 7 unix (UNIX (7))

UNIX (7) bedeutet also, dass es zu Abschnitt 7 gehört.


Welcher Abschnitt wird standardmäßig angezeigt, wenn ich keine Abschnittsnummer gebe?

Die Standardaktion besteht darin, in allen verfügbaren Abschnitten nach einer vordefinierten Reihenfolge zu suchen und nur die erste gefundene Seite anzuzeigen, auch wenn die Seite in mehreren Abschnitten vorhanden ist.


Woher weiß ich die Abschnittsnummer eines Befehls?

Wenn Sie herausfinden möchten, in welche Abschnitte ein Begriff / Befehl fällt man -k(entspricht dem Befehl apropos). So man -k printf sucht die Kurzbeschreibungen und manuelle Seitennamen für das Schlüsselwort printf als regulärer Ausdruck. Drucke alle Übereinstimmungen aus. (Entspricht apropos -r printf). Geben Sie den Befehl ein und sehen Sie, welche Tonne Sie erhalten. Wenn Teilstring-Übereinstimmungen vermieden werden müssen (z. B. wird sprintf angezeigt, wenn Sie ausgeführt werden man -k printf), müssen ^termSie dies wie folgt einschränken:

man -k '^printf'
Printf (3o)          - Formatted output functions.
printf (1)           - format and print data
printf (3)           - formatted output conversion

Zugehöriger Befehl

Ein verwandter Befehl ist aproposwie oben angegeben, der die Namen und Beschreibungen der manuellen Seiten durchsucht. Wenn Sie nicht sicher sind, nach welcher Handbuchseite Sie suchen, aber eine allgemeine Idee haben, verwenden Sie diesen Befehl.

Masroor
quelle
Aber die Dokumentation für regexhat nicht 7 Abschnitte ...
Aditya MP
@adityamenon Bitte lesen Sie die aktualisierte Antwort. Sie wurde veröffentlicht, bevor sie fertig ist.
Masroor
Ich verstehe - so bedeutet ein "Abschnitt" hier "Programmklassifizierung".
Aditya MP
@adityamenon Richtig, ich hätte mich mit dem Begriff, den Sie verwenden, wohler gefühlt.
Masroor
Konkret bedeutet "Abschnitt" hier "Abschnitt des Handbuchs", als wären alle Manpages in einem einzigen (dick gedruckten) Handbuch enthalten
Jonathan Callen,