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

<p>так, например, когда я набираю <code>man ls</code>, я вижу <code>ls(1)</code>. но если я набираю <code>man apachectl</code>, я вижу <code>apachectl(8)</code>, и если я печатаю <code>man cd</code>, я получаю <code>cd(n)</code>.</p><p>мне интересно, каково значение чисел в скобках, если они есть.</p>

<p>номер соответствует тому, из какого раздела руководства эта страница; 1 - это пользовательские команды, а 8 - это сисадмин. страница man для самого человека (<code>man man</code>) объясняет это и перечисляет стандартные:</p><pre><code>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. </code></pre><p>существуют определенные термины, которые имеют разные страницы в разных разделах (например, <code>printf</code>, поскольку команда появляется в разделе 1, а функция <code>stdlib</code> появляется в разделе 3); в таких случаях вы можете передать номер раздела <code>man</code> перед именем страницы, чтобы выбрать нужный, или использовать <code>man -a</code> чтобы показать каждую соответствующую страницу в строке:</p><pre><code>$ 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) </code></pre>

<p>история этих номеров разделов восходит к оригиналу <a href="https://www.bell-labs.com/usr/dmr/www/manintro.html">руководство программиста unix</a> томпсона и ричи в 1971 году.</p><p>оригинальные разделы были</p><ol> <li>команды</li> <li>системные звонки</li> <li>подпрограммы</li> <li>специальные файлы</li> <li>форматы файлов</li> <li>пользовательские программы</li> <li>разное</li> </ol>

<p>konqueror также описывает нестандартные разделы: (спасибо @ greg0ire за идею)</p><pre><code>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 </code></pre>

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

<p>из справочной страницы <code>man</code>:</p><pre><code>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] </code></pre><p>относительно того, почему они так разделены - есть некоторые совпадения. некоторые man-страницы существуют в нескольких разделах, в зависимости от того, что вы имеете в виду.</p><p>например, сравните <code>man crontab</code> с <code>man 5 crontab</code> - скорее всего, именно тот, который вы хотели найти.</p>

<p>это номера разделов. просто введите <code>man man</code> или откройте konqueror и наберите man: // man, и вы увидите, что это за разделы.</p>

<p>часто на справочную страницу ссылаются с помощью суффикса к разделу, заключенному в скобки, например:</p><pre>\_<code>read(2) </code>\_</pre><p>этот стиль имеет два основных преимущества:</p><ul> <li>сразу становится ясно, что вы ссылаетесь на справочную страницу - то есть вы можете написать что-то вроде 'cf. читать (3) "вместо" ср. справочная страница раздела 3 для чтения '</li> <li>если несколько разделов содержат справочные страницы с одним и тем же именем, указание раздела является более точным</li> </ul><p>справочные страницы организованы в разделы, например, раздел 1 включает все справочные страницы по командам пользователя, раздел 2 - все справочные страницы по системным вызовам, раздел 3 - по функциям библиотеки и т.д.</p><p>в командной строке, если вы не укажете явно раздел, вы получите первую соответствующую справочную страницу в порядке обхода раздела по умолчанию, например:</p><pre>\_<code>$ man read _отображает bash_builtins(1) в fedora. куда_$ man 2 read </code>\_</pre><p>отображает справочную страницу для системного вызова <code>read()</code>.</p><p>обратите внимание, что позиционная спецификация секции не переносима - например, на солярисе вы бы указали это так:</p><pre>\_<code>$ man -s 2 read _обычно, _man man_ также перечисляет некоторые из доступных разделов. но не обязательно все. для перечисления всех доступных разделов можно перечислить подкаталоги всех каталогов, перечисленных в каталоге man по умолчанию или в переменной среды _$manpath</code>\_. например, в системе fedora 23 с некоторыми установленными пакетами разработки \_<code>/usr/share/man</code>\_ есть следующие подкаталоги:</p><pre>\_<code>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 </code>\_</pre><p>каталоги с префиксом <code>man</code> представляют каждый раздел, в то время как другие содержат переведенные разделы. таким образом, чтобы получить список непустых разделов, можно выполнить команду, подобную этой:</p><pre>\_<code>$ find /usr/share/man -type f | sed 's@^./man(..)/.$@\1@' \ | sort -u | column 0p 1p 3 4 6 8 1 2 3p 5 7 </code>\_</pre><p>(разделы, заканчивающиеся на <code>p</code>, являются справочными страницами posix)</p><p>чтобы просмотреть справочную страницу на другом языке (если доступно), можно установить переменную среды, связанную с языком, например:</p><pre>\_<code>$ lc_messages=de_de man read _кроме того, в каждом разделе должна быть введена справочная страница с именем intro, например просмотр через:_$ man 2 intro </code>\_</pre>

<p>определения для svr4:</p><pre><code>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 </code></pre><p>это фактическая нумерация для "генетической" unix. posix не определяет числа.</p>