# Pipes et redirections

Les commandes UNIX bénéficient d'un système de *communication inter-processus*.

C'est à dire, une commande peut envoyer des résultats sur un *flux*, et ce flux peut -être lu, traité, transformé ou interprété par une commande suivante. On pourrait ainsi créer des enchaînements de commandes.

<figure><img src="https://3987944296-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FUNZ40f5eWLGPUhqCD5oe%2Fuploads%2Fgit-blob-f2fa1bd278bc3e72c0502f688a8dd1608bc78b49%2Fflux-standard.png?alt=media" alt=""><figcaption></figcaption></figure>

Il existe trois flux adressables :

* *standard in* : un flux entrant
* *standard out* : un flux sortant (avec les résultats)
* *standard err* : un flux sortant (avec des erreurs)

Les données sortantes (`stdout`) d’une commande peuvent être redirigées dans le `stdin` d’une commande suivante :

```bash
cat test.txt | grep "hello" | wc -l
```

<figure><img src="https://3987944296-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FUNZ40f5eWLGPUhqCD5oe%2Fuploads%2Fgit-blob-fc77f1f813b389976a0c86bd0df9a3da5bef6ab9%2Fflux-cat-example.png?alt=media" alt=""><figcaption></figcaption></figure>

> On utilise le symbole `|` pour représenter les tuyaux entre les différentes commandes.

Et les deux extrémités de mon flux ?

* Coté entrant, on pourrait lire des données du flux *standard in*. Selon la commande, on va lire automatiquement du *standard in*, ou bien préciser de lire de ce flux (au lieu d'un fichier) avec une option
* Coté sortant, on affiche le texte résultant de notre enchaînement sur le *standard out*, qui dans notre cas est dans l'invite de commandes.

<figure><img src="https://3987944296-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FUNZ40f5eWLGPUhqCD5oe%2Fuploads%2Fgit-blob-e9fc0767cc040a3bd2f741d6bd25bd40d19f4ec3%2Fflux-cat-ends.png?alt=media" alt=""><figcaption></figcaption></figure>

Qu’est-ce qui se passe si je tape `grep "hello"` tout seul sur l’invite de commande ? Essayez !

* Vous arrivez à expliquer ce qui se passe ?
