1

Aprende a encadenar comandos y optimiza tu trabajo en la terminal

Todo en mi vida profesional cambió cuando empecé a trabajar en una compañía de tecnología. Cuando digo que todo cambió, lo digo muy en serio.

Venía de trabajar en un startup más enfocada en procesos de ingeniería química y energías renovables. Muy innovadora sí, pero la parte de desarrollo software no era el “core” o en centro del producto. Fue así que el primer día trabajo en la nueva empresa me dieron un portátil con sistema operativo Debian GNU/Linux.
Hasta ese momento todo mi vida había usado Windows y lo que recordaba de Linux eran ese par de lecciones de informatica que vi en primaria, ymedio recuerdo el LibreOffice, los juegos y que Linux tenía un pingüino en el logo. En ese momento también me enfrentaba a código serio y profesional en Python y nunca había usado GitHub, solo para que se hagan una idea.
Bueno y para no hacerles el cuento más largo claramente tenía que cumplir mis funciones como ingeniero de energía y el idioma que se manejaba en la empresa era Sueco, y si me explicaban los wildcards, los comandos en la terminal y a hacer git pull and cherry picks en otro idioma.

People se puede, con horas extra de estudio, con mucha resiliencia y un corazón dispuesto aprender, les aseguro que se puede. Por esta razón decidí también hacer el curso de “Introducción a la Terminal y Línea de Comandos”.

Ahora si el tutorial…
Acá les cuanto cómo hice para entender este tema y que a mi parecer es de lo más mejor que podemos aprender para manejar la terminal como un profesional y al mismo tiempo poner en práctica varios comandos.

Primero que todo debemos saber com qué herramientas contamos para encadenar comandos, para este fin existen algunos operadores:

  • ; → ejecuta comandos de manera síncrona, es decir, lineal o secuencial. Uno después del otro.
comando_1; comando_2; comando_3
  • | → el pipe operator es uno de los operadores mas poderosos que existen, ya que nos permite poner varios comandos, tales que la salida de uno es la entrada del siguiente.
comando_1 | comando_2 | comando_3
  • & → este operador nos permite ejecutar comandos de manera paralela o asíncrona. Es decir, que se correrán procesos simultáneos e independientes para cada comando.
comando_1 & comando_2 & comando_3
  • && → el operador de control and utiliza lógica condicional en la que un comando se ejecuta si el anterior también se cumple. Yo lo entendí como cuando usamos el if si un comando se cumple el que sigue se ejecuta, de lo contrario, el segundo comando no se ejecuta.
comando_1 && comando_2 && comando_3
  • || → este es el operador de control or que lo que hace es que ejecuta varios comandos sin importar si se cumplen o no. Que todos los comandos ejecuten depende de la lógica de utilices. Este operador tiene un alcance hasta que uno de los comando sea verdadero, esto significa que mientras haya un operador || y el comando resultante sea **false ** o **error ** evaluará el siguiente comando hasta hallar un **true ** donde se detiene.
comando_1 || comando_2 || comando_3

¡Ahora a la práctica!

Ejemplo 1

Este tipo de encadenamientos nos permite por ejemplo crear un directorio, luego ingresar este directorio, allí crear un archivo de texto y finalmente abrirlo en la terminal para editarlo:

mkdir dir_test; cd dir_test && touch my_file.txt && cat my_file.txt

Ejemplo 2

Incluso puedes crear alias muy útiles que te ahorraran trabajo para comando que usas continuamente en tus proyectos. Aquí un ejemplo de como crear un back-up o copia de respaldo de un directorio y luego comprimirlo.

alias backup-dir="tar -czf backup.tar.gz /path/to/directory && mv backup.tar.gz /path/to/backup/location || echo 'Backup failed'"

Ejemplo 3

Busca un patron o palabra en un archivo, luego ordena las líneas alfabeticamente y finalmente visualiza el resultado de forma enumerada. En este caso buscaremos la palabra “ERROR” únicamente en archivos .log con ayuda de wildcards y seguidamente el resto de comandos como te muestro acontinuación:

grep'ERROR' *.log | sort | nl

Conclusión

Podríamos escribir comando por comando, enviando instrucciones separadas a la terminal y está muy bien. Pero de la misma forma que cuando empezamos a aprender otro idioma debemos empezar a escribir oraciones más complejas más nativas y eficientes, así mismo debemos ver la línea de comandos.

Esta habilidad nos hará más profesionales y lo más importante podremos optimizar nuestro tiempo. Nuestra mente podrá crear nuevas relaciones y ejecutar procesos más complejos e interesantes.

Escribe tu comentario
+ 2