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, manaby przeszukać sekcję dla wszystkich poleceń za pomocą wzoru wieloznacznego *(cudzysłów odwrócony, aby powłoka go nie interpretowała). -aznajduje wszystkie dopasowania, -Wdrukuje nazwy ścieżek zamiast wyświetlać strony i -S 1określa sekcję pierwszą. Zmień 1sekcję na dowolną, którą chcesz wyszukać.
sedPolecenie taśmy rozszerzenia nazwy pliku; usuń go, jeśli chcesz zobaczyć pełne nazwy plików. sortsortuje wyniki ( -uusuwa 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 3aby zobaczyć wpisy w sekcji trzeciej.
Fajnie dzięki. Dostaję trochę duplikatów (np. Ścieżki w /Applications/Xcode.app i „Accelerate” w sekcji 7), ale nic nie umieszcza uniqw potoku nie naprawia.
Dzięki. Opcja -s nie jest obecna w aproposach Mac OS X, prawdopodobnie z BSD.
xyz
@ f100 Ah ok, może spróbujman -a -s 2 '*'
Ulrich Dangel
To wydaje się bardziej podobne, ale zamiast ich wymienić, w rzeczywistości wywołuje każdego z nich po kolei. Zhackowałem funkcję do zrobienia listy, którą zamieściłem w innym komentarzu. Prawdopodobnie ma problemy, ale dla mnie to wystarczy :)
xyz
20
Strony podręczne są zwykle umieszczane /usr/share/man, ale sprawdzane $MANPATHi podzielone na następujące sekcje:
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 $MANPATHze 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:
Dzięki - To był początek, którego potrzebowałem. Zrobiłem funkcję powłoki, która jest uruchamiana np. lman 2I 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
xyz
1
W systemie Mac OS X jedyne, co mogę zabrać do pracy, to man -k . | grep -F '(3)'lista wszystkich elementów w sekcji 3.
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:
z formularza Thors odpowiedz: $(man --path | tr ':' ' ')aby uzyskać bieżące ścieżki stron podręcznika man
find <man paths> -type f -path '*man2*' -exec basename {} \; pobiera nazwy wszystkich zwykłych plików ze ścieżek man
Odpowiedzi:
To polecenie wyświetla posortowane nazwy wszystkich pozycji w danej sekcji:
Jeśli chcesz zobaczyć nazwy ścieżek, użyj:
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:
Na przykład możesz go wywołać,
mansect 3
aby zobaczyć wpisy w sekcji trzeciej.[Testowany na macOS.]
źródło
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 :
źródło
man -a -s 2 '*'
Strony podręczne są zwykle umieszczane
/usr/share/man
, ale sprawdzane$MANPATH
i podzielone na następujące sekcje:Aby wyświetlić listę wszystkich zainstalowanych stron sekcji 2, wykonaj:
Lub bardziej kompletny:
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
:źródło
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
W systemie Mac OS X jedyne, co mogę zabrać do pracy, to
man -k . | grep -F '(3)'
lista wszystkich elementów w sekcji 3.źródło
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:
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.źródło