Una pagina man per fork, ad esempio, è nella sezione Chiamate di sistema che ha il numero 2:
man 2 fork
Come vedi cos'altro è la sezione 2 senza ricorrere a Google?
Una pagina man per fork, ad esempio, è nella sezione Chiamate di sistema che ha il numero 2:
man 2 fork
Come vedi cos'altro è la sezione 2 senza ricorrere a Google?
Risposte:
Questo comando elenca i nomi ordinati di tutte le voci nella sezione indicata:
man -aWS 1 \* | xargs basename | sed 's/\.[^.]*$//' | sort -u
Se vuoi vedere i nomi dei percorsi, usa:
man -aWS 1 \* | sed 's/\.[^.]*$//' | sort
Questo dice mandi cercare una sezione per tutti i comandi usando il modello jolly *(citato da una barra rovesciata in modo che la shell non lo interpreti). -atrova tutte le corrispondenze, -Wstampa i nomi dei percorsi anziché visualizzare le pagine e -S 1specifica la sezione uno. Passa 1alla sezione che desideri cercare.
Il sedcomando elimina le estensioni del nome file; rimuovilo se vuoi vedere i nomi di file completi. sortordina i risultati ( -urimuove i duplicati).
Per un comodo riutilizzo, questo definisce una funzione shell Bash:
function mansect { man -aWS ${1?man section not provided} \* | xargs basename | sed 's/\.[^.]*$//' | sort -u; }
Ad esempio, puoi invocarlo mansect 3per vedere le voci nella sezione tre.
[Testato su macOS.]
uniqin pipeline non risolve.
sort -uper rimuovere i duplicati.
Per elencare tutte le pagine man installate da una sezione specifica è possibile usare apropos :
apropos -s 2 . # use an regex for apropos . means anything
apropos -s 2 -w '*' # use unix globbing for apropos
man -a -s 2 '*'
Le pagine man sono generalmente posizionate /usr/share/man, ma spuntano $MANPATHe sono organizzate in sezioni in questo modo:
Section 1:
/usr/share/man/man1/
Section 2:
/usr/share/man/man2/
...
Quindi per elencare tutte le manpage della sezione 2 installate, fare:
ls /usr/share/man/man2/
O il più completo:
find $(echo $MANPATH | tr ':' ' ') -path '*/man2/*'
Quest'ultimo avrà problemi se si dispone di directory $MANPATHcon spazio nei loro nomi.
Sulla maggior parte delle distribuzioni puoi anche controllare le pagine man disponibili con uno strumento per pacchetti, ad esempio sulle distribuzioni derivate da Debian che puoi usare in questo apt-filemodo:
apt-file search /man2/
lman 2Ed elenca il nome senza ornamenti per ogni pagina su una nuova riga e le pagine. Il corpo della funzione è:find $(man --path | tr ':' ' ') -path "*/man$1/*"| xargs basename | sort | sed -E "s/\.$1(.gz)?\$//" | less
So che questa è una domanda molto antica, tuttavia le risposte fornite qui non hanno funzionato per me. Pertanto ho ideato il seguente one-liner che funziona su Ubuntu 18.04 e macOS Mojave, 10.14.6:
find $(man --path | tr ':' ' ') -type f -path '*man2*' \
-exec basename {} \; | sed 's/\..*//' | sort
Esecuzione rapida:
$(man --path | tr ':' ' ')per ottenere i percorsi attuali delle pagine manfind <man paths> -type f -path '*man2*' -exec basename {} \; ottiene i nomi dei file di tutti i file regolari nei percorsi mansed elimina l'estensione del filesort in ordine alfabetico.