Chaîner les commandes

Objectifs

  • Comprendre ce qu'est un pipe

  • Savoir chaîner des commandes avec un pipe

DéfinitionLe pipe

Un pipe (tube ou tuyau en anglais) est un outil qui permet de connecter la sortie standard d'une commande avec l'entrée standard d'une autre commande. Cela permet de chaîner plusieurs commandes, le résultat de l'une formant les données d'entrée de la suivante.

MéthodeUtiliser un pipe

Pour créer un pipe entre 2 commandes, il suffit d'écrire les deux commandes séparées pour un caractère | (que l'on appelle le pipe).

1
$ ls -R /home | less

La commande ls -R /home liste tout les fichiers et dossiers de /home de manière récursive, ce qui produit énormément de résultats dans le terminal. L'utilisation du pipe permet de rediriger la sortie standard vers la commande less qui va nous permettre de naviguer dans le résultat de la commande (son stdin donc).

ExempleFiltrer des mots

La commande grep permet de faire des recherches et/ou de filtrer du texte dans un fichier. Mais elle permet aussi de traiter un flux reçu sur son entrée standard.

1
$ ls -R /home | grep "picasoft"
2
/home/kyane/code/picasoft/registre:
3
/home/kyane/code/picasoft/stats-page:
4
/home/kyane/documents/picasoft/documents:
5
/home/kyane/documents/picasoft/api:
6
/home/kyane/documents/picasoft/doc:

Ici on récupère la liste des fichiers, mais on filtre toutes les lignes qui contiennent le texte "picasoft". Grâce au pipe la commande grep travaille directement sur le résultat de la commande ls.

À retenir

Il est possible de créer un pipe, un tuyau, entre la sortie standard d'une commande et l'entrée standard d'une autre commande, à l'aide du caractère |.