¿Cuál es la diferencia entre `man` y` man (#) `?

31

Acabo de ver a alguien haciendo referencia man 7 regexen Stackoverflow. Intenté man regexy obtuve resultados muy similares, parece haber ligeras diferencias.

Entonces, ¿cuál es este número mágico 7? Buscar man 7 unixen Google me da resultados más misteriosos como UNIX (7) ...

Aditya MP
fuente

Respuestas:

33

Acerca de UNIX(7)

Para responder a su pregunta de "UNIX (7)", esta es la convención estándar de decir "La página de manual de UNIX en la sección 7 (miscelánea)".

Para abrir una página como init(8), deberá utilizar este comando: man 8 init.


man regex vs man 7 regex

Para responder a su pregunta sobre las "diferencias sutiles" entre man regexy man 7 regex:

manpor defecto abre la página con el número de sección más bajo . En este caso, es la sección 3 (llamadas a la biblioteca). Abrir la página desde la sección 7 (Varios) es bastante diferente.

Las páginas en diferentes secciones abordan diferentes cosas, aunque en este caso son similares, considere apt:

man -f apt:

apt (8)              - Advanced Package Tool
apt (1)              - annotation processing tool

En este ejemplo, la aptsección 8 (comandos de administración del sistema) no tiene ninguna relación con la página de la sección 1 (programas ejecutables o comandos de shell).

Para referencia futura, use man -f PAGE_NAMEpara ubicar todas las páginas con ese nombre en todas las secciones. Luego puede abrir una página desde la sección que desee man SECTION PAGE_NAME.

Secciones de la página de manual

Las distintas secciones de la página son las siguientes y se pueden encontrar en man man:

  1. Programas ejecutables o comandos de shell
  2. Llamadas del sistema (funciones proporcionadas por el núcleo)
  3. Llamadas a la biblioteca (funciones dentro de las bibliotecas de programas)
  4. Archivos especiales (generalmente encontrados en /dev)
  5. Formatos de archivo y convenciones, p. Ej. /etc/passwd
  6. Juegos
  7. Varios (incluidos macro paquetes y convenciones), por ejemplo man(7),groff(7)
  8. Comandos de administración del sistema (generalmente solo para root)
  9. Rutinas del kernel [No estándar]
kiri
fuente
14

Los números de sección

manmostrará la página de manual de cualquier sección, man 7mostrará la página de manual de la sección 7. Entonces, aquí 7 se refiere a la sección del comando particular para el que está buscando la página del manual.

Una sección, si se proporciona, indicará al hombre que busque solo en esa sección del manual.


Las secciones

Consulte la siguiente tabla para ver los números de sección del manual seguidos de los tipos de páginas que contienen.

1: Programas ejecutables o comandos de shell

2: llamadas al sistema (funciones proporcionadas por el núcleo)

3: llamadas a la biblioteca (funciones dentro de las bibliotecas de programas)

4: archivos especiales (generalmente se encuentran en / dev)

5: Formatos de archivo y convenciones, por ejemplo, / etc / passwd

6: juegos

7: Varios (incluidos los paquetes de macros y convenciones), por ejemplo, man (7), groff (7)

8: Comandos de administración del sistema (generalmente solo para root). Resumen de varios temas, convenciones y protocolos, estándares de juego de caracteres y otras cosas diversas.

9: rutinas del núcleo [no estándar]


Comandos en más de una sección.

En la mayoría de los casos, querrá usar el mancomando sin n adicional . Sin embargo, en algunos casos aparecerá un comando en más de una sección. Por ejemplo, si emite el comando man open, obtiene la página de manual para openvt de la sección 1. Pero si necesita ver la página de manual para abrir como un comando C (o llamada al sistema, según la tabla anterior), debe emitir man 2 open.

Un ejemplo muy similar será man printfy man 3 printf. Emita los comandos y vea por usted mismo la diferencia en la salida.


Tu problema de man 7 unix (UNIX (7))

Entonces, ese UNIX (7) significa que pertenece a la sección 7.


¿Qué sección se mostrará por defecto si no proporciono un número de sección?

La acción predeterminada es buscar en todas las secciones disponibles, siguiendo un orden predefinido y mostrar solo la primera página encontrada, incluso si la página existe en varias secciones.


¿Cómo sé el número de sección de un comando?

Si necesita averiguar en qué secciones se encuentra un término / comando man -k(equivalente al comando apropiado). Por lo tanto, man -k printf buscará en las descripciones cortas y en los nombres de las páginas del manual la palabra clave printf como expresión regular. Imprime cualquier partido. (Equivalente a apropos -r printf). Ejecute el comando, vea la tonelada que obtiene. Si necesita evitar coincidencias de subcadenas (por ejemplo, mostrará sprintf si corre man -k printf), por lo que debe usar ^termpara limitarlo, como se muestra a continuación,

man -k '^printf'
Printf (3o)          - Formatted output functions.
printf (1)           - format and print data
printf (3)           - formatted output conversion

Comando relacionado

Un comando relacionado es el aproposindicado anteriormente, que busca los nombres y descripciones de las páginas del manual. Si no está seguro de qué página de manual está buscando pero tiene una idea general, use este comando.

Masroor
fuente
Pero la documentación regexno tiene 7 secciones ...
Aditya MP
@adityamenon Por favor, vea la respuesta actualizada, se publicó antes de terminar.
Masroor
Ya veo, así que una 'Sección' aquí significa "clasificación del programa".
Aditya MP
@adityamenon Correcto, me hubiera sentido más cómodo con el término que está utilizando.
Masroor
Específicamente, "sección" aquí significa "sección del Manual", como si todas las páginas del manual estuvieran en un solo manual impreso (grueso)
Jonathan Callen