Vous êtes sur la page 1sur 3

TP n°2 

: Les flux de redirection et les pipes

I. Les flux de redirection

1) Rediriger le résultat dans un fichier : > et >>

Il s’agit d’écrire le résultat d'une commande dans un fichier, au lieu de l'afficher dans la console.

a) Rediriger la sortie d’une commande dans un nouveau fichier : >

Le chevron > permet d’envoyer le résultat d’une commande dans un nouveau fichier : si le fichier
existait déjà il sera écrasé sans demande de confirmation.

b) Rediriger la sortie d’une commande à la fin d’un fichier : >>

Le double chevron >> sert lui aussi à rediriger le résultat dans un fichier, mais cette fois à la fin de ce
fichier : si le fichier existe déjà, il ne sera pas écrasé. Si le fichier n'existe pas, il sera créé
automatiquement.
2) Rediriger les erreurs : 2>, 2>> et 2>&1

Toutes les commandes peuvent produire deux flux de données différents:


o la sortie standard : pour tous les messages (sauf les erreurs) ;

o la sortie d'erreurs : pour toutes les erreurs.


a) Rediriger les erreurs dans un fichier à part : 2>

Enregistrement des erreurs dans un fichier à part pour ne pas les oublier et pour pouvoir les analyser
ensuite en utilisant l’opérateur 2>.

b) Ajouter les erreurs à la fin de fichier : 2>>

On peut ajouter les erreurs à la fin du fichier grâce à l’opérateur 2>>.

c) Fusionner les sorties : 2>&1

Il est possible de fusionner les sorties (résultat et erreurs) dans un seul fichier sans faire de séparation
grâce à l’opérateur 2>&1. En faite, le symbole 2>&1 va envoyer les erreurs dans le même fichier et de
la même façon que la sortie standard.
1/3
Module : Système d’Exploitation 1 | Spécialité : SI | Semestre2 | A.U :2022-2023
3) Lire depuis un fichier ou le clavier : < et <<

Jusqu’à maintenant, nous avons redirigé uniquement la sortie des commandes : c'est-à-dire envoyé les
messages issus de ces commandes. Dans cette parti, nous allons faire l'inverse, c'est-à-dire de décider
d'où vient l'entrée d'une commande. Elle peut venir d'un fichier ou d'une saisie au clavier.

a) Lire depuis un fichier : <

Le chevron ouvrant < permet d'indiquer d'où vient l'entrée qu'on envoie à la commande.

b) Lire depuis un clavier progressivement : <<

Le double chevron ouvrant << fait quelque chose d'assez différent : il vous permet d'envoyer un
contenu à une commande avec votre clavier.

II. Les pipes (=tubes) : |

Redirige la sortie d'une commande vers l'entrée d'une autre commande. Il s'agit donc d'une chaîne de
redirection entre deux processus qui ne passe pas par un fichier, mais par une zone mémoire du
système.

III. Exercices

Exercice 1

1. Créer un répertoire nommé « Redirection » dans votre dossier personnel.


2. Accéder à ce répertoire et créer un fichier nommé « notes.csv ».
3. Ecrire le texte suivant dans ce fichier :
Mohamed,18/20,Excellent
Ahmed,3/20,Nul
Imen,14/20,Bien
Fatma,9/20,moyen
Adem,11/20,Passable
4. Extraire tout ce qui se trouvait avant la première virgule afin d'avoir la liste des noms de tous
les élèves présents dans ce fichier et afficher le résultat dans un nouveau fichier nommé
« elevest.txt », puis vérifier l’extraction.
5. Extraire tout ce qui se trouvait après la dernière virgule afin d'avoir la liste des commentaires
de tous les élèves présents dans ce fichier et afficher le résultat dans le fichier « elevest.txt »
sans écraser le résultat précédent, vérifier l’extraction.
6. Exécuter la ligne suivante dans votre console, puis commentez le résultat obtenu.
cut -d , -f 1 fichier_inexistant.csv > eleves.txt 2 > erreurs.log

2/3
Module : Système d’Exploitation 1 | Spécialité : SI | Semestre2 | A.U :2022-2023
7. Exécuter la ligne suivante dans votre console, puis commentez le résultat obtenu.
cut -d , -f 1 fichier.txt > eleves.txt 2 >> erreurs.log
8. Exécuter la ligne suivante dans votre console, puis commentez le résultat obtenu.
cut -d , -f 1 fichier_inexistant.csv > eleves.txt 2 >&1
9. Ouvrez le fichier « eleves.txt » avec l’éditeur de texte « gedit », écrivez du texte dedans,
sauvegarder et fermer le fichier.
Taper la ligne suivante dans la console :
cut -d , -f 1 fichier_inexistant.csv >> eleves.txt 2 >&1
En ouvrant le fichier eleves.txt, qu’est-ce que vous avez remarqué ?

Exercice 2

Quelle est la différence entre les deux écritures suivantes : cat notes.csv et cat < notes.csv.

Exercice 3

1. Taper la commande suivante dans la console : sort -n << FIN et interpréter le


résultat affiché.
2. Envoyer les nombres saisis au clavier à un fichier nommé trie.txt, de même que les
erreurs éventuelles.
3. Lire une chaine de caractère à partir du clavier puis compter le nombre de caractère
dans cette chaine :

Exercice 4

Que fait la commande suivante ?

grep log -Ir /var/log | cut -d : -f 1 | sort | uniq

3/3
Module : Système d’Exploitation 1 | Spécialité : SI | Semestre2 | A.U :2022-2023

Vous aimerez peut-être aussi