Pipes et redirections

Les pipes et les redirections sont des «commandes» très utiles à connaître lorsque l’on utilise un système UNIX. En effet ces «commandes» permettent par exemple de rediriger ce qu’affiche un programme à l’ecran vers un autre programme.

Il existe 4 redirections et un pipe dans les shells Unix.

#Rappel sur les sortie et entree standard

  • L’entrée standard est le clavier, ce que tape l’utilisateur.
  • La sortie standard est l’ecran.
  • La sortie d’erreur est l’ecran aussi mais est independante de la sortie standard.

#Les pipes Le pipe | permet de rediriger la sortie d’une commande vers une autre.

Par exemple si vous tapez:

ls /home | grep "test"

grep effectuera une recherche dans la sortie de ls (rappel: grep recherche ce qui lui est donnée en paramètre) et vous affichera toutes les lignes où il y a test.

#La redirection > La redirection > permet de rediriger la sortie standard d’une commande vers un fichier.

Par exemple:

ls > test

Va rediriger l’affichage de ls dans le fichier test.

#La redirection » Cette redirection marche exactement comme > sauf qu’elle ne vide pas le fichier avant d’écrire, mais elle écrit à la fin.

#La redirection < Cette redirection permet de lire un fichier et de rediriger son contenu sur l’entree standard du programme.

Par exemple:

grep "tmp" < test

Cette commande va faire une recherche de tmp dans le fichier test.

Si on avait utilisée les pipe on aurait pu écrire:

cat test | grep "tmp"

#La redirection « Cette redirection va stocker tous ce qui arrive sur l’entrée standard jusqu’à ce que la condition donnée en paramètre soit remplie.

cat << test

Si vous tapez cette commande vous verrez que votre shell ne fait rien, vous pouvez taper tout le texte que vous voulez et il n’affiche rien… Mais si vous tapez test il va brusquement afficher tout ce que vous avez tapée.