El Poder del Shell

Desde el shell se pueden ejecutar aplicaciones, depuradores, navegadores, editores y utilitarios. Y por la programación del shell se pueden construir "comandos de macro" de las actividades que se realizan con frecuencia.

Para los programadores de GUI y de IDEs, esto le puede parecer una posición extrema. Su simple respuesta es "No". Las GUI's son maravillosas y puede ser más rápido y más cómodo para algunas operaciones simples: mover archivos, leer MIME emails, escribir mensajes, etc. Pero si hace todo el trabajo utilizando interfaces gráficas de usuario, se está perdiendo todas las capacidades de su entorno. No será capaz automatizar tareas comunes o utilizar el 100% de beneficios que pueden tener sus herramientas. También no será capaz de combinar herramientas para crear herramientas de macro personalizadas.

Los entornos GUI son normalmente limitados por las capacidades previstas de los diseñadores.
El ámbito de aplicación de una herramienta cualquiera suele ser limitado a las tareas que la herramienta se espera que realice. Por ejemplo, supongamos que se quiera integrar un pre-procesador de código en su IDE. A menos que el diseñador de la IDE que explicitamente había previsto esta capacidad, no pueda hacerlo. :( Y pueda solucionarse esta parte apoyándose de alguna otra herramienta o también a través del símbolo de sistema. En este úñtimo recordará que SHELL es su amigo :)
Se dará cuenta que hay operaciones donde la interfaz gráfica no puede apoyar. La línea de comandos es uno de los más adecuados cuando se quiere combinar con rapidez un par de comandos para realizar una consulta o alguna otra tarea. Éstos son algunos ejemplos:

1) Buscar todos los archivos .c modificados recientemente en la carpeta XXX

A) SHELL - find . -name ' *.c' -newer Makefile -print

B) GUI - Buscar la carpeta XXX click derecho "Buscar", escribir en el criterio de búsqueda "*.c", una vez que se muestren los resultados, click en el tab de "Fecha de Modificación"


2) ¿Qué archivos de Java no se han cambiado en la última semana?
De esos archivos, ¿cuales utilizan las bibliotecas AWT?


A) SHELL
find . -name '*.java' -mtime +7 -print |
xargs grep 'java.awt'

B) GUI - Buscar la carpeta donde se encuentran los archivos java. Click derecho "Buscar", agregar filtros a la búsqueda, opción "especificar fecha". Luego realizar comparaciones con Fecha de inicio y Fecha de modificación. Luego copiar estos archivos a una nueva carpeta para poder realizar otra búsqueda por contenido "java.awt".

Juega un poco con los comandos SHELL y se sorprenderá de lo productivo que puedes ser.

Comentarios