Aumente la eficiencia ejecutando varios comandos simultáneamente en Linux

Aumente la eficiencia ejecutando varios comandos simultáneamente en Linux
Imagen destacada Acelerar el proceso con varios comandos

¿Está buscando mejorar su productividad? Considere ejecutar varios comandos simultáneamente en su terminal Linux. Este enfoque le permite ejecutar comandos de secuencias sencillas, ejecutar tareas en segundo plano y administrar comandos condicionales de manera colectiva.

En este artículo, profundizaremos en varias técnicas para ejecutar comandos tanto de forma secuencial como simultánea en una terminal de Linux.

Los beneficios de ejecutar varios comandos a la vez

Ya sea que esté ejecutando tareas de mantenimiento de rutina, procesando grandes conjuntos de datos o automatizando segmentos de su flujo de trabajo, la combinación de comandos puede agilizar sus operaciones y aumentar la eficiencia general.

Por ejemplo, al realizar copias de seguridad de varios directorios, puede vincular los comandos en lugar de manejar cada uno individualmente, lo que le ahorra tiempo y esfuerzo.

Con frecuencia encadeno comandos al instalar paquetes de Linux que requieren varios módulos. De esta manera, me aseguro de que el paquete y sus dependencias se instalen en una sola acción, lo que elimina la necesidad de escribir repetidamente.

Ejecución secuencial de comandos

Este método es mi opción preferida cuando utilizo la terminal. Podemos vincular comandos para que se ejecuten uno tras otro independientemente de si el comando anterior se ejecutó correctamente o no.

Para ejecutar estos comandos en orden, simplemente use un punto y coma ;como separador. Cuando presione Enter, la terminal procesa el comando inicial, espera a que se complete y luego procede al siguiente.

Por ejemplo, si desea actualizar su sistema y eliminar paquetes no utilizados al mismo tiempo, puede ejecutar lo siguiente:

Actualización, mejora y limpieza del sistema Ubuntu usando el administrador de paquetes apt.

Al encadenar estos comandos, se impone una ejecución secuencial, garantizando que cada tarea se complete solo después de que finalice la anterior, manteniendo así la eficiencia.

Ejecución de comandos basada en condiciones

Si desea ejecutar el segundo comando solo si el primer comando tiene éxito (o falla), puede aprovechar la ejecución condicional mediante el uso de los operadores &&(AND) y ||(OR).

Ejecutar si el primer comando tiene éxito

Para garantizar que un comando se ejecute únicamente si el anterior tuvo éxito, utilice el &&operador entre los comandos.

Por ejemplo, si desea crear un nuevo directorio y luego cambiar a él solo si la creación del directorio es exitosa, utilice:

Creando y cambiando directorio simultáneamente.

Si el primer comando falla, el comando siguiente no se ejecutará.

Ejecutar si falla el primer comando

Operador || Esto es particularmente útil para comandos de respaldo o para registrar errores sin interrumpir el flujo de trabajo.

A menudo encuentro que esta práctica es beneficiosa durante las operaciones con archivos, como copiar un archivo a una ubicación de respaldo. Si la copia falla, quiero estar informado sin interrumpir mis tareas en curso. Puedes estructurarla de esta manera:

cp file_name /backup || echo "Failed!" >> error_log.txt

En este caso, el cpcomando intenta copiar el archivo designado al directorio de respaldo. Si falla, el ||operador ejecuta el siguiente comando, que agrega el mensaje de error a un registro de errores. De esta manera, el flujo de trabajo continúa sin interrupciones y, al mismo tiempo, se documenta el problema para su posterior revisión.

Ejecutar comandos en segundo plano

A veces, es posible que no quieras hacer una pausa para que finalice una tarea. Si un proceso lleva una cantidad de tiempo significativa, puedes mantener el flujo de trabajo agregando un signo & &al final del comando.

Por ejemplo, si desea descargar un archivo grande desde una URL específica y al mismo tiempo poder trabajar en otras tareas, puede usar:

sudo wget https://example.com/large-file.zip &

Esto le permite continuar trabajando en la terminal mientras la descarga se realiza en segundo plano.

Encadenamiento de comandos con ejecución en segundo plano

¿Qué sucede si desea conectar dos comandos y asegurarse de que el último se ejecute en segundo plano después de que se complete el primero? En este caso, puede utilizar tanto el |operador de barra vertical como el ampersand &.

La tubería |dirige la salida del primer comando como entrada para el segundo, mientras que el ampersand &permite que el segundo comando se ejecute en segundo plano.

Por ejemplo, para leer un archivo grande y extraer palabras clave, guardando los resultados en un nuevo archivo, puede utilizar el >operador de redirección:

cat samplefile.txt | grep "Project" > output.txt &
Buscar archivos grandes y guardar los resultados especificados por separado.

Con esta configuración, tanto la búsqueda como la operación de guardado se realizarán en segundo plano. De esta forma, podrá ejecutar otros comandos sin interrupción mientras se procesa el archivo.

Ejecución simultánea de varios comandos con Xargs

Si desea mejorar sus capacidades multitarea, considere ejecutar comandos en paralelo utilizando el xargscomando. Esto permite la ejecución simultánea de varios comandos en lugar de manejarlos secuencialmente.

El xargscomando divide eficientemente una lista de argumentos en lotes más pequeños, ejecutando un comando específico en cada lote simultáneamente.

Por ejemplo, si tienes una lista de URL almacenadas en un archivo y quieres descargarlas todas a la vez, en lugar de hacerlo una por una, puedes ejecutar:

cat urls_file.txt | xargs -n 1 -P 4 wget

En este caso, se le -n 1indica xargsque procese un argumento por comando y -P 4que ejecute cuatro comandos simultáneamente. Esto acelera significativamente el proceso de descarga en comparación con un enfoque secuencial.

Conclusión

En resumen, puede combinar comandos usando punto y coma ;, implementar ejecución condicional con &&y ||, ejecutar procesos en segundo plano con &y elevar sus capacidades multitarea a través de ejecución paralela usando xargs.

Crédito de la imagen: Unsplash . Todas las modificaciones y capturas de pantalla son de Haroon Javed.

Fuente

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *