it-swarm-ru.tech

Что означают цифры в справочной странице?

Так, например, когда я набираю man ls, Я вижу LS(1). Но если я набираю man apachectl, Я вижу APACHECTL(8), и если я печатаю man cd, Я получаю cd(n).

Мне интересно, каково значение чисел в скобках, если они есть.

514
Wilduck

Номер соответствует тому, из какого раздела руководства эта страница; 1 - это пользовательские команды, а 8 - это сисадмин. Страница 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)
524
Michael Mrozek

История этих номеров разделов восходит к оригиналу Руководство программиста Unix Томпсона и Ричи в 1971 году.

Оригинальные разделы были

  1. Команды
  2. Системные звонки
  3. Подпрограммы
  4. Специальные файлы
  5. Форматы файлов
  6. Пользовательские программы
  7. Разное
59
KeithB

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
34
Babken Vardanyan

Что это значит, уже описано, но я также хочу добавить, что в каждом разделе есть специальная страница руководства с введением: intro. Например, смотрите man 1 intro или man 3 intro и так далее.

21
php-coder

Из справочной страницы 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-страницы существуют в нескольких разделах, в зависимости от того, что вы имеете в виду.

Например, сравните man crontab с man 5 crontab - скорее всего, именно тот, который вы хотели найти.

16
Shadur

Это номера разделов. Просто введите man man или откройте konqueror и наберите man: // man, и вы увидите, что это за разделы.

8
greg0ire

Часто на справочную страницу ссылаются с помощью суффикса к разделу, заключенному в скобки, например:

_read(2)
_

Этот стиль имеет два основных преимущества:

  • сразу становится ясно, что вы ссылаетесь на справочную страницу - то есть вы можете написать что-то вроде 'cf. читать (3) "вместо" ср. справочная страница раздела 3 для чтения '
  • если несколько разделов содержат справочные страницы с одним и тем же именем, указание раздела является более точным

Справочные страницы организованы в разделы, например, Раздел 1 включает все справочные страницы по командам пользователя, Раздел 2 - все справочные страницы по системным вызовам, Раздел 3 - по функциям библиотеки и т.д.

В командной строке, если вы не укажете явно раздел, вы получите первую соответствующую справочную страницу в порядке обхода раздела по умолчанию, например:

_$ man read
_

отображает BASH_BUILTINS(1) в Fedora. куда

_$ man 2 read
_

отображает справочную страницу для системного вызова read().

Обратите внимание, что позиционная спецификация секции не переносима - например, на Солярисе вы бы указали это так:

_$ 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 '[email protected]^.*/man\(..*\)/.*[email protected]\[email protected]' \
    | 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
_
7
maxschlepzig

Определения для 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 не определяет числа.

4
schily