Main menu:

Site search

Categories

avril 2008
L M M J V S D
 123456
78910111213
14151617181920
21222324252627
282930  

Archive

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.

Comments

Pingback from Autour de Linux » Planification de tâches – la commande at
Time: 17 août 2008, 16 h 08 min

[…] 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: 14 septembre 2008, 11 h 08 min

Très bien ton blog. Continue ainsi

Pingback from sudo echo | Autour de Linux
Time: 15 janvier 2010, 17 h 26 min

[…] 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 […]