{{tag>sysadmin shell gnu linux}}
====== Redirections des entrées/sorties standards ======
===== Les entrées sorties standard =====
Lors de la création des processus des descripteurs standards sont associées a des périphériques d’entrée/sortie par défaut:
* 0 entrée standard stdin associée au clavier.
* 1 sortie standard stdout associée à l'écran.
* 2 sortie erreur standard stderr associée a l'écran.
===== Redirection des sorties =====
$ commande 2>&1 >file.txt
La redirection se fait en deux étapes:
* La sortie d'erreur standard est redirigée sur le périphérique de sortie standard (écran)
* La sortie standard est redirigée dans un fichier
**Résultat**: le fichier contiendra seulement le résultat de la commande, les message d'erreurs seront affichés à l'écran.
Le cas ci-dessous est différent:
$ commande >file.txt 2>&1
* La sortie standard est redirigée dans un fichier file.txt
* La sortie erreur standard est redirigée vers le périphérique fichier précédemment définit.
**Résultat**: La sortie standard de la commande et la sortie erreur sont redirigées dans le fichier.
===== Le pipe =====
Le méta-caractère pipe '**|**' permet de rediriger la sortie standard d'une commande sur l'entrée standard d'une autre. On peut ainsi chaîner les traitements. Il faut donc:
* Que toute commande à gauche du pipe produise une sortie sur stdout.
* Que toute commande à droite du pipe lise en entrée sur stdin.
Un filtre est une commande qui lit sur stdin et écrit sur stdout.
# Un exemple de traitement via les pipes
$ cat file.csv | uniq | cut -f 1 -d ','