Augmentez l’efficacité en exécutant plusieurs commandes simultanément sous Linux

Augmentez l’efficacité en exécutant plusieurs commandes simultanément sous Linux
Image principale Accélérez le processus de commandes multiples

Vous souhaitez améliorer votre productivité ? Envisagez d’exécuter plusieurs commandes simultanément dans votre terminal Linux. Cette approche vous permet d’exécuter des commandes séquentielles simples, d’exécuter des tâches en arrière-plan et de gérer des commandes conditionnelles de manière collective.

Dans cet article, nous allons approfondir plusieurs techniques permettant d’exécuter des commandes de manière séquentielle et simultanée sur un terminal Linux.

Les avantages de l’exécution simultanée de plusieurs commandes

Que vous exécutiez des tâches de maintenance de routine, traitiez de grands ensembles de données ou automatisiez des segments de votre flux de travail, la combinaison de commandes peut rationaliser vos opérations et augmenter l’efficacité globale.

Par exemple, lors de la sauvegarde de plusieurs répertoires, vous pouvez lier les commandes au lieu de gérer chacune d’elles individuellement, ce qui vous fait gagner du temps et des efforts.

J’enchaîne souvent des commandes lors de l’installation de paquets Linux qui nécessitent plusieurs modules. En procédant ainsi, je m’assure que le paquet et ses dépendances sont installés en une seule action, éliminant ainsi les saisies répétitives.

Exécution de commandes séquentielles

Cette méthode est celle que j’utilise lorsque j’utilise le terminal. Nous pouvons lier des commandes afin qu’elles s’exécutent les unes après les autres, que la commande précédente ait été exécutée avec succès ou non.

Pour exécuter ces commandes dans l’ordre, utilisez simplement un point-virgule ;comme séparateur. Lorsque vous appuyez sur Entrée, le terminal traite la commande initiale, attend qu’elle soit terminée, puis passe à la suivante.

Par exemple, si vous souhaitez mettre à jour votre système et supprimer les packages inutilisés en même temps, vous pouvez exécuter la commande suivante :

Mise à jour, mise à niveau et nettoyage du système Ubuntu à l'aide du gestionnaire de paquets apt.

En enchaînant ces commandes, vous appliquez une exécution séquentielle, garantissant que chaque tâche n’est terminée qu’une fois la précédente terminée, préservant ainsi l’efficacité.

Exécution de commandes basées sur des conditions

Si vous souhaitez exécuter la deuxième commande uniquement si la première commande réussit (ou échoue), vous pouvez tirer parti de l’exécution conditionnelle grâce à l’utilisation des opérateurs &&(AND) et ||(OR).

Exécuter si la première commande réussit

Pour garantir qu’une commande s’exécute uniquement si la précédente a réussi, utilisez l’ &&opérateur entre les commandes.

Par exemple, si vous souhaitez créer un nouveau répertoire et y accéder uniquement si la création du répertoire est réussie, utilisez :

Créer et modifier un répertoire simultanément.

Si la première commande échoue, la commande suivante ne s’exécutera pas.

Exécuter si la première commande échoue

Opérateur ||. Ceci est particulièrement utile pour les commandes de secours ou la journalisation des erreurs sans perturber votre flux de travail.

Je trouve souvent cette pratique utile lors d’opérations sur des fichiers, comme la copie d’un fichier vers un emplacement de sauvegarde. Si la copie échoue, je souhaite être informé sans interrompre mes tâches en cours. Vous pouvez le structurer comme ceci :

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

Dans ce cas, la cpcommande tente de copier le fichier désigné dans le répertoire de sauvegarde. En cas d’échec, l’ ||opérateur exécute la commande suivante, qui ajoute le message d’erreur à un journal des erreurs. De cette façon, votre flux de travail se poursuit sans interruption tout en documentant le problème pour une révision ultérieure.

Exécution de commandes en arrière-plan

Parfois, vous n’avez pas envie de faire une pause pour terminer une tâche. Si un processus prend beaucoup de temps, vous pouvez faire en sorte que votre travail se déroule sans accroc en ajoutant une esperluette &à la fin de votre commande.

Par exemple, si vous souhaitez télécharger un fichier volumineux à partir d’une URL spécifique tout en pouvant travailler sur d’autres tâches, vous pouvez utiliser :

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

Cela vous permet de continuer à travailler sur le terminal pendant que le téléchargement est effectué en arrière-plan.

Enchaînement de commandes avec exécution en arrière-plan

Que faire si vous souhaitez connecter deux commandes tout en vous assurant que la seconde s’exécute en arrière-plan une fois la première terminée ? Dans ce cas, vous pouvez utiliser à la fois l’ |opérateur pipe et l’esperluette &.

Le tuyau |dirige la sortie de la première commande comme entrée pour la seconde, tandis que l’esperluette &permet à la seconde commande de s’exécuter en arrière-plan.

Par exemple, pour lire un fichier volumineux et extraire des mots-clés, en enregistrant les résultats dans un nouveau fichier, vous pouvez utiliser l’ >opérateur de redirection :

cat samplefile.txt | grep "Project" > output.txt &
Rechercher un fichier volumineux et enregistrer les résultats spécifiés séparément.

Avec cette configuration, les opérations de recherche et de sauvegarde seront effectuées en arrière-plan. De cette façon, vous pouvez exécuter d’autres commandes sans interruption pendant que le fichier est en cours de traitement.

Exécution simultanée de plusieurs commandes avec Xargs

Si vous souhaitez améliorer vos capacités multitâches, envisagez d’exécuter des commandes en parallèle à l’aide de la xargscommande. Cela permet l’exécution simultanée de plusieurs commandes au lieu de les gérer de manière séquentielle.

La xargscommande divise efficacement une liste d’arguments en lots plus petits, exécutant simultanément une commande spécifique sur chaque lot.

Par exemple, si vous avez une liste d’URL stockées dans un fichier et que vous souhaitez les télécharger toutes en même temps, au lieu de le faire une par une, vous pouvez exécuter :

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

Dans ce cas, -n 1il ordonne xargsde traiter un argument par commande et -P 4d’exécuter simultanément quatre commandes. Cela accélère considérablement le processus de téléchargement par rapport à une approche séquentielle.

Conclusion

En résumé, vous pouvez combiner des commandes à l’aide de points-virgules ;, implémenter une exécution conditionnelle avec &&et ||, exécuter des processus en arrière-plan avec &et augmenter vos capacités multitâches grâce à l’exécution parallèle à l’aide de xargs.

Crédit image : Unsplash . Toutes les modifications et captures d’écran par Haroon Javed.

Source

Laisser un commentaire

Votre adresse e-mail ne sera pas publiée. Les champs obligatoires sont indiqués avec *