man-Befehl: Verwendung und Optionen, Abschnittsnummern und Suche mit man -k
Wer auf einem Linux-Server nachsehen will, wie ein Befehl oder eine Konfigurationsdatei verwendet wird, öffnet mit dem man-Befehl die Handbuchseite und sucht mit man -k in den Kurzbeschreibungen, wenn der Name nicht bekannt ist. Bei der Suche nach der passwd-Seite auf Servern mit AlmaLinux 9 und Debian 12 gab es unter Debian 12 sowohl die Befehlsseite in Abschnitt 1 als auch die Dateiformatseite in Abschnitt 5, unter AlmaLinux 9 dagegen keine Seite in Abschnitt 5.
Die Ausgabe unten stammt von einem AlmaLinux-9.8-Server mit dem root-Konto und von einem Debian-12-Server mit einem normalen Konto. Hostname und Verbindungsadresse im Simulator sind Beispielwerte.
1️⃣ Grundlegende Verwendung des man-Befehls
Steht hinter man ein Befehlsname, öffnet sich die Handbuchseite dieses Befehls. man übergibt die Seite an ein Pager-Programm, das sie bildschirmweise ausgibt, und kehrt deshalb nach dem Start nicht sofort zum Prompt zurück. Der Pager wird über die Umgebungsvariable MANPAGER oder PAGER festgelegt; sind beide leer, wird less verwendet.
Wird die Ausgabe über eine Pipe weitergegeben, erscheint nur der Text ohne Pager. Die ersten 12 Zeilen von [man ls], mit head abgegriffen, zeigten in der ersten Zeile LS(1), danach folgten der Reihe nach die Abschnitte NAME, SYNOPSIS und DESCRIPTION.
man ls | head -n 12LS(1) User Commands LS(1)
NAME
ls - list directory contents
SYNOPSIS
ls [OPTION]... [FILE]...
DESCRIPTION
List information about the FILEs (the current directory by default).
Sort entries alphabetically if none of -cftuvSUX nor --sort is speci-
fied.Die Zahl 1 in der Klammer von LS(1) in der ersten Zeile ist die Nummer des Abschnitts, in dem diese Seite liegt.
Innerhalb einer Seite zeigt [Space] den nächsten Bildschirm, und [/Wort] mit Enter sucht nach einem Wort. [n] springt zur nächsten Stelle mit demselben Wort, und [q] beendet man.
Bei einem Namen, den es nicht gibt, erscheint der Fehler [No manual entry for], und der Exit-Code war 16.
man no-such-cmd9No manual entry for no-such-cmd9echo $?16Der Abschnitt EXIT STATUS der man-Seite beschreibt 16 als den Wert für den Fall, dass mindestens eine der Seiten, Dateien oder ein Suchwort nicht gefunden wurde. Ein Verwendungsfehler ergibt 1, sodass ein Skript die beiden Fälle getrennt behandeln kann.
2️⃣ Abschnittsnummern von man
Gibt es Seiten mit demselben Namen in mehreren Abschnitten, durchsucht der man-Befehl die Abschnitte in einer festen Reihenfolge und öffnet nur die erste gefundene Seite. Die Abschnitte reichen von 1 bis 9; bei der Arbeit am Server werden am häufigsten Abschnitt 1 für Befehle, Abschnitt 5 für Dateiformate und Abschnitt 8 für Verwaltungsbefehle geöffnet.
| Abschnitt | Enthaltene Seiten | Beispiel vom AlmaLinux-9.8-Server |
|---|---|---|
| 1 | Ausführbare Programme und Shell-Befehle | ls, passwd, crontab, man |
| 2 | Systemaufrufe (vom Kernel bereitgestellte Funktionen) | |
| 3 | Bibliotheksfunktionen | |
| 4 | Spezialdateien (meist unter /dev) | |
| 5 | Dateiformate und Konventionen, z. B. /etc/passwd | crontab |
| 6 | Spiele | |
| 7 | Verschiedenes (Makropakete und Konventionen) | |
| 8 | Befehle zur Systemverwaltung, meist für root | useradd, mandb |
| 9 | Kernel-Routinen (nicht standardisiert) |
crontab hat Seiten in zwei Abschnitten, weil der Befehl und das Format der Konfigurationsdatei denselben Namen tragen. Die Prüfung mit [man -f crontab] gab die Zeilen für Abschnitt 1 und Abschnitt 5 zusammen aus.
man -f crontabcrontab (1) - maintains crontab files for individual users
crontab (5) - files used to schedule the execution of programs[man crontab] ohne Abschnittsnummer öffnet die Seite des Befehls crontab in Abschnitt 1. Um das Format der Datei für geplante Aufgaben zu sehen, wird vor den Namen eine 5 gesetzt.
man 5 crontab | head -n 4CRONTAB(5) File Formats CRONTAB(5)
NAME
crontab - files used to schedule the execution of programsDie erste Zeile wechselte zu CRONTAB(5) und File Formats, und auch in der NAME-Zeile stand statt der Befehlsbeschreibung die Beschreibung der Datei für geplante Aufgaben.
Gibt es im angegebenen Abschnitt keine Seite mit diesem Namen, erscheint ein Fehler. Auf dem AlmaLinux-9.8-Server meldete [man 5 passwd], aufgerufen für das Dateiformat von /etc/passwd, dass es in Abschnitt 5 keine Seite gibt.
man 5 passwdNo manual entry for passwd in section 5Auf dem Debian-12-Server gab [man -f passwd] zusätzlich die passwd-Zeile aus Abschnitt 5 aus. In welchen Abschnitten eine Seite vorhanden ist, hängt von den auf dem Server installierten Handbüchern ab; deshalb empfiehlt sich vor der Angabe einer Abschnittsnummer eine Prüfung mit [man -f].
man -f passwdpasswd (1) - change user password
passwd (1ssl) - OpenSSL application commands
passwd (5) - the password fileAbschnitt 8 enthält Verwaltungsbefehle, die vor allem das root-Konto ausführt, etwa useradd zum Anlegen von Konten.
man -f useradduseradd (8) - create a new user or update default new user information3️⃣ Optionen des man-Befehls und Suche mit -k und -f
[man -f] gibt die einzeilige Beschreibung der Seiten mit demselben Namen aus und arbeitet wie whatis. Auf dem AlmaLinux-9.8-Server lieferten [man -f passwd] und [whatis passwd] dieselben zwei Zeilen.
man -f passwdpasswd (1) - update user's authentication tokens
passwd (1ossl) - OpenSSL application commandsDie Zeile 1ossl ist die Seite eines OpenSSL-Befehls, der ebenfalls passwd heißt.
Ist der Name nicht bekannt, durchsucht [man -k] Seitennamen und Kurzbeschreibungen. Das entspricht apropos, und das Suchwort wird als regulärer Ausdruck gelesen.
man -k '^passwd'passwd (1) - update user's authentication tokens
passwd (1ossl) - OpenSSL application commands^ steht für den Zeilenanfang, daher erschienen nur die Zeilen, die mit passwd beginnen. Die Suche funktioniert auch mit einem Wort aus der Beschreibung: [man -k 'directory contents'] fand neben ls auch die Seiten dir und vdir.
man -k 'directory contents'dir (1) - list directory contents
ls (1) - list directory contents
vdir (1) - list directory contents[man -k] durchsucht nur die Kurzbeschreibungen im Abschnitt NAME und findet eine Seite deshalb weder über einen Optionsnamen noch über ein Wort aus dem Text. [man -K] sucht auch im Text, liest dafür aber alle Seiten nacheinander und braucht lange.
Wird das Suchwort nicht gefunden, erscheint [nothing appropriate], und der Exit-Code war 16.
man -k no-such-word9no-such-word9: nothing appropriate.echo $?16[man -w] gibt nur den Pfad der Quelldatei aus, ohne die Seite zu öffnen.
man -w ls/usr/share/man/man1/ls.1.gzman -w 5 crontab/usr/share/man/man5/crontab.5.gzDie beiden Dateien lagen in den Ordnern man1 und man5 unter /usr/share/man, und die Zahl im Ordnernamen stimmte mit der Abschnittsnummer überein. Auch die mit [man -w 1ossl passwd] gefundene Datei der 1ossl-Seite lag im Ordner man1, also im selben wie Abschnitt 1.
Die Optionen sind in den zwei Tabs unten zusammengefasst.
| Option | Kopieren | Beschreibung |
|---|---|---|
| -f, --whatis | Gibt die einzeilige Beschreibung der Seiten mit demselben Namen aus. Entspricht whatis | |
| -k, --apropos | Durchsucht Seitennamen und Kurzbeschreibungen. Entspricht apropos | |
| -w, --where, --path, --location | Gibt nur den Pfad der Quelldatei aus, ohne die Seite zu öffnen | |
| -a, --all | Gibt alle Seiten mit passendem Namen nacheinander aus |
| Option | Kopieren | Beschreibung |
|---|---|---|
| -K, --global-apropos | Sucht ein Wort im Text aller Seiten. Dauert lange | |
| -S, -s, --sectionsListe | Legt die zu durchsuchenden Abschnitte und ihre Reihenfolge als Liste fest, getrennt durch Kommas oder Doppelpunkte | |
| -P, --pagerPager | Legt den Pager fest, der die Seite ausgibt. Standard ist less | |
| -M, --manpath | Legt den Handbuchpfad fest, in dem nach Seiten gesucht wird | |
| -L, --localelocale | Legt die Locale für diesen Aufruf fest | |
| -l, --local-file | Gibt die angegebene Datei als Seite aus, ohne die Systemhandbücher zu durchsuchen | |
| -u, --update | Aktualisiert die Index-Caches der installierten Seiten | |
| -V, --version | Gibt Versionsinformationen aus |
🔲 Simulator für den man-Befehl
Im Simulator unten lässt sich mit [man ls] eine Seite öffnen und mit den Chips [Space], [/list], [n] und [q] durchblättern. Auf demselben virtuellen Server lässt sich wie bei [man 5 crontab] eine Abschnittsnummer angeben oder [man -f], [man -k] und [man -w] eingeben.
4️⃣ Aufbau einer man-Seite
Eine man-Seite ist in Abschnitte mit Überschriften in Großbuchstaben gegliedert. Ein Vergleich der mit grep herausgefilterten Überschriften zeigte, dass die ls-Seite die Optionsbeschreibungen innerhalb von DESCRIPTION enthält, während die crontab-Seite einen eigenen Abschnitt OPTIONS hat.
man ls | grep -E '^[A-Z]+( [A-Z]+)*$'NAME
SYNOPSIS
DESCRIPTION
AUTHOR
REPORTING BUGS
COPYRIGHT
SEE ALSOman crontab | grep -E '^[A-Z]+( [A-Z]+)*$'NAME
SYNOPSIS
DESCRIPTION
OPTIONS
CAVEATS
SEE ALSO
FILES
STANDARDS
DIAGNOSTICS
AUTHORDie Namen der Abschnitte unterscheiden sich von Seite zu Seite etwas; häufig kommen die folgenden vor.
| Abschnitt | Inhalt |
|---|---|
| NAME | Name und einzeilige Beschreibung (die Zeile, die man -f und man -k ausgeben) |
| SYNOPSIS | Schreibweise des Befehls |
| DESCRIPTION | Beschreibung des Verhaltens (die ls-Seite führt hier auch die Optionen auf) |
| OPTIONS | Ein Absatz pro Option |
| EXIT STATUS | Bedeutung der Exit-Codes |
| FILES | Dateien, die der Befehl liest oder schreibt |
| SEE ALSO | Verwandte Seiten |
Die Zeichen in SYNOPSIS folgen Regeln, die die man-Seite festlegt. Was in eckigen Klammern steht, kann weggelassen werden. Optionen, die durch einen senkrechten Strich (|) getrennt sind, lassen sich nicht zusammen verwenden, und ein Argument mit drei Punkten (...) kann mehrfach angegeben werden.
Die SYNOPSIS von ls lautet ls [OPTION]... [FILE]..., daher lassen sich sowohl Befehlsoptionen als auch Befehlszeilenargumente wie Dateinamen ganz weglassen oder mehrfach angeben.
[--help] ist eine Kurzübersicht zur Verwendung, die das Programm selbst ausgibt, und erscheint deshalb ohne Pager direkt im Terminal. Die Usage-Zeile am Anfang von [ls --help] hatte dieselbe Form wie SYNOPSIS, und die gesamte Ausgabe war mit 121 Zeilen kürzer als die 245 Zeilen von [man ls].
ls --help | head -n 3Usage: ls [OPTION]... [FILE]...
List information about the FILEs (the current directory by default).
Sort entries alphabetically if none of -cftuvSUX nor --sort is specified.Eine man-Seite enthält weitere Abschnitte, die in [--help] fehlen, etwa AUTHOR und SEE ALSO. Für einen schnellen Blick auf eine einzelne Option eignet sich [--help]; wird eine in Abschnitte gegliederte Beschreibung gebraucht, etwa zum Format einer Konfigurationsdatei oder zu Exit-Codes, wird die man-Seite geöffnet.
🔢 FAQ & empfohlene Inhalte
Zeitplanung
Linux: crontab einrichten
So werden Serveraufgaben mit dem Befehl crontab so geplant, dass sie zu festen Zeiten laufen.
Speicherort finden
Linux which, whereis, locate: Dateien suchen und den Pfad von Befehlen finden
Befehle, die zeigen, unter welchem Pfad die ausführbare Datei und die Handbuchdatei eines Befehls liegen.
Ausgabe weitergeben
Linux-Umleitung (Redirection)
Der Fluss von Standardeingabe und Standardausgabe, über den die Ausgabe eines Befehls in eine Datei oder an einen anderen Befehl geht.
ℹ️ Affiliate-Hinweis
Die Inhalte dieser Website enthalten Affiliate-Links. Kauft ein Besucher über einen dieser Links ein Produkt oder eine Dienstleistung, erhält die Website vom Verkäufer eine Provision. Der Betrag, den der Käufer zahlt(bei Aktionsrabatten sinkt er ↓), steigt dadurch nicht. Angegebene Preise, Rabatte und Lagerbestände entsprechen dem Stand bei Erstellung und können abweichen; prüfe sie daher vor dem Kauf beim Verkäufer. Produkte werden nach eigenen Kriterien ausgewählt und bewertet, und Provisionen beeinflussen weder die Reihenfolge noch den Inhalt der Bewertungen.