Shell – Redirections de flux
Sous ce nom bizarre se cache en fait une opération que vous connaissez sûrement. Les redirections de flux permettent par exemple de rediriger dans un fichier ce qui normalement est affiché à l’écran. Cela permet aussi de rediriger la sortie d’un programme vers l’entrée d’un autre.
Exemples de redirections:
$ ls -al > mon_fichier $ ps -ef | grep firefox
Chaque programme, chaque process reçoit trois descripteurs de flux:
- stdin – entrée standard. Permet de transmettre des données au programme. Par défaut, il s’agit du clavier.
- stdout – sortie standard. Permet au programme d’afficher des données. Par défaut, c’est l’écran.
- stderr – sortie standard d’erreur. C’est sur cette sortie-là que devraient être affichées les erreurs que rencontre un programme. Par défaut, comme pour stdout, il s’agit de l’écran.
Ces trois flux peuvent être redirigés en utilisant:
- < redirige le flux d’entrée. L’entrée d’un programme peut devenir un fichier par exemple dans lequel se trouvent les commandes dont le programme a besoin.
- > redirige un des deux flux de sortie. Pour différencier le flux de sortie du flux d’erreur, on utilise un numéro. 1> représente le flux de sortie et 2> représente le flux d’erreur. Par défaut > est le flux de sortie.
- | (pipe en anglais, tube en français) redirige la sortie standard du programme à gauche du pipe vers l’entrée standard du programme à droite du pipe.
- >> est utilisé lorsqu’on redirige la sortie standard d’un programme vers un fichier. La sortie du programme va s’ajouter au fichier (appending) au lieu d’effacer son contenu éventuel.
- 2>&1 redirige la sortie d’erreur vers la sortie standard. Ceci peut servir lorsque, par exemple, un programme à sa sortie d’erreur envoyée vers un fichier de log et que l’on aimerait plutôt que les erreurs s’affichent à l’écran.
Posted: April 12th, 2008 under Ubuntu.
Comments: 3
Comments
Pingback from Autour de Linux » Planification de tâches – la commande at
Time: August 17, 2008, 4:08 pm
[...] C’est la que les redirections sous Linux interviennent. Relisez éventuellement mon article Shell – Redirections de flux. Nous allons utilser un pipe ‘|’ pour rediriger la sortie standard (stdout) d’un [...]
Comment from Rogor
Time: September 14, 2008, 11:08 am
Très bien ton blog. Continue ainsi
Pingback from sudo echo | Autour de Linux
Time: January 15, 2010, 5:26 pm
[...] standard du programme à sa gauche vers l’entrée standard du programme à sa droite (voir Shell – Redirections de flux). La commande prend donc la sortie de la commande echo, l’envoie sur l’entrée standard [...]
Write a comment