Latinoamérica
de.novatoanovato@gmail.com

Comando -whereis-

Dedicado al nuevo usuario de software libre

Comando -whereis-

Comando whereis

El comando whereis, en una herramienta para sistemas operativos del tipo Unix, tal y como lo es GNU/Linux. Éste programa para interfaces CLI fue desarrollado para localizar los ficheros, binarios, códigos fuentes y páginas del manual de programas que se encuentren instalados en nuestro sistema operativo. Su nombre en español se traduce a: donde está.

Objetivo de éste artículo

El objetivo de éste artículo es dar a conocer la herramienta de linea de comando: whereis, como utilizar su sintaxis y aprovechar las opciones o parámetros que forman parte de ella para hacer ejecuciones especificas. Se aprenderá a buscar con whereis los binario de software de aplicación instalado en nuestro sistema operativo, sus fuentes y la ubicación de los respectivos manuales.

Sintaxis

El comando whereis se corresponde con la siguiente sintaxis.

whereis [parámetros] [Ruta][-f] [Nombre]

Opciones del comando whereis

El comando whereis nos permite localizar dentro de nuestro sistema operativo, específicamente en el sistema de archivos, los binarios de softwares de aplicación instalado, sus fuentes y las páginas de manual que se corresponden con de estos.

La disposición de los directorios del filesystem es los sistemas operativos GNU/Linux esta pre-determinado por el estándar de jerarquía FHS. Ya sea para que el software venga pre-instalado con el sistema o para el instalado por nosotros mismos, el estándar determinara la disposición del alojamiento de los binarios del software de aplicación, sus archivos de configuración, fuentes y paginas de manual.

El comando whereis nos permite localizarlos y sus opciones nos brindan la posibilidad de especificar particularidades en las búsquedas a modo de «filtro».

Comando whereis

Esta herramienta, ejecutada de forma directa nos imprime por la salida estándar la ruta (absoluta) donde se aloja el respectivo binario (correspondiente a el software de aplicación pasado como patrón al comando), la de el directorio donde se encuentran su/sus archivos de configuración e incluso la ubicación de sus correspondientes paginas de manual. Acudamos a un ejemplo utilizando el software de aplicación nmap (sin importar su función). Entendiendo esto ejecutemos.

whereis nmap

Como podemos observar, hemos obtenido 3 rutas diferentes. Donde:

/usr/bin/nmap, Aloja el binario ejecutable del programa CLI nmap.
/usr/share/man/man1/nmap.1.gz, Directorio donde se alojan las páginas de manual del comando nmap.
/usr/share/nmap, Almacena binarios, librerías, fuentes y demás; compartidos y que no dependen de las arquitectura del sistema y que utilizados por nmap.

Buscar solo binarios

En el caso de que solo necesitemos obtener la ruta de el/los binarios de un software de aplicación que se encuentre instalado en nuestro sistema, nos bastara con utilizar el parámetro -b junto al comando whereis. Donde ingresaremos por la entrada estándar el nombre del programa objeto de búsqueda, en este caso volveremos a utilizar como ejemplo el software de aplicación nmap para aprovechar la comparativa.

whereis -b nmap

Buscar solo los manuales

Por otro lado, si lo que queremos es filtrar la salida estándar para obtener solamente la ruta de las paginas de manual, el comando whereis cuenta con el parámetro -m. Para mantener la comparativa, volveremos a ingresar como objeto de búsqueda el programa nmap. Sin mucho mas que aclarar ejecutamos.

whereis -m nmap

Obtener rutas de búsquedas especificas

Las rutas donde el comando whereis lleva a cabo la búsqueda están predefinidas. Podemos ver la listas de éstas rutas, de manera absoluta, utilizando el parámetro -l sin más como parámetro del comando whereis.

whereis -l

La salida estándar nos muestra una lista con dos columnas, donde la primera indica el objeto que se busca (binario, manual, etc) y la segunda donde los busca (ruta).

Delimitadores de rutas para opciones de búsqueda del comando whereis

Los delimitadores nos permiten ingresar rutas especificas para las búsquedas, evitando que whereis pase por toda la lista de directorios  que contempla y solo busque en la o las indicadas.

Definir ruta de búsqueda de binarios

En el caso de los binarios, las rutas donde se realizaran las búsquedas serán:

Si quisiéramos que el comando whereis realice búsqueda un uno o algunos de estos directorios específicamente, cuando de binarios se trate, contamos con el delimitador -B. Pero eso no es todo, es necesario indicar que dejamos de pasar rutas con el delimitador -f.

Como seria? bueno, sintácticamente hablando se representaría -B [ruta o rutas] -f. Pero nada mejor que un ejemplo para comprendelo mejor. Busquemos el binario de el software de aplicación nmap solamente y de forma deliberada en un directorio en el que sabemos que no esta (basándonos en los ejemplos anteriores) como podría ser /etc.

whereis -b -B /etc -f nmap

Donde se entiende que -b indica que vamos a buscar un binario, -B es el delimitador de ruta o rutas (si, podemos indicar varias) de binarios, /etc es el directorio donde se va a realizar la búsqueda, -f indica el fin de la búsqueda y nmap es el binario que buscamos. Entendiendo esto, veamos el resultado:

Como observamos, no se encontró el binario de nmap en el directorio /etc, para nosotros es una obviedad porque sabemos, debido a los ejemplos anteriores, que el binario de nmap se encuentra en el directorio /usr/bin. De realizar la búsqueda en este directorio obtendremos que:

whereis -b -B /usr/bin -f nmap

Si encontramos el binario en el.

Te reto a probar que pasa si no utilizamos el parámetro -f. ¿Que fue lo que sucedió?

Definir ruta de búsqueda de manuales

En el caso de los manuales, las rutas donde se realizaran las búsquedas por defecto serán:

Del mismo modo que en el caso del delimitador de rutas para búsquedas de binarios, en caso de los manuales contamos con el parámetro delimitador -M, donde se mantendrá la misma estructura sintáctica cambiando los parámetros de búsqueda: -M [ruta o rutas] -f. utilizaremos nmap nuevamente, pero en este caso buscaremos el directorio que aloja sus paginas de manual ingresando rutas especificas. Vamos al ejemplo:

whereis -m -M /usr/share/info /usr/share/man/man1 -f nmap

Aprovechando que sabemos donde están las paginas de manual de nmap, pasamos como directorios uno donde se encuentra y otro donde no, para de esta forma demostrar que se pueden utilizar varios directorio a la vez, y que de encontrar coincidencia en uno de ellos, obtendremos por la salida estándar su respectiva ubicación.

Puedes seguirnos en:

Ayudanos a mantener el sitio con una contribución.
Muchas gracias!

Espero sea de utilidad.
Saludos, Cristian Bellini.

 

Deja una respuesta

Tu dirección de correo electrónico no será publicada.

5 + 20 =