Що означають цифри на чоловічій сторінці?


474

Так, наприклад, коли я друкую, man lsя бачу LS(1). Але якщо я набираю, man apachectlя бачу, APACHECTL(8)і якщо я набираю, man cdя закінчую cd(n).

Мені цікаво, яке значення мають числа в дужках, якщо вони є.




4
@PeterMortensen Саме тому SuperUser і Unix / Linux і ServerFault, AskUbuntu і Apple потрібно об'єднати всі.
Хлоя

На стороні записки, ви можете встановити свій власний порядок пошуку зexport MANSECT=0p:1:2:3:3p:4:5:6:7:8:9:l:s:n
meuh

Це гігантський збій UX. Цифрова документація взагалі не повинна мати номерів розділів; він повинен мати описові назви та гіперпосилання. Не можу повірити, що їм вдалося зробити документацію настільки заплутаною, що це питання переглядали 121000 разів.
іоно

Відповіді:


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 є однаковими для всіх варіантів Unix AFAIK, але інші та неоднозначні розділи можуть відрізнятися. Зазвичай man X introописується, що знаходиться в розділі X.
Жиль

2
@KeithB: Я використав кілька уніцій з різними 4,5,7,8. Digital Unix (OSF1) мав, а Solaris все ще має: формати файлів у 4, різне в 5, пристрої в 7. Solaris також ставить команди адміністратора в 1м. Я думаю, що системні виклики в 2 є універсальними, але деякі системи також мають деякі інтерфейси бібліотеки С у 2 (коли вони повинні бути тонкими обгортками навколо однойменного системного виклику).
Жиль

4
Ага, хто думав, що вам потрібен посібник, щоб скористатися посібником ... Ніколи я ніколи не виконував man man...
Метт Кларк

59

Історія цих номерів розділів сходить до оригінального посібника програміста Unix від Томпсона та Річі в 1971 році.

Оригінальні розділи були

  1. Команди
  2. Системні дзвінки
  3. Підпрограми
  4. Спеціальні файли
  5. Формати файлів
  6. Програми, що підтримуються користувачем
  7. Різне

Дійсно більше матеріалів із 70-х. Я думав, що це з 80-х.
Рольф

"Різне" насамперед означає "широку інформацію про всю підсистему або загальну функцію Unix, а не про конкретну кінцеву точку API". Дивіться, наприклад pipe(7), tcp(7)(і кілька інших мережевих людей сторінок) pthreads(7), boot(7), regex(7)і т.д. Там інші речі в розділі 7 , а також, наприклад, ascii(7)(ASCII таблиці) і man(7)(як написати сторінку людини) , але широке Docs сторінки далеко найкорисніші речі в розділі 7 мого досвіду.
Кевін

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. Хіба вступ людини Х не стандартний?
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 crontabз man 5 crontab- швидше за все , останній є один ви мали в виду , щоб подивитися вгору.


А що таке man1pі man3p?
Тиїло

І де я можу розмістити свої власні манжети, що знаходяться в ньому ~/man?
Тайло

Я знав, що є різні цифри, але я не знав, що в ньому є рима. Дякую
користувач606723

1
1p - це стандартна версія посібника з посилами. Якщо ви хочете написати портативний код, вам слід використовувати лише чоловічі сторінки Xp. Якщо у вас реалізація не відповідає стандартам, не відповідають стандартам, то сторінки X і Xp man можуть відрізнятися.
andcoz

@Tyilo дивіться мою відповідь
Бабкен Варданян

8

Це номери розділів. Просто введіть man manабо відкрийте konqueror і введіть man: // man, і ви побачите, що це за ці розділи.


7

Часто на доменну сторінку посилається через суфікс із розділом, укладеним у дужки, наприклад:

read(2)

Цей стиль має дві основні переваги:

  • відразу зрозуміло, що ви посилаєтесь на чоловічу сторінку - тобто ви можете написати щось на кшталт "пор. читати (3) 'замість' пор. розділ 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 не визначає числа.

Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.