Las páginas de manual son uno de los recursos más útiles cuando se trata de comprender las utilidades de la línea de comandos. Sin embargo, una página de manual contiene muchos detalles sobre el comando. Puede haber momentos en los que desee saber rápidamente (puede ser en una línea pequeña) qué hace una herramienta de línea de comandos. Bueno, te alegrará saber que existe un comando creado específicamente para este propósito.
En este tutorial, discutiremos los conceptos básicos de qué es comando usando algunos ejemplos fáciles de entender. Pero antes de hacerlo, vale la pena mencionar que todos los ejemplos aquí se han probado en una máquina con Ubuntu 18.04 LTS y Debian 10.
El comando whatis de Linux
El comando whatis en Linux le permite mostrar descripciones de páginas de manual de una línea. La siguiente es su sintaxis:
whatis [-dlv?V] [-r|-w] [-s list] [-m system[,...]] [-M path] [-L
locale] [-C file] name ...
Y así es como lo explica la página de manual de la herramienta:
Each manual page has a short description available within it. whatis
searches the manual page names and displays the manual page descrip?
tions of any name matched.
name may contain wildcards (-w) or be a regular expression (-r). Using
these options, it may be necessary to quote the name or escape (\) the
special characters to stop the shell from interpreting them.
Los siguientes son algunos ejemplos de preguntas y respuestas que le darán una mejor idea de cómo funciona el comando whatis.
P1. ¿Cómo usar el comando whatis?
El uso básico es bastante simple. Simplemente pase el nombre de una herramienta como entrada y whatis buscará y mostrará una descripción de una línea.
He aquí un ejemplo:
whatis ls
El siguiente resultado fue producido por el comando mencionado anteriormente:
ls (1) - list directory contents
P2. ¿Cómo obtener información para más de un comando?
Esto también es bastante fácil:simplemente pase los nombres de las herramientas como entrada a whatis. El siguiente es un ejemplo:
whatis ls cp rm mv
Y aquí está la salida producida por este comando:
ls (1) - list directory contents
cp (1) - copy files and directories
rm (1) - remove files or directories
mv (1) - move (rename) files
Entonces puede ver que el comando whatis maneja múltiples entradas fácilmente.
P3. ¿Podemos usar comodines con whatis?
Sí, es posible usar comodines con el comando whatis. La opción de línea de comandos -w habilita esta característica.
He aquí un ejemplo;
whatis -w 'who*'
Y la siguiente es la salida:
who (1) - show who is logged on
whoami (1) - print effective userid
P4. ¿Cómo hacer que whatis produzca información de depuración?
La opción -d hace que el comando whatis produzca información de depuración en la salida. No hace falta decir que esta opción es principalmente para desarrolladores.
He aquí un ejemplo:
whatis -d ls
Y el siguiente es el resultado producido por este comando:
From the config file /etc/manpath.config:
Mandatory mandir `/usr/man'.
Mandatory mandir `/usr/share/man'.
Mandatory mandir `/usr/local/share/man'.
Path `/bin' mapped to mandir `/usr/share/man'.
Path `/usr/bin' mapped to mandir `/usr/share/man'.
Path `/sbin' mapped to mandir `/usr/share/man'.
Path `/usr/sbin' mapped to mandir `/usr/share/man'.
Path `/usr/local/bin' mapped to mandir `/usr/local/man'.
Path `/usr/local/bin' mapped to mandir `/usr/local/share/man'.
Path `/usr/local/sbin' mapped to mandir `/usr/local/man'.
Path `/usr/local/sbin' mapped to mandir `/usr/local/share/man'.
Path `/usr/X11R6/bin' mapped to mandir `/usr/X11R6/man'.
Path `/usr/bin/X11' mapped to mandir `/usr/X11R6/man'.
Path `/usr/games' mapped to mandir `/usr/share/man'.
Path `/opt/bin' mapped to mandir `/opt/man'.
Path `/opt/sbin' mapped to mandir `/opt/man'.
Global mandir `/usr/man', catdir `/var/cache/man/fsstnd'.
Global mandir `/usr/share/man', catdir `/var/cache/man'.
Global mandir `/usr/local/man', catdir `/var/cache/man/oldlocal'.
Global mandir `/usr/local/share/man', catdir `/var/cache/man/local'.
Global mandir `/usr/X11R6/man', catdir `/var/cache/man/X11R6'.
Global mandir `/opt/man', catdir `/var/cache/man/opt'.
Added section `1'.
Added section `n'.
Added section `l'.
Added section `8'.
Added section `3'.
Added section `2'.
Added section `3posix'.
Added section `3pm'.
Added section `3perl'.
Added section `3am'.
Added section `5'.
Added section `4'.
Added section `9'.
Added section `6'.
Added section `7'.
`/usr/man' `' `1'
`/usr/share/man' `' `1'
`/usr/local/share/man' `' `1'
`/bin' `/usr/share/man' `0'
`/usr/bin' `/usr/share/man' `0'
`/sbin' `/usr/share/man' `0'
`/usr/sbin' `/usr/share/man' `0'
`/usr/local/bin' `/usr/local/man' `0'
`/usr/local/bin' `/usr/local/share/man' `0'
`/usr/local/sbin' `/usr/local/man' `0'
`/usr/local/sbin' `/usr/local/share/man' `0'
`/usr/X11R6/bin' `/usr/X11R6/man' `0'
`/usr/bin/X11' `/usr/X11R6/man' `0'
`/usr/games' `/usr/share/man' `0'
`/opt/bin' `/opt/man' `0'
`/opt/sbin' `/opt/man' `0'
`/usr/man' `/var/cache/man/fsstnd' `-1'
`/usr/share/man' `/var/cache/man' `-1'
`/usr/local/man' `/var/cache/man/oldlocal' `-1'
`/usr/local/share/man' `/var/cache/man/local' `-1'
`/usr/X11R6/man' `/var/cache/man/X11R6' `-1'
`/opt/man' `/var/cache/man/opt' `-1'
`1' `' `-5'
`n' `' `-5'
`l' `' `-5'
`8' `' `-5'
`3' `' `-5'
`2' `' `-5'
`3posix' `' `-5'
`3pm' `' `-5'
`3perl' `' `-5'
`3am' `' `-5'
`5' `' `-5'
`4' `' `-5'
`9' `' `-5'
`6' `' `-5'
`7' `' `-5'
path directory /usr/local/sbin is in the config file
adding /usr/local/man to manpath
adding /usr/local/share/man to manpath
path directory /usr/local/bin is in the config file
/usr/local/man is already in the manpath
/usr/local/share/man is already in the manpath
path directory /usr/sbin is in the config file
adding /usr/share/man to manpath
path directory /usr/bin is in the config file
/usr/share/man is already in the manpath
path directory /sbin is in the config file
/usr/share/man is already in the manpath
path directory /bin is in the config file
/usr/share/man is already in the manpath
path directory /usr/games is in the config file
/usr/share/man is already in the manpath
path directory /usr/local/games is not in the config file
but does have a ../man, man, ../share/man, or share/man subdirectory
/usr/local/man is already in the manpath
path directory /snap/bin is not in the config file
and doesn't have ../man, man, ../share/man, or share/man subdirectories
adding mandatory man directories
warning: /usr/man: No such file or directory
/usr/share/man is already in the manpath
/usr/local/share/man is already in the manpath
add_nls_manpaths(): processing /usr/local/man:/usr/local/share/man:/usr/share/man
checking for locale en_IN
adding /usr/local/man to manpathlist
adding /usr/local/share/man to manpathlist
adding /usr/share/man to manpathlist
adding /usr/local/man to manpathlist
adding /usr/local/share/man to manpathlist
adding /usr/share/man to manpathlist
Removing duplicate manpath entry /usr/local/share/man (1) -> /usr/local/man (0)
Removing duplicate manpath entry /usr/local/man (2) -> /usr/local/man (0)
Removing duplicate manpath entry /usr/local/share/man (2) -> /usr/local/man (0)
Removing duplicate manpath entry /usr/share/man (2) -> /usr/share/man (1)
final search path = /usr/local/man:/usr/share/man
path=/usr/local/man
warning: can't read the fallback whatis text database /usr/local/man/whatis
path=/usr/share/man
name: ls
sec. ext: 1
section: 1
comp. ext: gz
id: A
mtime: 1516268629.000000000
pointer: -
filter: -
whatis: list directory contents
ls (1) - list directory contents
hashtable_free: 1 entries, 1 (100%) unique
P5. ¿Cómo whatis realiza sus búsquedas?
Aquí hay un extracto relevante de la página man:
Las bases de datos de índiceindex databases are used during the search, and are updated by the
mandb program. Depending on your installation, this may be run by a
periodic cron job, or may need to be run manually after new manual
pages have been installed. To produce an old style text whatis data?
base from the relative index database, issue the command:
whatis -M manpath -w '*' | sort > manpath/whatis
where manpath is a manual page hierarchy such as /usr/man.
Conclusión
Si está demasiado interesado en las herramientas de línea de comandos de Linux, o si su trabajo diario implica lidiar con páginas man, el comando whatis puede ser una herramienta útil para usted. Ya hemos discutido algunas opciones de línea de comandos de whatis aquí. Para obtener más información, diríjase a la página de manual de la herramienta.