Comando man: uso y opciones, números de sección y búsqueda con man -k
Para consultar cómo se usa un comando o un archivo de configuración en un servidor Linux, se abre su página de manual con el comando man y, cuando no se conoce el nombre, se buscan las descripciones cortas con man -k. Al buscar la página de passwd en servidores AlmaLinux 9 y Debian 12, Debian 12 tenía tanto la página de comandos de la sección 1 como la de formatos de archivo de la sección 5, mientras que AlmaLinux 9 no tenía página en la sección 5.
La salida de abajo se obtuvo en un servidor AlmaLinux 9.8 con la cuenta root y en un servidor Debian 12 con una cuenta normal. El nombre de host y la dirección de conexión del simulador son valores de ejemplo.
1️⃣ Uso básico del comando man
Al escribir el nombre de un comando después de man se abre la página de manual de ese comando. man pasa la página a un programa paginador que la muestra pantalla a pantalla, así que no vuelve al prompt nada más ejecutarse. El paginador se define con la variable de entorno MANPAGER o PAGER y, si las dos están vacías, se usa less.
Si la salida se envía por una tubería, sale solo el texto, sin paginador. Al recoger con head las 12 primeras líneas de [man ls], la primera línea tenía LS(1) y después venían en orden las secciones NAME, SYNOPSIS y DESCRIPTION.
man ls | head -n 12LS(1) User Commands LS(1)
NAME
ls - list directory contents
SYNOPSIS
ls [OPTION]... [FILE]...
DESCRIPTION
List information about the FILEs (the current directory by default).
Sort entries alphabetically if none of -cftuvSUX nor --sort is speci-
fied.El número 1 entre paréntesis de LS(1) en la primera línea es el número de la sección que contiene esta página.
Dentro de una página, [Space] muestra la pantalla siguiente y [/palabra] seguido de Enter busca una palabra. [n] pasa al siguiente lugar donde aparece la misma palabra y [q] cierra man.
Si se escribe un nombre que no existe, aparece el error [No manual entry for], y el código de salida fue 16.
man no-such-cmd9No manual entry for no-such-cmd9echo $?16La sección EXIT STATUS de la página de man describe 16 como el valor que se devuelve cuando no se encuentra al menos una de las páginas, archivos o palabras. Un error de uso es 1, así que un script puede tratar los dos casos por separado.
2️⃣ Números de sección de man
Cuando hay páginas con el mismo nombre en varias secciones, man busca en las secciones siguiendo un orden fijo y abre solo la primera página que encuentra. Las secciones van de la 1 a la 9, y las que más se abren al trabajar en servidores son la 1 de comandos, la 5 de formatos de archivo y la 8 de comandos de administración.
| Sección | Páginas que contiene | Ejemplo visto en el servidor AlmaLinux 9.8 |
|---|---|---|
| 1 | Programas ejecutables y comandos del shell | ls, passwd, crontab, man |
| 2 | Llamadas al sistema (funciones que ofrece el kernel) | |
| 3 | Funciones de biblioteca | |
| 4 | Archivos especiales (normalmente bajo /dev) | |
| 5 | Formatos de archivo y convenciones, p. ej. /etc/passwd | crontab |
| 6 | Juegos | |
| 7 | Varios (paquetes de macros y convenciones) | |
| 8 | Comandos de administración del sistema, normalmente para root | useradd, mandb |
| 9 | Rutinas del kernel (no estándar) |
crontab tiene páginas en dos secciones porque el comando y el formato del archivo de configuración llevan el mismo nombre. Al comprobarlo con [man -f crontab], salieron juntas las líneas de las secciones 1 y 5.
man -f crontabcrontab (1) - maintains crontab files for individual users
crontab (5) - files used to schedule the execution of programsAl ejecutar [man crontab] sin número de sección se abre la página del comando crontab de la sección 1. Para ver el formato del archivo de tareas programadas, se escribe 5 delante del nombre.
man 5 crontab | head -n 4CRONTAB(5) File Formats CRONTAB(5)
NAME
crontab - files used to schedule the execution of programsLa primera línea cambió a CRONTAB(5) y File Formats, y en la línea NAME también salió la descripción del archivo de tareas programadas en lugar de la del comando.
Si en la sección indicada no hay una página con ese nombre, aparece un error. Al ejecutar [man 5 passwd] en el servidor AlmaLinux 9.8 para ver el formato del archivo /etc/passwd, salió un error que decía que no había página en la sección 5.
man 5 passwdNo manual entry for passwd in section 5En el servidor Debian 12, [man -f passwd] mostró también la línea de passwd de la sección 5. En qué secciones hay página depende de los manuales instalados en el servidor, así que antes de añadir un número de sección conviene comprobarlo con [man -f].
man -f passwdpasswd (1) - change user password
passwd (1ssl) - OpenSSL application commands
passwd (5) - the password fileLa sección 8 contiene comandos de administración que ejecuta sobre todo la cuenta root, como useradd, que crea cuentas.
man -f useradduseradd (8) - create a new user or update default new user information3️⃣ Opciones del comando man y búsqueda con -k y -f
[man -f] muestra la descripción de una línea de las páginas con el mismo nombre y funciona igual que whatis. Al ejecutar [man -f passwd] y [whatis passwd] en el servidor AlmaLinux 9.8, salieron las mismas dos líneas.
man -f passwdpasswd (1) - update user's authentication tokens
passwd (1ossl) - OpenSSL application commandsLa línea 1ossl es la página de un comando de OpenSSL que comparte el nombre passwd.
Cuando no se conoce el nombre, [man -k] busca en los nombres de página y en las descripciones cortas. Funciona igual que apropos, y la palabra se lee como una expresión regular.
man -k '^passwd'passwd (1) - update user's authentication tokens
passwd (1ossl) - OpenSSL application commands^ indica el principio de la línea, así que solo salieron las líneas que empiezan por passwd. También se puede buscar por una palabra de la descripción: [man -k 'directory contents'] encontró las páginas dir y vdir junto con ls.
man -k 'directory contents'dir (1) - list directory contents
ls (1) - list directory contents
vdir (1) - list directory contents[man -k] busca solo en las descripciones cortas de la sección NAME, así que no encuentra una página por el nombre de una opción ni por una palabra del texto. [man -K], que busca también en el texto, lee todas las páginas una a una y tarda mucho.
Si la palabra buscada no aparece, sale [nothing appropriate], y el código de salida fue 16.
man -k no-such-word9no-such-word9: nothing appropriate.echo $?16[man -w] muestra solo la ubicación del archivo de origen, sin abrir la página.
man -w ls/usr/share/man/man1/ls.1.gzman -w 5 crontab/usr/share/man/man5/crontab.5.gzLos dos archivos estaban en las carpetas man1 y man5 bajo /usr/share/man, y el número del nombre de la carpeta coincidía con el número de sección. El archivo de la página 1ossl, encontrado con [man -w 1ossl passwd], también estaba en la carpeta man1, la misma que la sección 1.
Las opciones están reunidas en las dos pestañas de abajo.
| Opción | Copiar | Descripción |
|---|---|---|
| -f, --whatis | Muestra la descripción de una línea de las páginas con el mismo nombre. Igual que whatis | |
| -k, --apropos | Busca en los nombres de página y en las descripciones cortas. Igual que apropos | |
| -w, --where, --path, --location | Muestra solo la ubicación del archivo de origen, sin abrir la página | |
| -a, --all | Muestra una tras otra todas las páginas cuyo nombre coincide |
| Opción | Copiar | Descripción |
|---|---|---|
| -K, --global-apropos | Busca una palabra en el texto de todas las páginas. Tarda mucho | |
| -S, -s, --sectionslista | Indica las secciones en las que buscar y su orden como una lista separada por comas o dos puntos | |
| -P, --pagerpaginador | Indica el paginador con el que se muestra la página. El valor predeterminado es less | |
| -M, --manpathruta | Indica la ruta de manuales donde buscar las páginas | |
| -L, --localelocale | Indica el locale que se usa en esta ejecución | |
| -l, --local-file | Muestra como página el archivo indicado, sin buscar en los manuales del sistema | |
| -u, --update | Actualiza las cachés de índice de las páginas instaladas | |
| -V, --version | Muestra la información de versión |
🔲 Simulador del comando man
En el simulador de abajo se puede abrir una página con [man ls] y pasar las pantallas con los chips [Space], [/list], [n] y [q]. En el mismo servidor virtual se puede añadir un número de sección, como en [man 5 crontab], o escribir [man -f], [man -k] y [man -w].
4️⃣ Estructura de una página de man
Una página de man se divide en secciones con títulos en mayúsculas. Al extraer solo los títulos con grep y compararlos, la página de ls tenía la descripción de las opciones dentro de DESCRIPTION, mientras que la página de crontab tenía una sección OPTIONS aparte.
man ls | grep -E '^[A-Z]+( [A-Z]+)*$'NAME
SYNOPSIS
DESCRIPTION
AUTHOR
REPORTING BUGS
COPYRIGHT
SEE ALSOman crontab | grep -E '^[A-Z]+( [A-Z]+)*$'NAME
SYNOPSIS
DESCRIPTION
OPTIONS
CAVEATS
SEE ALSO
FILES
STANDARDS
DIAGNOSTICS
AUTHORLos nombres de las secciones cambian un poco de una página a otra, y las más habituales son las siguientes.
| Sección | Contenido |
|---|---|
| NAME | Nombre y descripción de una línea (la línea que muestran man -f y man -k) |
| SYNOPSIS | Forma de escribir el comando |
| DESCRIPTION | Descripción del funcionamiento (la página de ls incluye aquí también las opciones) |
| OPTIONS | Un párrafo por opción |
| EXIT STATUS | Significado de los códigos de salida |
| FILES | Archivos que el comando lee o escribe |
| SEE ALSO | Páginas relacionadas |
Los símbolos de SYNOPSIS siguen reglas fijadas por la página de man. Lo que va entre corchetes se puede omitir. Las opciones separadas por una barra vertical (|) no se pueden usar juntas, y un argumento seguido de tres puntos (...) se puede escribir varias veces.
La SYNOPSIS de ls es ls [OPTION]... [FILE]..., así que tanto las opciones del comando como los argumentos de línea de comandos, por ejemplo los nombres de archivo, se pueden omitir todos o escribir varias veces.
[--help] es un resumen de uso que imprime el propio programa, así que sale directamente en la terminal, sin paginador. El Usage de la primera línea de [ls --help] tenía la misma forma que SYNOPSIS, y la salida completa ocupaba 121 líneas, menos que las 245 de [man ls].
ls --help | head -n 3Usage: ls [OPTION]... [FILE]...
List information about the FILEs (the current directory by default).
Sort entries alphabetically if none of -cftuvSUX nor --sort is specified.Una página de man tiene además secciones que no están en [--help], como AUTHOR y SEE ALSO. Para ver rápido una sola opción sirve [--help], y cuando hace falta una explicación dividida en secciones, como el formato de un archivo de configuración o los códigos de salida, se abre man.
🔢 FAQ & contenido recomendado
Programar tareas
Linux: configurar crontab
Cómo programar con el comando crontab las tareas del servidor para que se ejecuten a una hora fijada.
Encontrar ubicaciones
which, whereis y locate en Linux: 3 comandos para ver la ubicación (ruta)
Comandos para encontrar en qué ruta están el archivo ejecutable y el archivo de manual de un comando.
Enviar la salida
Redirección en Linux (Redirection)
El flujo de la entrada estándar y la salida estándar con el que la salida de un comando se envía a un archivo o a otro comando.
ℹ️ Aviso de afiliados
El contenido de este sitio incluye enlaces de afiliado. Cuando un visitante compra un producto o servicio a través de uno de ellos, el sitio recibe una comisión del vendedor. El importe que paga el comprador(baja durante las promociones ↓)no aumenta. Los precios, descuentos y existencias publicados corresponden al momento de redacción y pueden variar, así que confírmalos con el vendedor antes de comprar. Los productos se eligen y evalúan con criterios propios, y las comisiones no influyen en el orden ni en el contenido de las reseñas.