La herramienta man
de los sistemas GNU/Linux contiene documentación sobre los comandos, directorios, archivos, variables, llamadas al sistema, etc., que residen en el sistema operativo. Es de gran ayuda cuando se necesita utilizar un comando que no necesariamente dominamos, o bien que no tenemos presente todo el tiempo y por eso no conocemos toda la gama de opciones que nos ofrece el mismo.
En muchas ocasiones se utiliza este manual con comandos que ya se conocen y solo quieren recordar algunas opciones que saben que soporta dicho comando, sin embargo, el poder de esta herramienta va más allá. Contrario del uso común del comando, su verdadero poder radica en utilizarlo cuando no se sabe cómo y con qué realizar una actividad. Por esa razón en esta nota se abordará el uso de man
con la intención de aprender a nevegar en él y no quebrarse la cabeza cuando solo se tenga acceso a una terminal sin internet.
Antes de comenzar es necesario que revises que en efecto tienes todas las páginas de man instaladas y que además estén en el idioma de tu preferencia, por defecto se encuentran en inglés pero con un par de comandos puedes cambiarlas al idioma español.
Probemos el siguiente comando en la terminal:

Como se observa en la imagen, la página del manual del comando ls
se encuentra en el idioma inglés, así que es momento de cambiarlo al idioma español.
Para distribuciones basadas en Debian, basta con ejecutar el siguiente comando:
$ sudo apt-get install manpages-es manpages-es-extra
Una vez instaladas para activarlas ejecutamos:
$ export LANG=es_ES.UTF-8
Probemos el comando anterior nuevamente:

Por ejemplo, probemos con algunos comandos que aprendimos en la temporada pasada de esta serie.
$ man sort
$ man cut
$ man grep
$ man cat
$ man find
Muchas de las aplicaciones que se tienen en un sistema operativo GNU/Linux, aportan su propio manual al cual se puede acceder con el mismo comando. Por mencionar algunos:
$ man python
$ man perl
$ man bash
$ man vim
$ man dropbox
$ man git
$ man virtualbox
Pero qué pasa si ejecutamos el siguiente comando:
$ man printf
En efecto muestra la documentación de printf
, sin embargo, tanto Bash como C tienen su propia implementación de la función printf
, así que ¿cuál de los dos es? Antes de responder esta pregunta veamos más sobre el tema.
Secciones de las páginas man
Para saber más acerca de este comando, también podemos utilizar dicho comando:
$ man man
En su documentación se puede observar que consta de las siguientes secciones.
- Programas ejecutables y guiones del intérprete de comandos: esta sección sirve para conocer todos lo comandos generales de los que disponemos, en este caso son los comandos que son interpretados en la terminal, es decir, los de Bash.
- Llamadas del sistema: esta sección contiene todas las funciones de servicio que provee el núcleo (kernel) del sistema operativo.
- Llamadas de la biblioteca: esta sección contiene documentación de las funciones disponibles en las bibliotecas instaladas en el sistema.
- Archivos especiales: esta sección contiene documentación de dispositivos y drivers que pueden ser encontrados por lo regular bajo el directorio /dev.
- Convenios y formatos de archivos: en esta sección se encuentran los formatos de ciertos archivos y sus convenciones, por ejemplo: el archivo passwd.
- Juegos y salvapantallas.
- Miscelánea: en esta sección se encuentra la documentación de paquetes de macros, de convenios y de procesamiento de palabras.
- Administración del sistema: en esta sección se encuentra la documentación de procedimientos y comandos de administración del sistema, y demonios. Generalmente son solo para el usuario root.
- Rutinas del kernel: documentación de las rutinas del núcleo del sistema.
Navegando por la carpeta de las páginas man
En la imagen se observa que existe una carpeta para cada sección del manual.

Vamos a ver que contiene la carpeta man1
. Y buscamos específicamente las líneas que contengan la palabra printf
.
$cd man1
$ ls | less
$ /\<printf

Ahora revisemos qué contiene la carpeta man3
y volvemos a buscar las líneas que contengan la palabra printf
.
$ cd ..
$ cd man3
$ ls | less
$ /\<printf

Acertijo: ¿Sabes cuál de los printf es el que se mostró cuando ejecutaste $ man printf?
Respuesta:
Es muy importante conocer qué contiene cada sección, ya que de ello dependerá que obtengamos la información que necesitamos y no la que coincida con el patrón. Como se observó en las imágenes anteriores tanto man1
que corresponde a la sección 1, como el man3
que corresponde a la sección 3; contienen información de printf
, sin embargo, la primera es sobre la función de Bash y la tercera es muy probablemente sobre la función de C. Entonces, si se desea obtener información de alguna sección en particular se puede escribir el comando de la siguiente manera:
$ man [n] printf
Donde n es el número de sección.
$ man 3 printf
Muestra la información de la función printf
de C.

$ man 1 printf
Muestra la información de la función printf
de Bash, cuando se omite el número de sección mostrará la primera sección en la que encontró el comando solicitado.

En esta nota aprendiste cómo utilizar el comando man
, las secciones que contiene y cómo está clasificada la información dentro de ellas. Las ventajas que te proporciona el conocer cómo está estructurada la información y las diferencias entre buscar un comando en una u otra sección. Te recomiendo que navegues por cada una de las subcarpetas que contiene la carpeta usr/share/man
para que descubras por ti mismo, qué documentación puedes encontrar en cada una de ellas y que en efecto es compatible con la descripción que da el comando $ man man
. Si quieres conocer más sobre este tema puedes revisar la siguiente nota Terminal: revisando el manual de usuario.
Después de esta breve pausa, en la siguiente nota continuaremos con la sintaxis de Bash: entrada y salida. ¡Hasta pronto!