“man 3 command”와 “man command”의 차이점이 무엇인지 궁금합니다.
wiki ( http://en.wikipedia.org/wiki/Man_page )에서 man 3은 Linux에서 매뉴얼 페이지의 섹션 3에서 사용된다는 것을 읽었습니다 . 그리고 섹션 3은 특히 C 표준 라이브러리를 다루는 라이브러리 함수를 참조합니다.
“man 3 ls”를 시도하고 이것을 얻었습니다.
No entry for ls in section 3 of the manual
나는 사람 3을 언제 사용해야하는지, 언제 사람을 사용해야하는지 궁금하고 그들이 다른 목적을 달성합니까?
감사.
답변
man 3 ls
ls
매뉴얼의 섹션 3에 대한 매뉴얼 페이지 만 표시합니다 . 섹션 3은 라이브러리 기능을 다룹니다. 이름이 지정된 라이브러리 함수 ls
가 없기 때문에 아무것도 찾을 수 없습니다.
man
섹션 번호가없는 명령은 내가 기억하지 않는 미리 정의 된 순서대로 섹션을 검색하지만, 그래서 1부터 숫자 순서에 근접 할 가능성이 높습니다 man ls
찾기합니다 ls
사용자 명령을 커버 섹션 1의 man 페이지를.
내 우분투 시스템의 섹션은 다음과 같습니다.
1 Executable programs or shell commands
2 System calls (functions provided by the kernel)
3 Library calls (functions within program libraries)
4 Special files (usually found in /dev)
5 File formats and conventions eg /etc/passwd
6 Games
7 Miscellaneous (including macro packages and conventions), e.g. man(7), groff(7)
8 System administration commands (usually only for root)
9 Kernel routines [Non standard]
섹션을 지정하면 둘 이상의 섹션에서 동일한 이름을 가진 항목에 유용 할 수 있습니다. 예를 들어, 섹션 1 man printf
의 printf
사용자 명령에 대한 매뉴얼 페이지가 표시됩니다 . printf
함수 의 매뉴얼 페이지를 보려면을 사용하십시오 man 3 printf
. 이 매뉴얼 페이지가 각각 printf(1)
및 로 표시되는 경우가 종종 있습니다 printf(3)
.
도용 abernert의 답변 에서 차용 하는 경우, 동일한 이름을 가진 시스템 호출 (섹션 2) 또는 라이브러리 호출 (섹션 3)의 래퍼 인 사용자 명령 (섹션 1)을 보는 것이 일반적입니다. chown
그리고 chmod
이것의 좋은 예입니다.
답변
귀하의 질문에 따르면, 섹션 3은 C 표준 라이브러리를 다루는 라이브러리 기능에 대한 것입니다. ls
C 표준 라이브러리 에는 기능 이 없으므로 맨 페이지를 요청할 때 아무것도 없습니다.
왜 당신이 혼란 스러울 지 알 수 있습니다. 대부분의 경우 간단한 명령 줄 실행 파일에서 일부 C 또는 POSIX 함수를 마무리하는 도구가 있습니다. 예를 들어, chmod
도구 (섹션 1)는 기본적으로 인수를 구문 분석 chmod
하고 각 파일에서 POSIX 함수 (섹션 2)를 호출 합니다. 따라서 입력 man 1 chmod
하여 도구 man 2 chmod
에 대한 문서를 얻고 도구가 사용하는 라이브러리 기능에 대한 문서를 얻을 수 있습니다. 을 입력하면 man chmod
섹션 2보다 섹션 1이 선택되므로 도구가 제공됩니다.
그러나 이것이 항상 사실 은 아닙니다 . 예를 들어, 주요 함수 ls
는 아마입니다 readdir
. 따라서을 사용하여 도구를 man 1 ls
찾고을 사용하여 기능을 찾을 수 man 3 readdir
있습니다. 이 경우 우선 순위가 높은 섹션에는 이름이 같지 않기 때문에 man readdir
아마도 같은 작업을 수행 할 것입니다 man 3 readdir
.
답변
일부 페이지는 man의 다른 항목에 있습니다. 그런 다음 특정 섹션으로 이동하기 위해 자주보고 싶은 섹션을 사용하고자 할 수 있습니다. 예를 들어을 참조하십시오 whatis find
. 세 가지 다른 페이지가 참조됩니다. 출력하는 각 섹션 ID를 괄호 안에 사용하십시오.
답변
경우에 따라 매뉴얼 페이지를 읽거나 man -k를 사용하여 특정 페이지를 검색 할 때 비슷한 이름의 두 페이지가 있지만 다른 라이브러리에있을 수 있습니다.
[mini-nevie:~] nevinwilliams% man -k route
route(4) - kernel packet forwarding database
route(8) - manually manipulate the routing tables
그런 다음 각 매뉴얼 페이지를 읽으려면 다음을 수행하십시오.
man 4 route
첫 번째를 읽고
man 8 route
두 번째를 읽으십시오.