Liste aller verfügbaren Manpages


Antworten:


43

Verwenden:

apropos .

oder:

man -k .

Wo .ist ein regulärer Ausdruck, der "ein beliebiges Zeichen" bedeutet?


3
Ebenfalls praktisch: apropos -s 1 .Zum Beispiel, um es auf Abschnitt 1 (Benutzerbefehle) zu beschränken.
Bis auf weiteres angehalten.

Ich würde vorschlagen, zu prüfen, wie bash und zsh die Vervollständigung bereitstellen, aber dies ist viel einfacher (allerdings weniger portabel, da nicht alle Systeme einen regulären Ausdruck als Argument dafür akzeptieren apropos).
Gilles 'SO- hör auf böse zu sein'

Keiner von denen arbeitet in Cygwin für mich
Wyatt8740

9
$ man -k . -s <section-NR>

Um zum Beispiel alle Seiten von Abschnitt 2 anzuzeigen:

$ man -k . -s 2

Ich hatte gehofft, man 2 -k '.'dass es auch funktionieren würde. Aber es ist nicht so
Ankur Agarwal

Versuchen Sie es erneut und geben Sie den Abschnitt nach der Option -k wie oben angegeben an ...
Aaron

Diese Antwort ist auf jeden Fall nützlicher
Lucius Hu

Die Angabe der Abschnittsnummer funktioniert bei mir nicht.
OregonTrail

3

Hier ist mein Favorit:

whatis -r .

... und wenn Sie nur alle Manpages in einem bestimmten Abschnitt sehen möchten, verwenden Sie das -sFlag.

Wenn Sie beispielsweise nur eine Liste aller Manpages für alle ausführbaren Befehle erhalten möchten (Abschnitt 1):

whatis -s 1 -r .

2
# Shell script to list pathname of all available man pages  
mandirs="\`man -w | sed 's/:/ /g'\`"  
find $mandirs -type f  

Dies erzeugt eine Liste aller man-Dateien, wobei die Liste der man-Verzeichnisse verwendet wird, die von "man -w" erzeugt wird. Allerdings ist die Regex-Lösung für beliebige Zeichen von cYrus viel besser, um eine saubere Liste nur der Seite zu erhalten Namen:

apropos . | awk '{print $1}'

oder

man -k . | awk '{print $1}'

1
Auf diese Weise verlieren Sie den Man-Bereich und erstellen Duplikate. Für letztere durchleiten sort -u.
CYRUS

@ cYrus oder ändern Sie es einfach man -k . | awk '{print $1,$2}', um den Abschnitt zu behalten
villapx

0

Suchen Sie in den Pfaden, die in aufgeführt sind /etc/man.config, und geben Sie die zusätzlichen Verzeichnisse an, die von der Direktive FHSoder hinzugefügt wurden FSSTND.


Und dann? Ich denke, es ist besser, Pfade aus MANPATH-Variablen zu lesen. Aber es ist schrecklich, weil es eine große Anzahl von Unterverzeichnissen gibt und verschiedene Dateierweiterungen wie 1 oder gz enthält. Übrigens haben viele Systeme keine man.config in / etc
psihodelia

1
@psihodelia: Auf meinem System ist /etc/manpath.configund $MANPATHist null.
Bis auf weiteres angehalten.

0

Unter macOS können Sie verwenden

man -k .

oder

apropos .

oder

whatis .

Unter macOS unterstützen die Befehle man -k, aproposund whatisdas Filtern nach Abschnitten jedoch nicht.

Dazu können Sie die folgende Pipeline verwenden

man -k . | grep \(1\) | less

Sie können durch 1den manuellen Abschnitt Ihrer Wahl ersetzen .

Durch die Nutzung unserer Website bestätigen Sie, dass Sie unsere Cookie-Richtlinie und Datenschutzrichtlinie gelesen und verstanden haben.
Licensed under cc by-sa 3.0 with attribution required.