Todo lo que siempre quisiste saber sobre man pero no te atreviste a hacer un man man

Las paginas man son una lectura muy interesante. Si te aburres siempre puedes mirarte alguna de forma aleatoria.

# Abrir de forma aleatoria una página man

$ man $(basename $(find /usr/share/man/ -type f |sort -R|head -n1) | sed 's/\.[^.]*\.bz2$//' | cut -d "." -f 1)

# Imprimir un man

Por ejemplo así:

$ man -t ls | lpr -P m2026w

Véase post sobre como configurar impresora aquí. En mi caso m2026w (una samsung laser blanco y negro).

En realidad lo que hace es renderizar el man en formato ps.

# Convertir a ps y pdf un manual

$ man -t ls > ls.ps
$ man -t ls | ps2pdf - ls.pdf

# Abrir un manual

Con la herramienta man. Ejemplos:

$ man ls
$ man man
$ man hexdump
$ man nano

# Cerrar un manual

Se puede salir de un manual pulsando la tecla "Q".

# Abrir un manual de una determinada categoría:

Por ejemplo puede ocurrir que al abrir el manual de time nos abra time(2) y puede que no sea el que deseamos. Por ejemplo podemos encontrar time (2) y time (7).

Podemos abrir time indicando la categoría si no nos cuadra el resultado que nos ofrece man al no especificar la sección:

$ man
$ man 7 time
$ man 2 time

Los manuales están categorizados normalmente en 8 categorías numeradas de 1-8 (si vemos un 9 en algún man quizás sean rutinas del núcleo pero no es estándar):

1   Programas ejecutables y guiones del intérprete de órdenes
2   Llamadas del sistema (funciones servidas por el núcleo)
3   Llamadas de la biblioteca (funciones contenidas en las bibliotecas del sistema)
4   Ficheros especiales (se encuentran generalmente en /dev)
5   Formato de ficheros y convenios p.ej. I/etc/passwd
6   Juegos
7   Paquetes de macros y convenios p.ej. man(7), groff(7).
8   Órdenes de admistración del sistema (generalmente solo son para root)
9   Rutinas del núcleo [No es estándar]

# Probar un comandos mientras leemos el manual:

Esto se hace pulsando ! y luego escribiendo el comando. Comandos como cat a secas o por ejemplo hexdump tendremos que terminarlos con control+D para poder regresar.

Suele ser de utilidad para mientras se mira el manual de un comando probarlo sin tener que cerrar la consola o cambiar a otra.

# Visualizar manuales desde el navegador

Algunos navegadores como konqueror, firefox, … nos permitirán poder visualizarlos en local escribiendo por ejemplo man:uniq.
Otra opción es buscar los manuales de linux online. Existen bastantes webs aunque lo recomendable es confiar en los que nos ofrece nuestra distro ya que podríamos estar mirando un man para una versión muy antigua de una aplicación.

# Los manuales en castellano

En GNU/Linux Debian se pueden instalar así:

# apt-get install manpages-es manpages-es-extra

# Whatis y apropos utilizando man
Los comandos whatis y apropos según whatis hacen lo siguiente:

whatis (1) - imprime descripciones de páginas de manual
apropos (1) - buscar entre las páginas del manual y las descripciones

Podemos hacerlo desde man.

Por ejemplo para imprimir descripciones de páginas de manual especificas:

$ man -f whatis
whatis (1)           - imprime descripciones de páginas de manual

$ man -f man
man (1)              - una interfaz de los manuales de referencia electrónicos
man (7)              - macros para formatear páginas del manual

$ man -f printf
printf (3)           - conversión de salida formateada
printf (1)           - formatea e imprime datos

$ man -f ls
ls (1)               - listan los contenidos de directorios

Para buscar en todos los manuales una palabra (realizará una búsqueda binaria pre-ordenada en /var/cache/man/index.db ):

$ man -k quake
darkplaces (6)       - an engine for iD software's Quake and related games
quakespasm (1)       - an engine for iD software's Quake

$ man -k zcat
bzcat (1)            - descomprime ficheros hacia la salida estándar
zcat (1)             - comprimen o expanden ficheros
lzcat (1)            - Compress or decompress .xz and .lzma files
xzcat (1)            - Compress or decompress .xz and .lzma files
zcat.gzip (1)        - compress or expand files

$ man -k tarcat
tarcat (1)           - concatenates the pieces of a GNU tar multi-volume archive

# Ver todas las páginas llamadas igual pero en diferentes categorías

Eso se hace con -a. Por ejemplo:

$ man -a time

Tras leer una seguiremos en otra y otra hasta terminar.

# La ruta de los man

La podemos conocer usando manpath

$ manpath 
/usr/local/man:/usr/local/share/man:/usr/share/man

# Comandos internos de bash

Bash por ejemplo incorpora una serie de comandos “internos” como por ejemplo estos:


alias, bg, bind, break, builtin, case, cd, command, continue, declare, dirs, disown, echo, enable, eval, exec, exit, export, fc, fg, for, getopts, hash, help, history, if, jobs, kill, let, local, logout, popd, pushd, pwd, read, readonly, return, set, shift, shopt, source, suspend, test, times, trap, type, typeset, ulimit, umask, unalias, unset, until, wait, while

Si por ejemplo hacemos esto obtendremos la versión del programa echo:

$ /bin/echo --version

Si realizamos esto otro NO nos mostrará posiblemente la versión:

$ echo --version 

Digamos que si esto ocurre es que estamos usando el echo de bash y no el que tenemos en /bin/ perteneciente a las gnu core utils. Esto ocurrirá si estamos usando bash evidentemente (y es muy posible al ser el interprete que suele venir en la mayoría de distros GNU/Linux).

Igualmente para comprobar si un comando es interno o no lo es podemos usar type. por ejemplo: type echo

Para ver información sobre estos programas internos de bash:

$ man builtins

# Movernos rápidamente en un man

Con la tecla cursor arriba y cursor abajo nos moveremos de una en una linea. Esto es lento si queremos por ejemplo llegar al final del manual para ver por ejemplo la autoría.

Para ir rápidamente al final podemos dejar presionada la tecla F (o espacio). Para ir al principio del documento la G.

# Los man se parecen mucho al paginador less

Eso es porque realmente estamos usando less. Man usa less como paginador de modo que si abres un archivo con less podrás moverte rápidamente por el documento y salir pulsando Q.

$ less nombrearchivodetexto

# Usar man con otro paginador

Por ejemplo con more así:

$ man -P /bin/more export

No nos olvidemos que si usamos el paginador more con man vamos a poder buscar dentro del manual usando / y luego escribiendo lo que deseamos.

Y más o menos con eso se puede decir que sabemos manejar man. Crear los archivos man mejor en otro articulo para que esto no se haga demasiado largo.

Saludos cordiales.

Deja un comentario

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