3.5 KiB
3.5 KiB
up::unix redirection de flux #s/informatique
Par défaut, les commandes récupèrent les données tapées par l'utilisateur au clavier en entrée (unix stdin). Par défaut, la sortie des commandes (unix stdout) est affichée à l'écran. Par défaut, la sortie des erreur (unix stderr) est également affichée à l'écran.
Commandes de redirection
< entree
les données de la commande (stdin) seront lues dans le fichierentree
plutôt qu'au clavier> sortie
la sortie de la command (stdout) sera écrite dans le fichiersortie
, en l'écrasant si il existait déjà>> sortie
comme> sortie
sauf que le fichier n'est pas écrasé (le stdout de la commande est ajouté à la fin du fichier)2> erreur
les messages d'erreur de la commande (stderr) seront écrits dans le fichiererreur
. Son ancien contenu est effacé2>> erreur
le stderr de la commande est ajouté à la fin du fichiererreur
2>&1
le stderr est fusionné avec le stdout1>&2
les données en sortie sont fusionnées avec les messages d'erreur (cas rare)
Exemples
sort monfichier
affiche à l'écran les lignes du fichier classées par ordre alphabétique. Si le fichier n'existe pas, un message d'erreur apparaît à l'écransort monfichier > resultat 2> problemes
écrit les lignes demonfichier
triées par ordre alphabétique dansresultat
. Si le fichiermonfichier
n'existe pas, le message d'erreur est écrit dans le fichierproblemes
Enchaînement des commandes
Syntaxe générale
commande1 options arguments | commande2 options | commande3 ...
Exemple
find / -size +1000k -mtime -7 | sort | tee trace | less
- la commande
find
recherche dans tous les répertoires de l'ordinateur les fichiers de plus de 1000 kilooctets modifiés durant les 7 derniers jours et affiche leur chemin d'accès - la commande
sort
fait un tri alphabétique des données reçues en entrée - la commande
tee
envoie son stdin à la fois dans le fichiertrace
et dans le stdout - la commande
less
permet de visualiser un texte trop long pour tenir en entier à l'écran.
- la commande
Métacaractères
Utilisés pour exprimer des noms de fichiers.
?
n'importe quel caractère, une seule fois*
n'importe quel caractère, 0, une ou plusieurs fois[c1-c2]
n'importe quel caractères de l'ensemble ordonné commençant parc1
et terminant parc2
\
le caractère suivant de doit pas être traité comme un métacaractère (échappement).
le caractère.
en première position doit être précisé explicitement (car les fichiers dont le nom commence par ce caractère sont des fichiers cachés, ils ne sont dont pas considérés pas défaut)
Résultat d'une commande comme argument d'une autre
Les ` entourant une commande permettent d'utiliser le résultat de cette commande comme argument(s) dans la line de commande
Exemples
$ echo "Nous sommes le" `date +%d/%m/%y` "et il est" `date +%H:%M:%S`
$ echo "2 + 2 =" `expr 2 + 2`
Faire se suivre des commandes
;
entre deux commandes pour les exécuter l'une après l'autre&&
(signifie "et") entre deux commandes pour exécuter la seconde uniquement si la première n'a pas renvoyé d'erreur||
(signifie "ou") entre deux commandes pour exécuter la seconde uniquement si la première a renvoyé une erreur&
à la fin d'une commande, lance celle-ci en tâche de fond (et renvoie son PID)