Cómo ejecutar varios comandos de Linux a la vez en la terminal de Linux [Essential Beginners Tip]

Ejecutar dos o más comandos en una línea puede ahorrarle mucho tiempo y ayudarlo a ser más eficiente y productivo en Linux.

Hay tres formas de ejecutar varios comandos en una línea en Linux:

;Comando 1; Comando 2Ejecute el comando 1 primero y luego el comando 2
&&Comando 1 && Comando 2Ejecute el comando 2 solo si el comando 1 finaliza correctamente
||Comando 1 || Comando 2Ejecute el comando 2 solo si el comando 1 falla

Déjame mostrarte en detalle cómo puedes encadenar comandos en Linux.

Utilizando ; para ejecutar varios comandos de Linux en una línea

El más simple de todos es el punto y coma (;). Simplemente combine varios comandos que desea ejecutar usando; de la siguiente manera:

cmd1; cmd2; cmd3

Aquí, cmd1 se ejecutará primero. Independientemente de si cmd1 se ejecuta correctamente o con error, cmd2 se ejecutará después. Y cuando finalice el comando cmd2, se ejecutará cmd3.

Tomemos un example puedes practicar fácilmente (si quieres).

mkdir new_dir; cd new_dir; pwd

En el comando anterior, primero crea un nuevo directorio llamado new_dir con el comando mkdir. Luego cambia a este directorio recién creado usando el comando cd. Por último, imprime su ubicación actual con el comando pwd.

Ejecución de múltiples comandos Linux con;

El espacio después del punto y coma (;) es opcional pero facilita la lectura de la cadena de comandos.

Usar && para ejecutar múltiples comandos de Linux

Algunas veces desea asegurarse de que en la cadena de comandos de Linux, el el siguiente comando solo se ejecuta cuando el comando anterior finaliza correctamente. Aquí es donde entra en escena el operador lógico AND &&:

cmd1 && cmd2 && cmd3

Si usa distribuciones basadas en Ubuntu o Debian, debe haber encontrado este comando que utiliza el concepto &&:

sudo apt update && sudo apt upgrade

Aquí el primer comando (sudo apt update) primero actualiza la caché de la base de datos del paquete. Si no hay ningún error, actualizará todos los paquetes que tengan versiones más nuevas disponibles.

Tomemos antes example. Si new_dir ya existe, el comando mkdir devolverá un error. La diferencia en el comportamiento de; y && se pueden ver en la captura de pantalla siguiente:

¿Viste cómo los comandos separados por && se detuvieron cuando el primer comando resultó en un error?

Usando || para ejecutar varios comandos de Linux a la vez

Puede utilizar el operador lógico OR (||) para ejecutar una cadena de comandos, pero el el siguiente comando solo se ejecuta cuando el comando anterior termina con un error. Esto es opuesto a lo que vio con &&.

cmd1 || cmd2 || cmd3

Si cmd1 falla, cmd2 se ejecuta. Si cmd2 se ejecuta correctamente, cmd3 no se ejecutará.

En la captura de pantalla anterior, el comando mkdir new_dir falla porque new_dir ya existe. Dado que este comando falla, el siguiente comando cd new_dir se ejecuta con éxito. Y ahora que este comando se ha ejecutado correctamente, el siguiente comando pwd no se ejecutará.

Consejo adicional: combine && y || operadores

Puede combinar los operadores para ejecutar dos o más comandos de Linux.

Si combina tres comandos con && y ||, se comportará como el operador ternario en C / C ++ (condición? expresión_verdadero; expresión_falso).

cmd1 && cmd2 || cmd3

Para example, usted puede comprobar si el archivo existe en bashe imprima los mensajes en consecuencia.

[ -f file.txt ] && echo "File exists" || echo "File doesn't exist"

Ejecute el comando anterior antes y después de crear el archivo file.txt para ver la diferencia:

Al igual que copiar y pegar en la terminal de Linux, ejecutar varios comandos a la vez también es uno de los muchos consejos de línea de comandos de Linux para ahorrar tiempo. Aunque es elemental, es un concepto esencial que cualquier usuario de terminal Linux debería conocer.

También puede utilizar;, && y || para ejecutar varios comandos en bash guiones también.

Espero que les haya gustado este truco de terminal. Esté atento a más sugerencias y herramientas de comandos de Linux que se publican todos los martes en la serie #TerminalTuesday.