it-swarm-es.tech

¿Qué significan los números en una página de manual?

Entonces, por ejemplo, cuando escribo man ls Veo LS(1). Pero si escribo man apachectl Veo APACHECTL(8) y si escribo man cd Termino con cd(n).

Me pregunto cuál es el significado de los números entre paréntesis, si es que tienen alguno.

514
Wilduck

El número corresponde a qué sección del manual proviene esa página; 1 es comandos de usuario, mientras que 8 es material de administrador de sistemas. La página man para el hombre mismo (man man) lo explica y enumera los estándares:

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.

Hay ciertos términos que tienen diferentes páginas en diferentes secciones (por ejemplo, printf como aparece un comando en la sección 1, como aparece una función stdlib en la sección 3); en casos como ese, puede pasar el número de sección a man antes del nombre de la página para elegir cuál desea, o usar man -a para mostrar cada página coincidente en una fila:

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

Puedes saber en qué secciones se encuentra un término con man -k (equivalente al comando apropos). También hará coincidencias de subcadenas (por ejemplo, mostrará sprintf si ejecuta man -k printf), por lo que debe usar ^term para limitarlo:

$ 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

La historia de estos números de sección se remonta al original Manual del programador de Unix por Thompson y Ritchie en 1971.

Las secciones originales fueron

  1. Comandos
  2. Sistema de llamadas
  3. Subrutinas
  4. Archivos especiales
  5. Formatos de archivo
  6. Programas mantenidos por el usuario
  7. Diverso
59
KeithB

konqueror también describe secciones no estándar: (gracias a @ greg0ire por la idea)

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

Lo que significa ya está descrito, pero también quiero agregar que cada sección tiene una página de manual especial con introducción: intro. Por ejemplo, vea man 1 intro o man 3 intro y así.

21
php-coder

Desde la página de manual 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]

En cuanto a por qué están separados así, hay cierta superposición. Ciertas páginas de manual existen en más de una sección, dependiendo de lo que quiera decir.

Por ejemplo, compare man crontab con man 5 crontab - lo más probable es que esta última sea la que querías buscar.

16
Shadur

Estos son los números de sección. Sólo tipo man man o abra konqueror y escriba man: // man y verá cuáles son estas secciones.

8
greg0ire

A menudo, se hace referencia a una página de manual mediante el sufijo con la sección entre paréntesis, por ejemplo:

read(2)

Este estilo tiene dos ventajas principales:

  • está claro de inmediato que hace referencia a una página de manual, es decir, puede escribir algo como 'cf. leer (3) 'en lugar de' cf. la sección 3 de la página man de read '
  • si varias secciones contienen páginas de manual con el mismo nombre, la especificación de la sección es más precisa

Las páginas man están organizadas en secciones, p. La Sección 1 incluye todas las páginas de comando man del usuario, la Sección 2 todas las páginas de comando man para las llamadas al sistema, la Sección 3 es para funciones de biblioteca, etc.

En la línea de comando, si no especifica explícitamente la sección, obtendrá la primera página de manual coincidente, en el orden transversal de la sección predeterminada, por ejemplo:

$ man read

muestra BASH_BUILTINS(1) en Fedora. Dónde

$ man 2 read

muestra la página del comando man para la llamada al sistema read().

Tenga en cuenta que la especificación posicional de la sección no es portátil, p. Ej. en Solaris lo especificaría así:

$ man -s 2 read

Por lo general, man man También enumera algunas de las secciones disponibles. Pero no necesariamente todos. Para enumerar todas las secciones disponibles, se pueden enumerar los subdirectorios de todos los directorios enumerados en la ruta de acceso predeterminada o la variable de entorno $MANPATH. Por ejemplo, en un sistema Fedora 23 con algunos paquetes de desarrollo instalados /usr/share/man Tiene los siguientes subdirectorios:

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

Los directorios con el prefijo man representan cada sección, mientras que los otros contienen secciones traducidas. Por lo tanto, para obtener una lista de secciones no vacías, se podría emitir un comando como este:

$ 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

(las secciones que terminan con p son páginas de manual POSIX)

Para ver una página de manual en otro idioma (si está disponible) se puede establecer una variable de entorno relacionada con el idioma, por ejemplo:

$ LC_MESSAGES=de_DE man read

Además, cada sección debe tener una página de manual de introducción llamada intro, p. visible a través de:

$ man 2 intro
7
maxschlepzig

Las definiciones para SVr4 son:

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

Esta es la numeración real de un UNIX "genético". POSIX no define números.

4
schily