Académique Documents
Professionnel Documents
Culture Documents
Tuteurs informatique
Nous contacter
Utiliser ce site
Actu et stages
Entrée, sortie,
Docs à imprimer
Plan du site
Rechercher
redirection
Les tuteurs
Unix Entrée et sortie
Shell Que sont l'entrée et la sortie d'une commande ?
Boucles
Commandes Sortie standard et sortie d'erreur
Entrée/sortie Comportement par défaut
Fonctions Les redirections
Présentation Rediriger la sortie dans un fichier : >
Scripts Ajouter la sortie à un fichier : >>
Tests
Variables Rediriger l'entrée : <
Connecter la sortie d'une commande sur l'entrée d'une autre : |
Serveur des élèves Succès et erreur
ENS Redirection des sorties standard et d'erreur
SPI Remarques
Exemples
Récapitulatif
Entrée et sortie
Que sont l'entrée et la sortie d'une commande ?
Un programme consiste à traiter des données, et à renvoyer des données
transformées : il transforme des informations, et c'est pourquoi l'on parle
d'informatique.
Prenons un programme hachoir, par exemple : on y fait entrer des choses, elles
sortent sous une autre forme, et dans l'intervalle, elles subissent des transformations
régulières. Par exemple, on fait entrer une vache, il en ressort du steak haché ; on y fait
entrer des carottes, il en ressort des carottes rapées.
Deux concepts permettent de modéliser cette transformation d'informations : les
concepts d'entrée et de sortie. L'entrée, c'est la vache ou les carottes ; la sortie, c'est le
steak haché ou les carottes rapées.
Par défaut, l'entrée standard est le clavier, la sortie standard est l'écran, et la sortie
d'erreur est aussi l'écran.
C'est sur le clavier que vous tapez ; ce que vous tapez et ce que renvoient les
programmes s'inscrit à l'écran ; les messages d'erreur renvoyés par les programmes
s'affichent à l'écran.
Les redirections
Mais il ne s'agit là que du comportement par défaut, et pas d'un comportement
obligatoire. Vous pouvez tout à fait orienter différemment vos programmes.
Par exemple, si vous donnez une vache comme entrée au hachoir, vous pouvez
orienter la sortie vers une imprimante (au lieu de l'écran, proposé par défaut), et vous
imprimerez ainsi du steak haché.
Ou encore, vous pouvez donner un plant de carottes comme entrée au programme
cueillette, et envoyer la sortie (c'est-à-dire les carottes cueillies) au programme
hachoir.
Nous allons étudier successivement :
Le résultat de ls -l ne s'affiche pas à l'écran, mais il est placé dans le fichier foo.
On peut alors taper
chaland ~ $ less foo
à chaque fois, le contenu antérieur du fichier foo est écrasé par le contenu ultérieur.
Pour éviter cela, il existe l'outil de redirection >>. Ainsi, si vous tapez plusieurs
fois
chaland ~ $ ls -l >> foo
Le pipe, ou tube, est d'un usage très courant, et rend beaucoup de services.
Succès et erreur
On a parfois besoin de savoir si une commande a réussi ou non avant d'en lancer
une autre. Les indicateurs && et || permettent, respectivement, de lancer une
commande si (et seulement si) la précédente a réussi ou échoué.
Par exemple, si j'ai un fichier foo, j'obtiens :
chaland ~ $ ls foo && echo "J'ai un fichier foo."
foo
J'ai un fichier foo.
Pour en savoir plus sur les structures de test, consultez la page sur les tests et
calculs arithmétiques.
http://www.tuteurs.ens.fr/unix/shell/entreesortie.html 3/5
19/10/2017 Entrée/sortie
Remarques
Normalement, une redirection avec > sur un fichier qui existe déjà efface le
contenu du fichier avant d'y placer le résultat de la commande. Les shells ont des
options pour demander confirmation, ou refuser d'effacer le fichier.
Une ligne de commandes contenant des | s'appelle un pipe-line. Quelques
commandes souvent utilisées dans les pipe-lines sont:
more (ou less, bien plus évolué) à la fin du pipe-line, affiche le résultat page par
page, pour laisser le temps de le lire.
wc compte le nombre de caractères, de mots et de lignes de son entrée.
grep cherche dans son entrée les lignes contenant un mot donné, et les écrit sur
sa sortie.
sort lit toutes les lignes de son entrée, les trie, et les écrit dans l'ordre sur sa
sortie. Par défaut l'ordre est alphabétique.
tail écrit sur sa sortie les dernières lignes de son entrée.
head écrit sur sa sortie les premières lignes de son entrée.
cat copie plusieurs fichiers sur sa sortie.
fold coupe les lignes de son entrée à 80 caractères et écrit le résultat sur sa
sortie.
Exemples
cat glop buz > toto
Récapitulatif
http://www.tuteurs.ens.fr/unix/shell/entreesortie.html 4/5
19/10/2017 Entrée/sortie
Vous êtes maintenant en mesure de faire ces exercices pour vous entraîner. Ou
bien vous pouvez revenir à la page centrale sur le shell, d'où vous pourrez vous
orienter vers d'autres parties du cours.
Basé sur un polycopié de Roberto Di Cosmo, Xavier Leroy et Damien Doligez. Modifications :
Nicolas George, Baptiste Mélès. Dernière modification : 2012-06-27 par Antoine Amarilli.
http://www.tuteurs.ens.fr/unix/shell/entreesortie.html 5/5