Sous Linux, la ligne de commande devient incroyablement puissante lorsque vous commencez à connecter des commandes. Au lieu d'exécuter une commande, de sauvegarder sa sortie, puis d'en exécuter une autre, vous pouvez créer un pipeline pour transmettre les données directement entre elles.
Comprendre l'Opérateur Pipe
Commençons par une commande qui produit beaucoup de sortie :
ls -la /etc
La liste des éléments est probablement trop longue pour tenir sur votre écran, ce qui la rend difficile à lire. Bien que vous puissiez rediriger cette sortie vers un fichier, une méthode plus efficace consiste à l'envoyer directement à une autre commande, comme less, pour une visualisation aisée.
ls -la /etc | less
L'opérateur pipe |, représenté par une barre verticale, est la clé de ce processus. Il prend la sortie standard (stdout) de la commande à sa gauche et l'utilise comme entrée standard (stdin) pour la commande à sa droite. Dans ce cas, nous avons pipé la sortie de ls -la /etc directement dans la commande less. Le pipe est un outil fondamental que vous utiliserez constamment.
Diviser la Sortie avec la Commande Tee
Et si vous souhaitez voir la sortie sur votre écran et l'enregistrer simultanément dans un fichier ? C'est là qu'intervient la commande tee. La combinaison de commandes pipe and tee command in linux est un classique pour la journalisation et la surveillance.
ls | tee peanuts.txt
Après avoir exécuté ceci, vous verrez la sortie de ls sur votre terminal. Si vous vérifiez également le contenu de peanuts.txt, vous trouverez exactement les mêmes informations. La commande tee divise efficacement le flux de sortie en deux directions : une vers la sortie standard et une autre vers un fichier spécifié.
Combiner Pipe et Tee
Vous pouvez créer des flux de travail encore plus avancés en chaînant ces commandes. Un modèle courant consiste à pipe to tee au milieu d'une chaîne de commandes plus longue. Cela vous permet de sauvegarder un résultat intermédiaire tout en continuant à traiter les données.
Par exemple, vous pouvez utiliser la combinaison linux pipe tee pour visualiser et sauvegarder la sortie avant un filtrage ultérieur :
ls -la /etc | tee etc_listing.txt | grep "conf"
Cette commande fait trois choses :
- Elle liste le contenu du répertoire
/etc. - Elle transmet cette sortie à
tee, qui en sauvegarde une copie dansetc_listing.txtet la transmet également. - La sortie de
teeest ensuite transmise àgrep, qui filtre les lignes contenant "conf".
Maîtriser ces commandes améliorera considérablement votre efficacité sur la ligne de commande.