예를 들어 매뉴얼 페이지는 fork
시스템 호출 섹션에 있으며 번호는 2입니다.
man 2 fork
Google을 사용하지 않고 Part 2의 다른 내용을 어떻게 알 수 있나요?
답변1
모두 나열설치됨섹션별 매뉴얼 페이지를 사용할 수 있습니다.바로:
apropos -s 2 . # use an regex for apropos . means anything
apropos -s 2 -w '*' # use unix globbing for apropos
답변2
맨페이지는 일반적으로 에 위치 /usr/share/man
하지만 확인 $MANPATH
하고 다음과 같은 섹션으로 구성하십시오.
Section 1:
/usr/share/man/man1/
Section 2:
/usr/share/man/man2/
...
따라서 설치된 모든 Part 2 맨페이지를 나열하려면 다음을 수행하십시오.
ls /usr/share/man/man2/
또는 더 완전한:
find $(echo $MANPATH | tr ':' ' ') -path '*/man2/*'
$MANPATH
후자의 경우 디렉터리 이름에 공백이 포함되어 있으면 문제가 됩니다.
대부분의 배포판에서는 패키지 도구를 사용하여 사용 가능한 매뉴얼 페이지를 확인할 수도 있습니다. 예를 들어 Debian 파생 배포판에서는 apt-file
다음과 같이 사용할 수 있습니다.
apt-file search /man2/
답변3
이 명령은 특정 섹션에 있는 모든 항목의 정렬된 이름을 나열합니다.
man -aWS 1 \* | xargs basename | sed 's/\.[^.]*$//' | sort -u
경로 이름을 보려면 다음을 사용하십시오.
man -aWS 1 \* | sed 's/\.[^.]*$//' | sort
이는 와일드카드 패턴 (쉘이 해석하지 않도록 백슬래시를 인용함) man
을 사용하여 섹션의 모든 명령을 검색하도록 지시합니다. 일치하는 항목을 모두 찾아 페이지를 표시하는 대신 경로 이름을 인쇄하고 첫 번째 섹션을 지정합니다. 검색하고 싶은 부분 으로 변경하세요 .*
-a
-W
-S 1
1
이 sed
명령은 파일 확장자를 제거합니다. 전체 파일 이름을 보려면 확장자를 제거하세요. sort
결과를 정렬합니다( -u
중복 항목 제거).
재사용을 용이하게 하기 위해 Bash 쉘 함수가 여기에 정의되어 있습니다.
function mansect { man -aWS ${1?man section not provided} \* | xargs basename | sed 's/\.[^.]*$//' | sort -u; }
예를 들어 이를 호출하여 mansect 3
세 번째 섹션의 항목을 볼 수 있습니다.
[macOS에서 테스트되었습니다. ]
답변4
나는 이것이 매우 오래된 질문이라는 것을 알고 있지만 여기에 제공된 답변 중 어느 것도 나에게 도움이 되지 않았습니다. 그래서 나는 다음과 같은 효과를 생각해 냈습니다.우분투18.04 및애플 시스템모하비, 10.14.6:
find $(man --path | tr ':' ' ') -type f -path '*man2*' \
-exec basename {} \; | sed 's/\..*//' | sort
빠른 실행:
- Thors 답변 작성:
$(man --path | tr ':' ' ')
매뉴얼 페이지의 현재 경로를 얻으십시오. find <man paths> -type f -path '*man2*' -exec basename {} \;
man 경로에 있는 모든 일반 파일의 파일 이름을 가져옵니다.sed
파일 확장자를 제거하세요sort
알파벳순으로.