Estoy mirando la -f
bandera del hombre que se describe como:
-f, --whatis
Equivalent to whatis. Display a short description from the manual page, if available. See whatis(1) for details.
Cuando uso -f
entradas, siempre tengo un corchete al final y, a veces, aparecen varias entradas.
Ejemplos de man -f
resultados:
man -f grep
:
grep (1) - print lines matching a pattern
man -f man
:
man (7) - macros to format man pages
man (1) - an interface to the on-line reference manuals
man -f git
:
Git (3pm) - Perl interface to the Git version control system
git (1) - the stupid content tracker
Supongo que todas las descripciones de programas normales se muestran con (1)
.
¿Alguien puede explicar qué otras listas se buscan y cómo identificar qué significan los diferentes números entre paréntesis?
Nota: También noté que para git puedo obtener la página del manual (3:00 p.m.) haciendo en man Git
lugar de man git
. Parece contrario a la intuición que man git
incluiría el manual git
pero no Git
dónde, ya que man -f git
devuelve información sobre ambos.
Respuesta1
Lo que está en los pares (que en algunos sistemas puede ser una combinación de letras y números, pero la mayoría de las veces es solo un dígito) se refiere a unsección en el manual. "El manual" es el volumen combinado de manuales disponibles.
En mi sistema OpenBSD, estas secciones se citan en el man(1)
manual (también conocido como "el manual del man
comando", que puede leer con man man
):
1 General commands (tools and utilities).
2 System calls and error numbers.
3 Library functions.
3p perl(1) programmer's reference guide.
4 Device drivers.
5 File formats.
6 Games.
7 Miscellaneous information.
8 System maintenance and operation commands.
9 Kernel internals.
Los números de sección son prácticamente los mismos en todos los sistemas, pero puede haber pequeñas desviaciones. Las secciones no están estandarizadas, al menos no por POSIX, por lo que creo que son en su mayoría tradicionales.
En ocasiones, tendrás que saber qué sección estás buscando. Éste es el caso printf
, por ejemplo, del manual. printf(1)
se refiere a la printf
utilidad del shell, mientras que printf(3)
describe la rutina de la biblioteca printf()
C. Si escribe man printf
, probablemente obtendrá printf(1)
. Para obtener el manual de la función de la biblioteca C, utilice man 3 printf
.
Las secciones parecen haber sido introducidas con la Tercera Edición de UNIX que salió de Bell Labs en 1971 (el primer UNIX escrito en C y no en lenguaje ensamblador).
El manual de la Tercera Edición UNIX conteníalas siguientes secciones:
I. Commands
II. System calls
III. Subroutines
IV. Special files
V. File formats
VI. User-maintained programs
VII. Miscellaneous
VIII. Maintenance
Respuesta2
extracto de man man
(5 párrafo):
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 conventions), e.g. man(7), groff(7)
8 System administration commands (usually only for root)
9 Kernel routines [Non standard]
Respuesta3
Los números se refieren a qué sección del manual proviene la información (originalmente, qué volumen físico del conjunto de manuales tenía en el estante).
De 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 conventions), e.g. man(7),
groff(7)
8 System administration commands (usually only for root)
9 Kernel routines [Non standard]
Posteriormente se agregaron algunas "secciones" adicionales. Por ejemplo, (3pm)
en el texto citado anteriormente se refiere a un módulo (o biblioteca) de Perl.
Respuesta4
El número después del comando le indica en qué sección de las páginas man se encuentra la documentación para ese comando... por ejemplo, grep(1) significa que la página man para grep se puede encontrar en la sección 1 de las páginas man.
Diferentes versiones de UNIX y diferentes distribuciones de Linux tienen diferentes convenciones en cuanto a qué documentación de comandos va en qué sección.