Na fork
przykład strona podręcznika znajduje się w sekcji Wywołania systemowe, która ma numer 2:
man 2 fork
Jak widzisz, co jeszcze zawiera sekcja 2 bez uciekania się do Google?
Na fork
przykład strona podręcznika znajduje się w sekcji Wywołania systemowe, która ma numer 2:
man 2 fork
Jak widzisz, co jeszcze zawiera sekcja 2 bez uciekania się do Google?
Odpowiedzi:
To polecenie wyświetla posortowane nazwy wszystkich pozycji w danej sekcji:
man -aWS 1 \* | xargs basename | sed 's/\.[^.]*$//' | sort -u
Jeśli chcesz zobaczyć nazwy ścieżek, użyj:
man -aWS 1 \* | sed 's/\.[^.]*$//' | sort
Mówi to, man
aby przeszukać sekcję dla wszystkich poleceń za pomocą wzoru wieloznacznego *
(cudzysłów odwrócony, aby powłoka go nie interpretowała). -a
znajduje wszystkie dopasowania, -W
drukuje nazwy ścieżek zamiast wyświetlać strony i -S 1
określa sekcję pierwszą. Zmień 1
sekcję na dowolną, którą chcesz wyszukać.
sed
Polecenie taśmy rozszerzenia nazwy pliku; usuń go, jeśli chcesz zobaczyć pełne nazwy plików. sort
sortuje wyniki ( -u
usuwa duplikaty).
Dla wygodnego ponownego użycia definiuje to funkcję powłoki Bash:
function mansect { man -aWS ${1?man section not provided} \* | xargs basename | sed 's/\.[^.]*$//' | sort -u; }
Na przykład możesz go wywołać, mansect 3
aby zobaczyć wpisy w sekcji trzeciej.
[Testowany na macOS.]
uniq
w potoku nie naprawia.
sort -u
aby usunąć duplikaty.
Aby wyświetlić listę wszystkich zainstalowanych stron podręcznika z określonej sekcji, możesz użyć apropos :
apropos -s 2 . # use an regex for apropos . means anything
apropos -s 2 -w '*' # use unix globbing for apropos
man -a -s 2 '*'
Strony podręczne są zwykle umieszczane /usr/share/man
, ale sprawdzane $MANPATH
i podzielone na następujące sekcje:
Section 1:
/usr/share/man/man1/
Section 2:
/usr/share/man/man2/
...
Aby wyświetlić listę wszystkich zainstalowanych stron sekcji 2, wykonaj:
ls /usr/share/man/man2/
Lub bardziej kompletny:
find $(echo $MANPATH | tr ':' ' ') -path '*/man2/*'
Ten ostatni będzie miał problemy, jeśli masz katalogi $MANPATH
ze spacją w ich nazwach.
W większości dystrybucji możesz również sprawdzić dostępne strony podręcznika man za pomocą narzędzia do tworzenia pakietów, np. W dystrybucjach pochodnych Debiana możesz użyć apt-file
:
apt-file search /man2/
lman 2
I wyświetla nieprzyzwoitą nazwę dla każdej strony w nowym wierszu i stron. Ciało funkcji to:find $(man --path | tr ':' ' ') -path "*/man$1/*"| xargs basename | sort | sed -E "s/\.$1(.gz)?\$//" | less
Wiem, że to bardzo stare pytanie, jednak wszystkie podane tutaj odpowiedzi nie działały dla mnie. Dlatego wymyśliłem następujący liniowiec, który działa na Ubuntu 18.04 i macOS Mojave, 10.14.6:
find $(man --path | tr ':' ' ') -type f -path '*man2*' \
-exec basename {} \; | sed 's/\..*//' | sort
Szybki bieg:
$(man --path | tr ':' ' ')
aby uzyskać bieżące ścieżki stron podręcznika manfind <man paths> -type f -path '*man2*' -exec basename {} \;
pobiera nazwy wszystkich zwykłych plików ze ścieżek mansed
pozbywa się rozszerzenia plikusort
alfabetycznie.