Lorsqu’une commande a besoin d’afficher quelque chose à l’écran, elle utilise en générale la sortie standard (stdout, numéro 1). Il est possible de rediriger cette sortie standard sur un fichier. Essayez les commandes suivantes :
% ls % ls > foo % more foo
Les erreurs générées par un programme sont elles envoyées sur la sortie erreur (stderr, numéro 2). Il est aussi possible de rediriger cette sortie comme par exemple avec les commandes suivantes (Bourne Shell ou Bash):
% find /etc -name '*' % find /etc -name '*' 1>foo % more foo % find /etc -name '*' 1>foo 2>bar % more foo % more bar
ou les commandes suivantes (C-shell et sa famille) :
% find /etc -name '*' % find /etc -name '*' > foo % more foo % (find /etc -name '*' > foo) >& bar % more foo % more bar
Vous déterminerez si votre shell est de la famille du Bourne-Shell ou du C-Shell en consultant le contenu de la variable SHELL :
% echo $SHELL
De même, l’entrée standard (stdin) peut-être redirigée :
% wc la premiere ligne la seconde la fin Ctrl-D % wc < .LISEZ-MOI % wc < .LISEZ-MOI > foo
Le pipe |
permet de rediriger la sortie de l’exécution
d’une commande sur l’entrée d’une autre. Par exemple, les commandes :
% cut -d: -f1 < /etc/passwd > fa % sort < fa > fb
sont équivalentes à:
% cut -d: -f1 < /etc/passwd | sort > fc
La commande diff permet de lister les différences entre deux fichiers. Utilisez cette commande pour comparer les fichiers fb et fc.
Notez qu’il est tout à fait possible d’enchaîner plusieurs pipes :
% cat /etc/passwd | cut -d: -f1 | sort > fa