Hipatia

Trabajando con comandos

Bash, o Bourne Again SHell, es el intérprete de comandos predeterminado en la mayoría de los sistemas operativos basados en Unix y Linux. Es una interfaz de línea de comandos (CLI) que permite a los usuarios interactuar con el sistema operativo mediante la entrada de comandos. Bash combina la funcionalidad de los shells anteriores, como sh, csh, y ksh.

Los comandos son una herramienta clave en el trabajo diario con Linux. Son pequeños programas que podemos invocar en la terminal de comandos mientras les ofrecemos unos datos de entrada. Ellos realizan su trabajo y nos muestran unos datos de salida.

Una de las ideas más revolucionarias de Linux (heredada de Unix) es la idea de combinar comandos para generar trabajos complejos. La forma de combinar dos o más comandos es usando «tuberías» entre ellos. Estas tuberías, simbolizadas por el caracter | que obtenemos pulsando AltGr+1 conectan la salida de un comando con la entrada de otro. Por ejemplo tenemos el comando head que nos muestra la las primeras líneas de entre todas las que reciba por su entrada, mientras que el comando sort ordena las líneas que recibe por su entrada. Por último, el comando cat imprime en la pantalla el contenido de un fichero de texto que recibe como argumento.

sdemingo@hipatia:~$ cat fichero | sort | head

Así entonces, si invocamos estos tres comandos combinados por tuberias, tal y como se ve en el ejemplo anterior, obtendremos que todo el contenido del fichero, viaja por la primera tubería hasta el comando sort. Este comando ordena las líneas de forma alfabética y las retorna por su salida pero como está puenteada con otra tubería hasta el comando head llegarán a este comando. Por último, el comando head muestra por su salida solo las diez primeras, descartando las demás. En definitiva, hemos conseguido ordenar el contenido del fichero y mostrar sus diez primeras líneas tras esta ordenación.

Otro elemento poderoso en la consola de Linux es la posibilidad de indicarle a un comando que queremos que deje su salida en un fichero, en lugar de volcarla a la pantalla. Esto lo haremos con el símbolo >. Indicando esto tras el comando, la salida que nos generaría en la pantalla pasará a estar guardada en ese fichero.

sdemingo@hipatia:~$ cat fichero | sort | head > salida.txt

Ejecutando el anterior comando conseguiremos lo mismo que antes pero ahora, en lugar de mostrarse los datos por pantalla, quedarán guardados dentro del fichero salida.txt.

Como último ejemplo de la flexibilidad de la shell hablaremos de los carácteres comodín o wildcards. Estos carácteres poseen un significado específico para bash y son sustituidos a la hora de introducir el comando. Los más usados de entre todos ellos son: el carácter ’*’ que es sustituido por cualquier cadena de carácteres sea cual sea su longitud y el carácter ‘?’ que es sustituido por cualquier carácter (pero solo uno a diferencia del primero). Por ejemplo, si tenemos un directorio en el que hay varios archivos y varios de ellos comienzan por el prefijo docum podemos borrar estos usando el comando rm y uno de estos carácteres comodines:

sdemingo@hipatia:~$ ls archivo1 archivo2 docu001 docu002 docu003 docu004
sdemingo@hipatia:~$ rm docu*
sdemingo@hipatia:~$ ls archivo1 archivo2

Este obra está bajo una licencia de Creative Commons Reconocimiento-NoComercial-CompartirIgual 4.0 Internacional.