Suivez-nous

Système

Passez la commande (18) : les flux

neilime

Publié le

 

Par

terminal.jpg

terminal.jpg
Leçon n°18

Nous avons vu la [semaine dernière->] la commande cat. Cette commande nous servira de support aujourd’hui pour comprendre les flux. Il existe en effet différents type de flux, d’abord la sortie standard, par défaut c’est l’écran du terminal. Il existe aussi la sortie d’erreur, dans notre cas c’est aussi le terminal, mais selon l’application, cette sortie pourra être utilisée différemment. Ces flux peuvent redirigés en fonction des besoin.

Si par exemple, la commande more fichier1.txt affiche sur l’écran le contenu de fichier1.txt, il est possible de rediriger cet affichage du contenu du fichier 1 (la sortie donc) dans un fichier 2 :
– more fichier1.txt > fichier2.txt
Si le fichier 2 n’existe pas, il est créé. S’il existe, son contenu est remplacé par celui du fichier 1. Si l’on souhaite, au contraire, ajouter le contenu du premier fichier au second, on utilise :
– more fichier1.txt >> fichier2.txt

On peut aussi, quelque soit la commande, rediriger sa sortie vers un fichier en ajoutant après la commande X>Y, X représentant le flux à rediriger (1 est le flux standard, 2 est le flux d’erreur) et Y représentant la nouvelle destination de ce flux. Pour l’exemple, si l’on souhaite rediriger la liste du contenu d’un dossier, on utilisera :
– ls 1>fichier.txt
Pour vérifier que la liste des fichiers et dossiers est bien dans fichier.txt, on utilisera la commande more ou cat.
Pour rediriger, un flux d’erreur, même principe. Exemple avec une commande qui n’existe pas, le flux d’erreur est redirigé de la sortie standard vers un fichier :
– sdqsd 2>fichier.txt

Pour finir on peut aussi rediriger un flux vers un autre, par exemple, le flux d’erreur vers le flux standard avec 2>&1 ou inversement le flux standard vers le flux d’erreur 2>&1.

Exercices : Quelle commande permet de rediriger un flux d’erreur vers un fichier à la suite de son contenu ? Que permet la redirection 1>/dev/null ?
Pour enchainer deux commandes, il est possible de rediriger le flux de sortie standard vers une autre commande (nous le verrons la semaine prochaine). connaissez-vous la syntaxe pour ce faire ?

Leçon précédente
Leçon suivante