Что означают цифры на странице руководства?
Так, например, когда я набираю man ls
, я вижу LS(1)
. Но если я набираю man apachectl
, я вижу APACHECTL(8)
, и если я набираю man cd
, я заканчиваю cd(n)
.
Мне интересно, каково значение чисел в круглых скобках, если они есть.
8 ответов
Число соответствует тому, из какого раздела руководства находится эта страница; 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.
В разделе 1 есть определенные термины, которые имеют разные страницы в разных разделах (например, printf
), поскольку в разделе 3 отображается функция stdlib
); в таких случаях вы можете передать номер раздела 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)
История этих номеров разделов восходит к оригинальному Руководству пользователя Unix Томпсон и Ричи в 1971 году.
Исходными разделами были
- Команды
- Системные вызовы
- Подпрограммы
- Специальные файлы
- Форматы файлов
- Программы, поддерживаемые пользователем
- Разное
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
Что это значит уже описано, но я также хочу добавить, что каждый раздел имеет специальную страницу руководства с введением: intro
. Например, см. man 1 intro
или man 3 intro
и т. Д.
На странице man 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]
Что касается того, почему они разделены, - некоторые перекрываются. Некоторые manpages существуют в более чем одной секции в зависимости от того, что вы имеете в виду.
Например, сравните man crontab
с man 5 crontab
- скорее всего, это тот, который вы хотели найти.
Это номера разделов.
Просто введите man man
или откройте konqueror и введите man: //man, и вы увидите, что это за разделы.
Часто справочная страница ссылается посредством суффиксации с помощью раздела, заключенного в круглые скобки, например:
read(2)
Этот стиль имеет два основных преимущества:
- сразу становится ясно, что вы ссылаетесь на страницу руководства - то есть вы можете написать что-то вроде 'cf. читать (3) 'вместо' cf. раздел 3 man-страницы для чтения '
- если несколько разделов содержат man-страницы с тем же именем, уточнение раздела более точно
Персональные страницы организованы в разделах, например. Раздел 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 '[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
Определения для 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 не определяет числа.