@PeterMortensen Es por eso que SuperUser y Unix / Linux y ServerFault y AskUbuntu y Apple deben fusionarse.
Chloe
En una nota al margen, puede establecer su propio orden de búsqueda conexport MANSECT=0p:1:2:3:3p:4:5:6:7:8:9:l:s:n
meuh
Esta es una gigantesca falla de UX. La documentación digital no debería tener números de sección; debe tener nombres descriptivos e hipervínculos. No puedo creer que lograron hacer una documentación tan confusa que esta pregunta se haya visto 121000 veces.
iono
Respuestas:
497
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 man ( 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, printfcomo aparece un comando en la sección 1, como stdlibaparece una función en la sección 3); en casos como ese, puede pasar el número de sección manantes del nombre de la página para elegir cuál desea, o usar man -apara mostrar cada página coincidente en una fila:
$ man 1 printf
$ man 3 printf
$ man -a printf
Puede saber en qué secciones se encuentra un término man -k(equivalente al aproposcomando). También hará coincidencias de subcadenas (por ejemplo, se mostrará sprintfsi ejecuta man -k printf), por lo que debe usar ^termpara 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)
Eso ciertamente lo explica. ¿Hay alguna manera fácil de saber si hay varias páginas de manual para un comando dado?
Wilduck
2
@Wil Sí, editado
Michael Mrozek
11
Tenga en cuenta que estos números de sección son para Linux. 1, 3 y 6 son iguales en todas las variantes de Unix AFAIK, pero las otras y las secciones de un solo dígito pueden diferir. Generalmente man X introdescribe lo que hay en la sección X.
Gilles
2
@KeithB: He usado algunos unices con diferentes 4,5,7,8. Digital Unix (OSF1) tenía, y Solaris todavía tiene: formatos de archivo en 4, misceláneos en 5, dispositivos en 7. Solaris también pone comandos de administrador en 1m. Creo que las llamadas al sistema en 2 son universales, pero algunos sistemas también tienen algunas interfaces de biblioteca C en 2 (cuando se supone que son envoltorios delgados alrededor de la llamada del sistema epónima).
Gilles
44
Huh, quién pensó que necesitarías un manual para usar un manual ... Nunca he ejecutado man man... hasta ahora.
Matt Clark
59
La historia de estos números de sección se remonta al Manual del Programador Unix original de Thompson y Ritchie en 1971.
Más cosas de los años 70, de hecho. Pensé que era de los años 80.
Rolf
"Varios" significa principalmente "información amplia sobre un subsistema completo o una característica genérica de Unix en lugar de un punto final de API en particular". Véase, por ejemplo pipe(7), tcp(7)(y varias otras páginas del manual de red), pthreads(7), boot(7), regex(7), etc. Hay otras cosas en la sección 7, así como ascii(7)(tabla ASCII) y man(7)(cómo escribir una página del manual), pero las amplias docs páginas son, con mucho, Las cosas más útiles en la sección 7 en mi experiencia.
Kevin
31
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
Lo que significa que es ya se ha descrito, pero también quiere añadir que cada sección tiene página del manual especial con la introducción: intro. Por ejemplo, vea man 1 introo man 3 introy así sucesivamente.
No veo esto en mi instalación de Fedora. ¿La introducción de man X no es estándar?
beatgammit 01 de
@tjameson ¿Tiene el man-pagespaquete instalado?
php-coder
15
Desde la página del manmanual:
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, compárelo man crontabcon man 5 crontab: es probable que este último sea el que desea buscar.
¿Y dónde debo colocar mis propias páginas de manual ubicadas ~/man?
Tyilo
Sabía que había diferentes números, pero no sabía que había una rima. Gracias
user606723
1
1p es la versión estándar posix del manual. Si desea escribir código portátil, debe usar solo páginas de manual de Xp. Si su implementación no es compatible con posix, las páginas de manual de X y Xp pueden diferir.
andcoz
@Tyilo mira mi respuesta
Babken Vardanyan
8
Estos son los números de sección. Simplemente escriba man mano abra konqueror y escriba man: // man y verá cuáles son estas secciones.
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, por ejemplo, la Sección 1 incluye todas las páginas man de comandos de usuario, la Sección 2 todas las páginas 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
se muestra BASH_BUILTINS(1)en Fedora. Dónde
$ man 2 read
muestra la página del manual para la read()llamada al sistema.
Tenga en cuenta que la especificación posicional de la sección no es portátil; por ejemplo, en Solaris la especificaría así:
$ man -s 2 read
Por lo general, man mantambié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/mantiene 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 manprefijo 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:
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.
export MANSECT=0p:1:2:3:3p:4:5:6:7:8:9:l:s:n
Respuestas:
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 man (
man man
) lo explica y enumera los estándares:Hay ciertos términos que tienen diferentes páginas en diferentes secciones (por ejemplo,
printf
como aparece un comando en la sección 1, comostdlib
aparece una función en la sección 3); en casos como ese, puede pasar el número de secciónman
antes del nombre de la página para elegir cuál desea, o usarman -a
para mostrar cada página coincidente en una fila:Puede saber en qué secciones se encuentra un término
man -k
(equivalente alapropos
comando). También hará coincidencias de subcadenas (por ejemplo, se mostrarásprintf
si ejecutaman -k printf
), por lo que debe usar^term
para limitarlo:fuente
man X intro
describe lo que hay en la secciónX
.man man
... hasta ahora.La historia de estos números de sección se remonta al Manual del Programador Unix original de Thompson y Ritchie en 1971.
Las secciones originales fueron
fuente
pipe(7)
,tcp(7)
(y varias otras páginas del manual de red),pthreads(7)
,boot(7)
,regex(7)
, etc. Hay otras cosas en la sección 7, así comoascii(7)
(tabla ASCII) yman(7)
(cómo escribir una página del manual), pero las amplias docs páginas son, con mucho, Las cosas más útiles en la sección 7 en mi experiencia.Konqueror también describe secciones no estándar: (gracias a @ greg0ire por la idea)
fuente
Lo que significa que es ya se ha descrito, pero también quiere añadir que cada sección tiene página del manual especial con la introducción:
intro
. Por ejemplo, veaman 1 intro
oman 3 intro
y así sucesivamente.fuente
man-pages
paquete instalado?Desde la página del
man
manual: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, compárelo
man crontab
conman 5 crontab
: es probable que este último sea el que desea buscar.fuente
man1p
yman3p
?~/man
?Estos son los números de sección. Simplemente escriba
man man
o abra konqueror y escriba man: // man y verá cuáles son estas secciones.fuente
A menudo, se hace referencia a una página de manual mediante el sufijo con la sección entre paréntesis, por ejemplo:
Este estilo tiene dos ventajas principales:
Las páginas man están organizadas en secciones, por ejemplo, la Sección 1 incluye todas las páginas man de comandos de usuario, la Sección 2 todas las páginas 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:
se muestra
BASH_BUILTINS(1)
en Fedora. Dóndemuestra la página del manual para la
read()
llamada al sistema.Tenga en cuenta que la especificación posicional de la sección no es portátil; por ejemplo, en Solaris la especificaría así:
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:Los directorios con el
man
prefijo 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:(las secciones que terminan en
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:
Además, cada sección debe tener una página de manual de introducción denominada
intro
, por ejemplo, visible a través de:fuente
Las definiciones para SVr4 son:
Esta es la numeración real de un UNIX "genético". POSIX no define números.
fuente