Acte VI-II :
Les redirections et les tubes
Redirection d'entrées sorties
De nombreux programmes UNIX donnent leurs informations à l'écran. Par
commodité, il est souvent nécessaire de sauver ces données dans
un fichier pour pouvoir ensuite les voir en totalité ou les
traiter.
Toutes les commandes utilisent des canaux d'entrées/sorties pour
lire des données ou tranmettre des informations. Par défaut, le
canal d'entrée est le clavier et le canal de sortie est
l'écran. Mais il est très facile de substituer au canal d'entrée
ou au canal de sortie un fichier.
Le fichier /dev/null
C'est un fichier "puit infini" : vous pouvez y rediriger tout ce dont vous n'avez pas besoin (ces données sont évidemment perdues).
Le concept de filtre
Un filtre est un programme sachant écrire et lire des données
par les canaux standard d'entrée et de sortie
Par exemple, imaginez que vous souhaitiez compter le nombre de fichier
dans le répertoire /dev. Soit vous les comptez (bonne chance)
soit vous sauvegardez le résultat de ls -l /dev dans un
fichier et vous utilisez wc sur ce fichier. Mais cela vous
oblige à travailler avec un fichier auxiliaire. En fait on peut
brancher le canal de sortie d'une commande au canal d'entrée
d'une autre commande grâce au pipelining par |. Il suffit de faire
ls -l /dev | wc -l et vous avez le résultat.
Quelques commandes mise à part wc qui
peuvent servir de filtres :
- sort : Trie les données
- more : Affiche les données du canal d'entrée page par page
IMPORTANT
- On peut avoir plusieurs pipeline par ligne
- La première et la dernière commande d'une ligne de pipeline peuvent ne pas être des filtres
- A la fin du pipeline le résultat peut être redirigé vers un fichier
Exercices
- La commande more citée précédemment est une commande
très utile. Apprenez à vous en servir en lisant le manuel qui lui
correspond: man more.
- Faites défiler page par page le contenu du répertoire /dev
en affichant les droits sur ses fichiers.
- Faites défiler page par page le contenu du répertoire /dev trié
en affichant les droits sur ses fichiers.
- Reprenez le même exercice que précédemment mais en le
stockant dans un fichier tutu.
- Rechercher dans le fichier tutu tous les noms de
fichiers qui contiennent les motifs suivants (vous pouvez vous servir de la commande egrep) :
- un t
- tutu exactement
- 2 t au moins
- Faire afficher les résultats page à page et triés.