Sistemas

Ejemplos de comandos en consolas de texto: manejando The Matrix :P


Continuamos con el informe sobre la utilización de consolas de texto en GNU/Linux. Habíamos escrito un comando para encontrar una foto jpg sacada en la ciudad de Junín, el comando era este:

locate jpg | grep junin

Recordar que para que locate tenga idea sobre qué hay en nuestros discos rígidos es necesario que updatedb haya sido ejecutado previamente en algún momento… una vez ejecutado, puede programarse para ejecutarse una vez por día o por semana, o cuando lo desee el usuario. Para eso, usar kcron.

Disculpen, seguimos con el tema de buscar una foto en particular, el comando sería: "locate jpg | grep junin", porque buscamos un archivo .jpg que fue guardado con la palabra "junin" en algún lugar del nombre del archivo.

Obtuvimos este resultado:

/mnt/hda1/marcos/doc/musix-dev/charlas-conferencias/Junin-2007-agosto-17/Fotos/charla_junin_2007-08-17_f1.jpg

Esa foto fue filtrada de entre 13317 fotos jpg que existen en mi disco rígido.

¿Cómo supe que hay 13317 en mi disco? Con un procedimiento similar:

locate jpg | wc -l

wc creo que significa Word Count (contar palabras), pero sirve para contar  número de líneas, palabras o bytes en un archivo o en la salida de un comando.

Podría borrar todas las fotos jpg en mi disco así

locate -i jpg | xargs rm

XARGS sirve para darle a un comando posterior (rm=remover) un trabajo para hacer con esa lista que crea el comando entubado (|) anteriormente (en este caso locate).

Podría averiguar cuánto ocupan todas mis fotos jpg con este comando

locate -i jpg | xargs du -h -c

24M     total

No es mucho, sólo 24 megabytes. El comando du significa Disk Usage, Uso del Disco, -h es una opción para que devuelva números legibles por humanos, y -c es la opción para que muestre el resultado total, no sólo el uso de espacio en disco de cada foto.

Vuelvo al resultado obtenido por locate jpg | grep junin

Si quisiera hacer algo con esa foto, bien podría abrirla con GIMP para editarla. Simplemente podría copiar el texto "/mnt/hda1/marcos/doc/musix-dev/charlas-conferencias/Junin-2007-agosto-17/Fotos/charla_junin_2007-08-17_f1.jpg" obtenido y pegarlo luego de escribir gimp, así:

gimp /mnt/hda1/marcos/doc/musix-dev/charlas-conferencias/Junin-2007-agosto-17/Fotos/charla_junin_2007-08-17_f1.jpg

Se pega con shift+insert.

O podría abrirla así

locate jpg | grep junin | xargs gimp

Es decir que nos ahorramos de hacer muchísimos clics con el mouse buscando una foto jpg de junin para editarla con el GIMP.

Cada comando tiene su página de manual, entonces, si escribimos

man ls

Obtendremos el manual para el comando ls, lo mismo con el resto.

Las consolas de texto en sistemas de tipo Unix se vienen usando desde 1969 aproximadamente, por lo cual se trata de tecnología supero probada, estable y eficiente.

Combinando comandos con scripts BASH (es el lenguaje de programación de las consolas) podemos hacer cosas impensadas, por ejemplo un pequeño programa que descargue las noticias desde un sitio web, filtre su contenido y las lea en voz alta con una voz sintética pero realista, en español. ¿Les parece imposible? En el próximo artículo lo haremos y demostraremos que es una pavada.



Por Marcos el mes de julio del 2008

Historias relacionadas

Volver al inicio