Formas de encontrar ayuda en Linux y Unix

Unix HELP!Si hay algo que todo administrador de sistemas tiene claro es que es imposible saberlo todo, lo que hay que saber es buscar. Los sistemas Linux y Unix cuentan con métodos de ayuda integrados que nos explican al detalle las funcionalidades de los comandos y servicios, sus ficheros de configuración, directivas, el modo de usarlos, etc.

Páginas man

Las páginas man (manual) nos ofrecen toda esta información detallada, su modo de uso es el siguiente:

$ man COMANDO

Si por ejemplo quisiéramos ver la ayuda del comando grep ejecutaríamos lo siguiente:

$ man grep

Una vez dentro, siempre tendremos unas secciones claramente diferenciadas como por ejemplo NAME, SYNOPSIS, DESCRIPTION, etc. Si tenéis conocimientos básicos de vim podréis navegar a través de ellas del mismo modo que en el editor. Para movernos usaremos las teclas de desplazamiento, para buscar ESC + / + cadena a buscar, tecla ‘n’ para movernos entre los resultados, etc.

A la hora de acceder a las páginas man tenemos la posibilidad de acceder directamente a la sección X, si quisieramos acceder a la sección 3 de la página man de grep:

$ man 3 grep

Las secciones para BSD, Unix y Linux son las siguientes:

  1. Comandos disponibles
  2. Llamadas Unix y C del sistema
  3. Rutinas en C para programas en C
  4. Nombres de fichero especiales
  5. Formatos de fichero y convenciones para ficheros usados por Unix
  6. Juegos y salvapantallas
  7. Paquetes de procesamiento de palabras
  8. Procedimientos y comandos para administradores de sistemas

También podemos buscar en las páginas man a través de palabras clave mediante el parámetro -k seguido de las palabras:

$ man -k regexp
regexp_table (5)     - format of Postfix regular expression tables

Y para ficheros de configuración el parámetro -f:

$ man -f resolv.conf

El comando apropos

Ya hablé hace tiempo de él, entrad aquí para más información: apropos: buscador de comandos en la shell.

Apropos es un comando que busca dentro de las descripciones de cada una de las páginas man las palabras claves que le indiquemos pasándolas como argumentos. Estas palabras claves pueden contener comodines o ser la palabra clave exacta.

$ apropos "copy files"
cp (1)               - copy files and directories
cpio (1)             - copy files to and from archives
install (1)          - copy files and set attributes

Comando seguido de –help ó -h, -?

Si a cualquier comando le añadís el parámetro --help ó -h recibiréis ayuda por pantalla sobre el mismo. Un ejemplo de la ayuda del comando ps:

$ ps --help
********* simple selection *********  ********* selection by list *********
-A all processes                      -C by command name
-N negate selection                   -G by real group ID (supports names)
-a all w/ tty except session leaders  -U by real user ID (supports names)
-d all except session leaders         -g by session OR by effective group name
-e all processes                      -p by process ID
T  all processes on this terminal     -s processes in the sessions given
a  all w/ tty, including other users  -t by tty
g  OBSOLETE -- DO NOT USE             -u by effective user ID (supports names)
r  only running processes             U  processes for specified users
x  processes w/o controlling ttys     t  by tty
*********** output format **********  *********** long options ***********
-o,o user-defined  -f full            --Group --User --pid --cols --ppid
-j,j job control   s  signal          --group --user --sid --rows --info
-O,O preloaded -o  v  virtual memory  --cumulative --format --deselect
-l,l long          u  user-oriented   --sort --tty --forest --version
-F   extra full    X  registers       --heading --no-heading --context
                    ********* misc options *********
-V,V  show version      L  list format codes  f  ASCII art forest
-m,m,-L,-T,H  threads   S  children in sum    -y change -l format
-M,Z  security data     c  true command name  -c scheduling class
-w,w  wide output       n  numeric WCHAN,UID  -H process hierarchy

El comando whatis

También hablé de él en su día, pinchad aquí: whatis: Descubre para qué sirve un comando.

whatis es un comando que muestra una línea con un resumen de lo que hace el comando que le pasas como parámetro. Normalmente muestra la definición disponible del comando en su página man.

$ whatis cat
cat (1)              - concatenate files and print on the standard output

El comando whereis

Comando también tratado en el blog: Whereis, encuentra binarios, sources o páginas de ayuda en Linux / Unix.

whereis permite localizar los binarios, páginas de ayuda y sources de lo que le pasemos por parámetro.

-b Busca únicamente binarios.
-m Busca únicamente manuales y páginas de ayuda.
-s Busca únicamente sources.
-B Buscar los binarios exclusivamente en una determinada ubicación.
-M Buscar los manuales exclusivamente en una determinada ubicación.
-S Buscar las sources exclusivamente en una determinada ubicación.
-f Debe ser usado obligatoriamente cuando usamos las opciones -B, -M, o -S. Indica que hemos terminado de especificar las rutas en las que buscar y que vamos a decir ya el fichero a buscar.

Y algunos ejemplos que puse en la entrada que he citado antes:

¿Dónde están los binarios, sources o manuales de perl?

$ whereis perl
perl: /usr/bin/perl /etc/perl /usr/lib/perl /usr/share/perl /usr/share/man/man1/perl.1.gz

Buscar el manual de los archivos del directorio en el que nos encontramos:

$ whereis -u -M /usr/man/man1 -S /usr/src -f *

Buscar el path del binario de top:

$ whereis -b top
top: /usr/bin/top

Y su página de ayuda man:

$ whereis -m top
top: /usr/share/man/man1/top.1.gz

Y si esto no es suficiente para encontrar la información que necesitáis… ¡siempre podéis recurrir a Google!