Redirections et tubes
Les trois flux standard, les redirections >, >>, <, 2> et 2>&1, /dev/null, le tube et tee, et l'ordre dans lequel le shell les applique.
- 23 cartes
- 5 thèmes
- Gratuit
Le programme, thème par thème
Le poids de chaque thème suit celui que lui donne l'examen.
- Notions
- Questions
- Ranger et relier
- Mises en situation
- Comprendre
Quelques cartes du deck
Flux standard : de quoi s'agit-il ?
Voir la réponse
Les trois canaux que chaque processus a ouverts au départ : l'entrée standard, la sortie standard et la sortie d'erreur.
Par défaut, l'entrée est le clavier, la sortie et l'erreur sont l'écran. Séparer les deux sorties permet de rediriger les résultats sans perdre les messages d'erreur.
Avec
ls /etc/passwd /nope > out, que contient l'écran et que contientout?- Écran : l'erreur sur
/nope;out:/etc/passwd - L'écran reste vide ;
outcontient/etc/passwdet l'erreur - L'écran montre
/etc/passwd;outcontient l'erreur sur/nope - L'écran montre les deux lignes ;
outest créé mais reste vide
Voir la réponse
Écran : l'erreur sur
/nope;out:/etc/passwd>ne redirige que la sortie standard (descripteur 1). Le message « ls: cannot access '/nope': No such file or directory » part sur la sortie d'erreur, donc à l'écran.- Écran : l'erreur sur
L'entrée standard porte le numéro …, la sortie standard le … et la sortie d'erreur le ….
Voir la réponse
L'entrée standard porte le numéro 0, la sortie standard le 1 et la sortie d'erreur le 2.
>seul est un raccourci de1>. C'est pour cela que2>est nécessaire pour attraper les erreurs.>et>>: de quoi s'agit-il ?Voir la réponse
Envoient la sortie standard dans un fichier : le premier l'écrase, le second ajoute à la fin.
Les deux créent le fichier s'il n'existe pas.
>le vide dès que le shell l'ouvre, avant même que la commande ne s'exécute.Après
sort notes.txt > notes.txt, le fichiernotes.txtest vide. Quelle commande trie réellement le fichier ?sort -o notes.txt notes.txtsort notes.txt >> notes.txtsort notes.txt | notes.txtsort < notes.txt > notes.txt
Voir la réponse
sort -o notes.txt notes.txtLe shell ouvre
notes.txten écriture, donc le vide, avant quesortne le lise.-olaissesortlire tout le fichier avant d'écrire.>>ajouterait les lignes triées,|chercherait une commandenotes.txt, et la version avec<vide le fichier de la même façon. On peut aussi passer par un fichier temporaire puismv.