매뉴얼 페이지의 숫자는 무엇을 의미합니까?


474

예를 들어 내가 입력하면을 man ls볼 수 LS(1)있습니다. 하지만 입력하면 man apachectl내가보고 APACHECTL(8)내가 입력하면 man cd내가 끝낼 cd(n).

괄호 안에있는 숫자의 의미가 무엇인지 궁금합니다.




4
@PeterMortensen 수퍼 유저 및 유닉스 / 리눅스와 ServerFault, AskUbuntu 및 Apple을 모두 병합해야하는 이유입니다.
Chloe

참고로,export MANSECT=0p:1:2:3:3p:4:5:6:7:8:9:l:s:n
meuh

이것은 거대한 UX 오류입니다. 디지털 문서에는 섹션 번호가 전혀 없어야합니다. 설명적인 이름과 하이퍼 링크가 있어야합니다. 나는 그들이이 질문을 121000 번 보았 기 때문에 문서를 너무 혼란스럽게 만들 수 있다고 믿을 수 없습니다 .
iono

답변:


496

이 번호는 해당 페이지의 매뉴얼 섹션에 해당합니다. 1은 사용자 명령이고 8은 sysadmin입니다. man 자체에 대한 매뉴얼 페이지 ( man man)는이를 설명하고 표준을 나열합니다.

MANUAL SECTIONS
    The standard sections of the manual include:

    1      User Commands
    2      System Calls
    3      C Library Functions
    4      Devices and Special Files
    5      File Formats and Conventions
    6      Games et. al.
    7      Miscellanea
    8      System Administration tools and Daemons

    Distributions customize the manual section to their specifics,
    which often include additional sections.

섹션마다 다른 페이지를 가진 특정 용어가 있습니다 (예 : printf명령이 섹션 1에 stdlib나타나고 기능이 섹션 3에 나타남). 그런 경우 섹션 번호를 man페이지 이름 앞에 전달하여 원하는 것을 선택하거나 man -a일치하는 모든 페이지를 한 행에 표시하는 데 사용할 수 있습니다.

$ man 1 printf
$ man 3 printf
$ man -a printf

용어가 어떤 섹션에 속하는지 알 수 있습니다 man -k( apropos명령 과 동일 ). 하위 문자열 일치도 수행합니다 (예 : sprintf실행하면 man -k printf표시됨). ^term제한 을 사용 하여 제한해야합니다.

$ man -k '^printf'
printf               (1)  - format and print data
printf               (1p)  - write formatted output
printf               (3)  - formatted output conversion
printf               (3p)  - print formatted output
printf [builtins]    (1)  - bash built-in commands, see bash(1)

5
그것은 확실히 그것을 설명합니다. 주어진 명령에 대해 여러 매뉴얼 페이지가 있는지 여부를 쉽게 알 수 있습니까?
Wilduck

2
@Wil 예, 편집 됨
Michael Mrozek

11
이 섹션 번호는 Linux 용입니다. 1, 3 및 6은 모든 유닉스 변형 AFAIK에서 동일하지만 다른 부분과 비-숫자 부분은 다를 수 있습니다. 일반적으로 man X intro섹션에있는 내용을 설명합니다 X.
Gilles

2
@ KeithB : 나는 4,5,7,8 다른 유니스를 사용했습니다. OSF1 (Digital Unix)에는 Solaris의 파일 형식이 4, 기타 5, 장치 7이 있습니다. Solaris는 또한 관리자 명령을 1m에 넣습니다. 2의 시스템 호출은 보편적이라고 생각하지만 일부 시스템에는 2의 C 라이브러리 인터페이스가 있습니다 (시위 syscall 주위의 얇은 래퍼로 간주되는 경우).
Gilles

4
허, 매뉴얼을 사용하기 위해 매뉴얼이 필요하다고 생각한 사람 man man... 지금까지 내가 본 적이 없다 .
Matt Clark

59

이 섹션 번호의 역사는 1971 년 Thompson과 Ritchie 원래 Unix Programmer 's Manual 로 돌아갑니다 .

원래 섹션은

  1. 명령
  2. 시스템 호출
  3. 서브 루틴
  4. 특수 파일
  5. 파일 형식
  6. 사용자 관리 프로그램
  7. 여러 가지 잡다한

실제로 70 년대의 더 많은 것들. 나는 그것이 80 년대 출신이라고 생각했다.
Rolf

"기타"는 주로 "특정 API 엔드 포인트가 아닌 전체 서브 시스템 또는 일반 Unix 기능에 대한 광범위한 정보"를 의미합니다. 예를 들어 참조 pipe(7), tcp(7)(그리고 여러 가지 다른 네트워킹 man 페이지) pthreads(7), boot(7), regex(7), 등 7 항에서 다른 것들과 같은뿐만 아니라,있다 ascii(7)(ASCII 표)와 man(7)(어떻게 사람 페이지를 작성하는)하지만 광범위한 문서 페이지가 지금까지입니다 내 경험에서 섹션 7에서 가장 유용한 것들.
Kevin

31

konqueror는 비표준 섹션도 설명합니다 : (아이디어에 대한 @ greg0ire 덕분에)

0     Header files
0p    Header files (POSIX)
1     Executable programs or shell commands
1p    Executable programs or shell commands (POSIX)
2     System calls (functions provided by the kernel)
3     Library calls (functions within program libraries)
3n    Network Functions
3p    Perl Modules
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
l     Local documentation
n     New manpages

21

그것이 의미하는 바는 이미 설명되어 있지만 각 섹션에는 소개가있는 특별한 매뉴얼 페이지가 있음을 추가하고 싶습니다 intro. 예를 들어, 참조 man 1 intro또는 man 3 intro등등합니다.


1
Fedora 설치에서 이것을 볼 수 없습니다. man X 소개가 표준이 아닙니까?
beatgammit

@tjameson man-pages패키지가 설치되어 있습니까?
PHP-coder

15

로부터 man맨 :

The table below shows the section numbers of the manual followed by the 
types of pages they contain.

   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 conven‐
       tions), e.g. man(7), groff(7)
   8   System administration commands (usually only for root)
   9   Kernel routines [Non standard]

왜 그렇게 분리되어 있는지에 대해서는 약간의 중복이 있습니다. 의미에 따라 특정 맨 페이지가 둘 이상의 섹션에 존재합니다.

예를 들어, 비교 man crontabman 5 crontab- 기회는 후자는 당신이 보는 것을 의미 하나입니다입니다.


그리고 무엇 man1pman3p?
Tyilo

내 맨 페이지를 어디에 배치해야 ~/man합니까?
Tyilo

나는 다른 숫자가 있다는 것을 알았지 만 운율이 있는지 몰랐습니다. 감사합니다
user606723

1
1p는 매뉴얼의 posix 표준 버전입니다. 이식 가능한 코드를 작성하려면 Xp 매뉴얼 페이지 만 사용해야합니다. posix를 준수하지 않는 X 및 Xp 매뉴얼 페이지를 구현하는 경우 다를 수 있습니다.
andcoz

내 대답을 참조 @Tyilo
Babken의 Vardanyan

8

이들은 섹션 번호입니다. man mankonqueror를 입력 하거나 열면 man : // man을 입력하면이 섹션이 무엇인지 알 수 있습니다.


7

종종 매뉴얼 페이지는 괄호로 묶인 섹션으로 접미사를 통해 참조됩니다. 예 :

read(2)

이 스타일에는 두 가지 주요 장점이 있습니다.

  • 맨 페이지를 참조한다는 것은 즉시 분명합니다. 즉 'cf. 'cf. 읽기 섹션 3 맨 페이지 '
  • 여러 섹션에 동일한 이름의 매뉴얼 페이지가 포함 된 경우 섹션을보다 정확하게 지정하십시오

매뉴얼 페이지는 섹션으로 구성됩니다 (예 : 섹션 1에는 모든 사용자 명령 매뉴얼 페이지 포함, 섹션 2에는 시스템 호출에 대한 모든 매뉴얼 페이지 포함), 섹션 3은 라이브러리 기능 등입니다.

명령 행에서 섹션을 명시 적으로 지정하지 않으면 첫 번째 일치하는 매뉴얼 페이지가 기본 섹션 순회 순서로 표시됩니다. 예를 들면 다음과 같습니다.

$ man read

BASH_BUILTINS(1)Fedora에 표시됩니다 . 어디

$ man 2 read

read()시스템 호출에 대한 매뉴얼 페이지를 표시합니다 .

섹션의 위치 지정은 이식 가능하지 않습니다. 예를 들어 Solaris에서는 다음과 같이 지정합니다.

$ man -s 2 read

일반적으로 man man사용 가능한 일부 섹션도 나열됩니다. 그러나 반드시 전부는 아닙니다. 사용 가능한 모든 섹션을 나열하기 위해 기본 man 경로 또는 환경 변수에 나열된 모든 디렉토리의 하위 디렉토리를 나열 할 수 있습니다 $MANPATH. 예를 들어 일부 개발 패키지가 설치된 Fedora 23 시스템 /usr/share/man에는 다음과 같은 하위 디렉토리가 있습니다.

cs  es  id  man0p  man2   man3x  man5x  man7x  man9x  pt_BR  sk  zh_CN
da  fr  it  man1   man2x  man4   man6   man8   mann   pt_PT  sv  zh_TW
de  hr  ja  man1p  man3   man4x  man6x  man8x  pl     ro     tr
en  hu  ko  man1x  man3p  man5   man7   man9   pt     ru     zh

man접두사가 있는 디렉토리 는 각 섹션을 나타내고 다른 디렉토리 에는 번역 된 섹션이 있습니다. 따라서 비어 있지 않은 섹션 목록을 얻으려면 다음과 같은 명령을 실행할 수 있습니다.

$ find /usr/share/man -type f  | sed 's@^.*/man\(..*\)/.*$@\1@' \
    | sort -u | column
0p  1p  3   4   6   8
1   2   3p  5   7

(로 끝나는 섹션 p은 POSIX 매뉴얼 페이지입니다)

다른 언어 (사용 가능한 경우)로 매뉴얼 페이지를 보려면 언어 관련 환경 변수를 다음과 같이 설정할 수 있습니다.

$ LC_MESSAGES=de_DE man read

또한 각 섹션에는이라는 소개 매뉴얼 페이지가 있어야합니다 intro. 예 :

$ man 2 intro

4

SVr4의 정의는 다음과 같습니다.

1 User Commands
2 System Calls
3 library Functions
4 File Formats
5 Standards, Environment and Macros (e.g. man(5))
6 Games and Demos
7 Device and Network Interfaces, Special Files
8 Maintenance Procedures
9 Kernel and Driver entry points and structures

이것은 "유전"UNIX의 실제 번호입니다. POSIX는 숫자를 정의하지 않습니다.

당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.