03. Bash: manual en línea

Publicado por

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 mancon 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:

 
$ man ls

man-ls-ingles

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:

$ man ls

¡Listo! Ya tenemos instaladas correctamente las páginas del manual, sin embargo, toma en cuenta que no todas se encuentran traducidas.

man-ls-espanol

man

$ man [comando]

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.

  1. 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.
  2. Llamadas del sistema: esta sección contiene todas las funciones de servicio que provee el núcleo (kernel) del sistema operativo.
  3. Llamadas de la biblioteca: esta sección contiene documentación de las funciones disponibles en las bibliotecas instaladas en el sistema.
  4. Archivos especiales: esta sección contiene documentación de dispositivos y drivers que pueden ser encontrados por lo regular bajo el directorio /dev.
  5. Convenios y formatos de archivos: en esta sección se encuentran los formatos de ciertos archivos y sus convenciones, por ejemplo: el archivo passwd.
  6. Juegos y salvapantallas.
  7. Miscelánea: en esta sección se encuentra la documentación de paquetes de macros, de convenios y de procesamiento de palabras.
  8. 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.
  9. Rutinas del kernel: documentación de las rutinas del núcleo del sistema.

Navegando por la carpeta de las páginas man

$ cd /usr/share/man
$ ls

En la imagen se observa que existe una carpeta para cada sección del manual.

carpeta-paginas-man

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

man1-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

man3-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.

info-man3-printf

$ 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.

info-man1-printf

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!

 

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *