Ich möchte alle Manpages für Befehle finden, die mit beginnen wh
. Aber ich verstehe nicht, warum das folgende Schlüsselwort nicht funktioniert.
man -f "wh"
Auch wenn ich
man chmod
in der Manpage von chmod
steht das Wort "symbolisch", also habe ich
man -f "symbolic"
aber chmod
der Befehl wird nicht in den Ergebnissen angezeigt.
Kurz gesagt, wie finde/durchsuche ich Befehle oder Befehlsbeschreibungen anhand des Wortinhalts? Ich weiß, wie ich bestimmte Wörter finde, nachdem ich die Manpage mithilfe von /
Zeichen erhalten habe, aber ich möchte alle Manpages mit dem Suchwort finden.
Antwort1
Mit dem Schalter können Sie -k
alle Manpages finden, die wh
entweder im Namen oder in der Kurzbeschreibung enthalten sind. Suchen Sie dann einfach nach denen, die mit beginnen wh
. Der Befehl apropos
entspricht man -k
.
Beispiel
$ man -k wh | grep "^wh"
what (1p) - identify SCCS files (DEVELOPMENT)
whatis (1) - display manual page descriptions
whereis (1) - locate the binary, source, and manual page files for a command
which (1) - shows the full path of (shell) commands.
while (n) - Execute script repeatedly as long as a condition is met
whiptail (1) - display dialog boxes from shell scripts
whirlwindwarp (6x) - crazy moving stars
whline (3x) - create curses borders, horizontal and vertical lines
whline_set (3x) - create curses borders or lines using complex characters and renditions
who (1) - show who is logged on
who (1p) - display who is on the system
whoami (1) - print effective userid
whois (1) - client for the whois service
Durchsuchen der Manpages
Wenn Sie unbedingt eine Volltextsuche in den Manpages durchführen möchten, können Sie den -K
Schalter verwenden. Das ist ein großes K.
Beispiel
$ man -w -K symbolic | head -10
/usr/local/share/man/man1/mimeopen.1
/usr/local/share/man/man1/mimetype.1
/usr/local/share/man/man1/ptksh.1
/usr/share/man/man1/as.1.gz
/usr/share/man/man1/atop.1.gz
/usr/share/man/man1/atopsar.1.gz
/usr/share/man/man1/attr.1.gz
/usr/share/man/man1/autoreconf.1.gz
/usr/share/man/man1/bakefilize.1.gz
/usr/share/man/man1/bash.1.gz
Diese Methode gibt Ihnen allerdings weder den Namen der Manpage noch die Kurzbeschreibung. Sie zeigt Ihnen nur den tatsächlichen Namen der Datei, in der die Manpage gespeichert ist. Normalerweise ist das der Name des Befehls.
Antwort2
man -f wh
(synonym mit whatis
) zeigt die kurze (einzeilige) Beschreibung des Befehls an wh
. Das Flag -f
weist darauf hin man
, nur die erste Zeile und nicht die ganze Seite anzuzeigen. Das ist nicht das, wonach Sie suchen.
Der Befehl apropos wh
(synonym mit man -k wh
) listet die Manpages auf, deren Kurzbeschreibung die Zeichenfolge enthält wh
. Wenn Sie eine Suche in der Kurzbeschreibung mit einem Muster für den Befehlsnamen kombinieren möchten, können Sie die Ergebnisse apropos
mit filtern grep
. Um die Suche auf Benutzerbefehle (also Abschnitt 1) zu beschränken und keine Administratorbefehle, C-Bibliotheksfunktionen usw. anzuzeigen, geben Sie ein -S 1
. Wenn Sie sowohl Benutzer- als auch Administratorbefehle möchten, geben Sie ein -S 1:8
.
apropos symbolic | grep '^wh'
Um mit mandb (der gebräuchlichsten man
Implementierung unter Linux) in ganzen Manpages zu suchen, verwenden Sie -K
(Großbuchstaben K
statt Kleinbuchstaben k
) apropos
. Dies kann sehr lange dauern, wenn Sie viele Manpages installiert haben. Überlegen Sie, ob Sie die --regex
Option angeben, um die Suche auf Manpages zu beschränken, deren einzeilige Beschreibung mit einem regulären Ausdruck übereinstimmt.
man -K -S 1:8 --regex 'change.*file' symbolic
Antwort3
man -k '^symbolic$'
Dadurch werden der App-Name und die Seitenzahl aufgelistet, auf der das Wort „symbolisch“ steht. Entfernen Sie das $, wenn Sie etwas möchten, das mit „symbolisch“ beginnt.