Augmentez l’efficacité en exécutant plusieurs commandes simultanément sous Linux
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 :
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 :
Si la première commande échoue, la commande suivante ne s’exécutera pas.
Exécuter si la première commande échoue
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 cp
commande 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 &
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 xargs
commande. Cela permet l’exécution simultanée de plusieurs commandes au lieu de les gérer de manière séquentielle.
La xargs
commande 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 1
il ordonne xargs
de traiter un argument par commande et -P 4
d’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.
Laisser un commentaire