Vous n'êtes pas identifié(e).
L'icône rouge permet de télécharger chaque page du wiki visitée au format
PDF et la grise au format ODT →
Ci-dessous, les différences entre deux révisions de la page.
Les deux révisions précédentes Révision précédente Prochaine révision | Révision précédente Prochaine révision Les deux révisions suivantes | ||
doc:programmation:shell:chevrons [23/03/2015 17:47] milou [Préparation] |
doc:programmation:shell:chevrons [23/03/2015 17:59] milou [Entrée - Sortie] |
||
---|---|---|---|
Ligne 122: | Ligne 122: | ||
Un exemple avec la commande [[:doc:systeme:wc]] (word count) qui permet de compter le nombre de lignes, de mots et de caractères d'un fichier. | Un exemple avec la commande [[:doc:systeme:wc]] (word count) qui permet de compter le nombre de lignes, de mots et de caractères d'un fichier. | ||
- | <code bash> | + | <code user> |
wc dossier1/test1.txt | wc dossier1/test1.txt | ||
1 3 17 dossier1/test1.txt</code> | 1 3 17 dossier1/test1.txt</code> | ||
Ligne 140: | Ligne 140: | ||
**Utilisation avec " < " :** | **Utilisation avec " < " :** | ||
- | <code=user> | + | <code user> |
< ~/dossier1/test1.txt wc # retour : 1 3 17 | < ~/dossier1/test1.txt wc # retour : 1 3 17 | ||
| | ||
Ligne 147: | Ligne 147: | ||
ou | ou | ||
- | <code=user> | + | <code user> |
wc < ~/dossier1/test1.txt # retour : 1 3 17 | wc < ~/dossier1/test1.txt # retour : 1 3 17 | ||
</code> | </code> | ||
Ligne 157: | Ligne 157: | ||
Première commande dans le terminal : | Première commande dans le terminal : | ||
- | <code bash> | + | <code user> |
ls -l dossier1 | ls -l dossier1 | ||
total 4 | total 4 | ||
Ligne 164: | Ligne 164: | ||
On se sert du caractère « > » pour rediriger la sortie standard (celle qui va normalement sur écran). | On se sert du caractère « > » pour rediriger la sortie standard (celle qui va normalement sur écran). | ||
On indique ensuite le nom du fichier où seront placés les résultats de sortie. | On indique ensuite le nom du fichier où seront placés les résultats de sortie. | ||
- | <code bash> | + | <code user> |
ls -l dossier1 > resultat.txt</code> | ls -l dossier1 > resultat.txt</code> | ||
- | <code bash> | + | <code user> |
cat resultat.txt | cat resultat.txt | ||
total 4 | total 4 | ||
Ligne 177: | Ligne 177: | ||
Seconde commande : | Seconde commande : | ||
- | <code bash> | + | <code user> |
ls -l dossier2 > resultat.txt</code> | ls -l dossier2 > resultat.txt</code> | ||
- | <code bash> | + | <code user> |
cat resultat.txt | cat resultat.txt | ||
total 4 | total 4 | ||
Ligne 188: | Ligne 188: | ||
Continuons avec une troisième commande : | Continuons avec une troisième commande : | ||
- | <code bash> | + | <code user> |
ls -l dossier3 > resultat.txt</code> | ls -l dossier3 > resultat.txt</code> | ||
- | <code bash> | + | <code user> |
cat resultat.txt</code> | cat resultat.txt</code> | ||
Ligne 202: | Ligne 202: | ||
Le résultat est ajouté à la fin du fichier. Exemple : | Le résultat est ajouté à la fin du fichier. Exemple : | ||
- | <code bash> | + | <code user> |
ls -l dossier1 > resultat.txt</code> | ls -l dossier1 > resultat.txt</code> | ||
- | <code bash> | + | <code user> |
ls -l dossier2 >> resultat.txt</code> | ls -l dossier2 >> resultat.txt</code> | ||
- | <code bash> | + | <code user> |
cat resultat.txt | cat resultat.txt | ||
total 4 | total 4 | ||
Ligne 225: | Ligne 225: | ||
On peut ainsi rediriger les canaux de sortie 1 et 2 vers un autre fichier. | On peut ainsi rediriger les canaux de sortie 1 et 2 vers un autre fichier. | ||
- | <code bash> | + | <code user> |
rmdir dossier3 | rmdir dossier3 | ||
rmdir: échec de suppression de « dossier3 »: Aucun fichier ou dossier de ce type</code> | rmdir: échec de suppression de « dossier3 »: Aucun fichier ou dossier de ce type</code> | ||
- | <code bash> | + | <code user> |
rmdir dossier3 2>error.log</code> | rmdir dossier3 2>error.log</code> | ||
- | <code bash> | + | <code user> |
cat error.log | cat error.log | ||
rmdir: échec de suppression de « dossier3 »: Aucun fichier ou dossier de ce type</code> | rmdir: échec de suppression de « dossier3 »: Aucun fichier ou dossier de ce type</code> | ||
Ligne 244: | Ligne 244: | ||
Faisons une seconde redirection avec une erreur en utilisant le dossier3 inexistant à la fin d'une commande, par exemple : | Faisons une seconde redirection avec une erreur en utilisant le dossier3 inexistant à la fin d'une commande, par exemple : | ||
- | <code bash> | + | <code user> |
ls -l dossier3 > resultat.txt 2> error.log</code> | ls -l dossier3 > resultat.txt 2> error.log</code> | ||
Ligne 252: | Ligne 252: | ||
Résultat dans le fichier **resultat.txt** : | Résultat dans le fichier **resultat.txt** : | ||
- | <code bash> | + | <code user> |
cat resultat.txt</code> | cat resultat.txt</code> | ||
Il est devenu vierge. \\ | Il est devenu vierge. \\ | ||
Et dans le fichier de redirection error.log : | Et dans le fichier de redirection error.log : | ||
- | <code bash> | + | <code user> |
cat error.log | cat error.log | ||
ls: impossible d'accéder à dossier3: Aucun fichier ou dossier de ce type</code> | ls: impossible d'accéder à dossier3: Aucun fichier ou dossier de ce type</code> | ||
Ligne 272: | Ligne 272: | ||
Réécrivons et vérifions le fichier resultat.txt : | Réécrivons et vérifions le fichier resultat.txt : | ||
- | <code bash> | + | <code user> |
ls -l dossier1 > resultat.txt</code> | ls -l dossier1 > resultat.txt</code> | ||
- | <code bash> | + | <code user> |
cat resultat.txt | cat resultat.txt | ||
total 4 | total 4 | ||
Ligne 281: | Ligne 281: | ||
Utilisons maintenant la double direction en sortie des 2 fichiers : | Utilisons maintenant la double direction en sortie des 2 fichiers : | ||
- | <code bash> | + | <code user> |
ls -l dossier3 >> resultat.txt 2>> error.log</code> | ls -l dossier3 >> resultat.txt 2>> error.log</code> | ||
Vérifions chacun des fichiers : | Vérifions chacun des fichiers : | ||
- | <code bash> | + | <code user> |
cat tuto_resultat.txt | cat tuto_resultat.txt | ||
total 4 | total 4 | ||
-rw-r--r-- 1 user user 17 oct. 16 18:53 test1.txt</code> | -rw-r--r-- 1 user user 17 oct. 16 18:53 test1.txt</code> | ||
- | <code bash> | + | <code user> |
cat error.log | cat error.log | ||
ls: impossible d'accéder à dossier3: Aucun fichier ou dossier de ce type</code> | ls: impossible d'accéder à dossier3: Aucun fichier ou dossier de ce type</code> | ||
Ligne 303: | Ligne 303: | ||
Cela a pour effet de rediriger toute la sortie d'erreurs dans la sortie standard((Traduction pour l'ordinateur : « envoie les erreurs au même endroit que le reste »)). | Cela a pour effet de rediriger toute la sortie d'erreurs dans la sortie standard((Traduction pour l'ordinateur : « envoie les erreurs au même endroit que le reste »)). | ||
- | <code bash> | + | <code user> |
ls -l dossier4 > resultat.txt 2>&1</code> | ls -l dossier4 > resultat.txt 2>&1</code> | ||
- | <code bash> | + | <code user> |
cat resultat.txt | cat resultat.txt | ||
ls: impossible d'accéder à dossier4: Aucun fichier ou dossier de ce type</code> | ls: impossible d'accéder à dossier4: Aucun fichier ou dossier de ce type</code> | ||
Ligne 315: | Ligne 315: | ||
Pour préserver le répertoire de ses précédentes écritures il suffit de doubler la sortie ainsi : | Pour préserver le répertoire de ses précédentes écritures il suffit de doubler la sortie ainsi : | ||
- | <code bash> | + | <code user> |
ls -l dossier5 >> resultat.txt 2>&1</code> | ls -l dossier5 >> resultat.txt 2>&1</code> | ||
- | <code bash> | + | <code user> |
cat resultat.txt | cat resultat.txt | ||
ls: impossible d'accéder à dossier4: Aucun fichier ou dossier de ce type | ls: impossible d'accéder à dossier4: Aucun fichier ou dossier de ce type | ||
Ligne 326: | Ligne 326: | ||
On peut aussi utiliser à la fois les deux types de redirection. | On peut aussi utiliser à la fois les deux types de redirection. | ||
- | <code bash> | + | <code user> |
wc < resultat.txt > comptes.txt</code> | wc < resultat.txt > comptes.txt</code> | ||
- | <code bash> | + | <code user> |
cat comptes.txt | cat comptes.txt | ||
2 24 170</code> | 2 24 170</code> |