logo Debian Debian Debian-France Debian-Facile Debian-fr.org Forum-Debian.fr Debian ? Communautés logo inclusivité

Debian-facile

Bienvenue sur Debian-Facile, site d'aide pour les nouveaux utilisateurs de Debian.

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 → ODT PDF Export

Différences

Ci-dessous, les différences entre deux révisions de la page.

Lien vers cette vue comparative

Les deux révisions précédentes Révision précédente
Prochaine révision
Révision précédente
doc:programmation:shell:chevrons [26/07/2014 04:19]
martinux_qc [Entrée]
doc:programmation:shell:chevrons [01/05/2021 12:58] (Version actuelle)
jpt [Sortie]
Ligne 2: Ligne 2:
  
   * Objet : commandes de redirection   * Objet : commandes de redirection
-  * Niveau requis : {{tag>​débutant}}+  * Niveau requis : {{tag>​débutant ​avisé}}
   * Commentaires : // Par redirection,​ on entend la possibilité de rediriger l'​affichage de l'​écran vers un fichier ou tout autre périphérique...//​   * Commentaires : // Par redirection,​ on entend la possibilité de rediriger l'​affichage de l'​écran vers un fichier ou tout autre périphérique...//​
   * Débutant, à savoir : [[:​doc:​systeme:​commandes:​le_debianiste_qui_papillonne|Utiliser GNU/Linux en ligne de commande, tout commence là !.]] :-)   * Débutant, à savoir : [[:​doc:​systeme:​commandes:​le_debianiste_qui_papillonne|Utiliser GNU/Linux en ligne de commande, tout commence là !.]] :-)
Ligne 18: Ligne 18:
  
 tout d'​abord dans le dossier désiré (pour ce faire voir [[:​doc:​programmation:​shell:​cd|la commande cd]]), puis on tape la commande suivante : tout d'​abord dans le dossier désiré (pour ce faire voir [[:​doc:​programmation:​shell:​cd|la commande cd]]), puis on tape la commande suivante :
-   > nomdufichier+<code user>> nomdufichier</​code>​
  
 ===== Ou, de façon plus générale ===== ===== Ou, de façon plus générale =====
 on tape : on tape :
-<​code>​+<​code ​user>
 > /​chemin/​du/​repertoire/​nomdufichier > /​chemin/​du/​repertoire/​nomdufichier
 </​code>​ </​code>​
Ligne 44: Ligne 44:
  
 Avec la commande ''​touch''​ tu feras : Avec la commande ''​touch''​ tu feras :
-   rm fichier | touch /fichier+<code user>rm fichier | touch /fichier</​code>​
  
 Avec la commande ''>'',​ tu feras simplement : Avec la commande ''>'',​ tu feras simplement :
-   > /fichier+<code user>> /fichier</​code>​
  
 Ce sont bien sûr des détails, mais cela nous donne une façon différente de procéder. Ce sont bien sûr des détails, mais cela nous donne une façon différente de procéder.
Ligne 58: Ligne 58:
  
 Prenons un fichier d'​environs 100Mo. Prenons un fichier d'​environs 100Mo.
-<​code ​bash+<​code ​user
-dd if=/​dev/​zero of=fichier bs=1 count=1 seek=100M +dd if=/​dev/​zero of=fichier bs=1 count=1 seek=100M</​code>​ 
-1+0 enregistrements lus+<file config retour de la commande>​1+0 enregistrements lus
 1+0 enregistrements écrits 1+0 enregistrements écrits
-1 octet (1 B) copié, 4,4267e-05 s, 22,6 kB/s +1 octet (1 B) copié, 4,4267e-05 s, 22,6 kB/s</​file>​ 
-ls -lhi +<code user>ls -lhi</​code>​ 
-total 4,0K +<file config retour de la commande>>​total 4,0K 
-1163 -rw-r--r-- 1 user user 101M oct.  16 20:34 fichier</​code>+1163 -rw-r--r-- 1 user user 101M oct.  16 20:34 fichier</​file>
  
 Vider le fichier se fait aussi simplement que ça : Vider le fichier se fait aussi simplement que ça :
-<​code ​bash+<​code ​user
-> fichier</​code>​+> fichier</​code>​
  
-<​code ​bash+<​code ​user
-ls -lhi +ls -lhi</​code>​ 
-total 0 +<file config retour de la commande>​total 0 
-1163 -rw-r--r-- 1 fgivors fgivors 0 oct.  16 20:33 fichier</​code>+1163 -rw-r--r-- 1 fgivors fgivors 0 oct.  16 20:33 fichier</​file>
  
 L'​intérêt de vider un fichier de cette manière, par rapport à un rm et un touch, c'est que l'on conserve le numéro d'​inode (le numéro marqué à gauche). L'​intérêt de vider un fichier de cette manière, par rapport à un rm et un touch, c'est que l'on conserve le numéro d'​inode (le numéro marqué à gauche).
Ligne 99: Ligne 99:
  
 Créer(([[:​doc:​editeurs:​vim:​vim]])) les éléments nécessaires pour réaliser les exemples de ce tuto : Créer(([[:​doc:​editeurs:​vim:​vim]])) les éléments nécessaires pour réaliser les exemples de ce tuto :
-<​code ​bash>+<​code ​user>
 mkdir dossier1 dossier2</​code>​ mkdir dossier1 dossier2</​code>​
  
-<​code ​bash>+<​code ​user>
 vim dossier1/​test1.txt</​code>​ vim dossier1/​test1.txt</​code>​
  
Ligne 109: Ligne 109:
 fichier de test1</​code>​ fichier de test1</​code>​
  
-<​code ​bash>+<​code ​user>
 vim dossier2/​test2.txt</​code>​ vim dossier2/​test2.txt</​code>​
  
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</​code> ​ 
- ​1 ​ 3 17 dossier1/​test1.txt</​code>+<file config retour de la commande> ​1  3 17 dossier1/​test1.txt</​file>
  
 Ces trois nombres signifie : Ces trois nombres signifie :
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</​code>​ 
-total 4 +<file config retour de la commande>​total 4 
--rw-r--r-- 1 user user 17 oct.  16 18:31 test1.txt</​code>+-rw-r--r-- 1 user user 17 oct.  16 18:31 test1.txt</​file>
  
 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</​code> ​ 
-total 4+<code config retour de la commande>​total 4
 -rw-r--r-- 1 user user 17 oct.  16 18:31 test1.txt</​code>​ -rw-r--r-- 1 user user 17 oct.  16 18:31 test1.txt</​code>​
  
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</​code> ​ 
-total 4 +<file config retour de la commande>​total 4 
--rw-r--r-- 1 user user 17 oct.  16 18:31 test2.txt</​code>+-rw-r--r-- 1 user user 17 oct.  16 18:31 test2.txt</​file>
  
 On voit que l'​écriture précédente a été remplacée. On voit que l'​écriture précédente a été remplacée.
  
 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</​code> ​ 
-total 4+<file config retour de la commande>​total 4
 -rw-r--r-- 1 user user 17 oct.  16 18:53 test1.txt -rw-r--r-- 1 user user 17 oct.  16 18:53 test1.txt
 total 4 total 4
--rw-r--r-- 1 user user 17 oct.  16 18:50 test2.txt</​code>+-rw-r--r-- 1 user user 17 oct.  16 18:50 test2.txt</​file>
  
  
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</​code>​ 
-rmdir: échec de suppression de « dossier3 »: Aucun fichier ou dossier de ce type</code>+<file config retour de la commande>​rmdir: échec de suppression de « dossier3 »: Aucun fichier ou dossier de ce type</file>
  
-<​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</​code> ​ 
-rmdir: échec de suppression de « dossier3 »: Aucun fichier ou dossier de ce type</code>+<file config retour de la commande>​rmdir: échec de suppression de « dossier3 »: Aucun fichier ou dossier de ce type</file>
  
 ==== Sorties dirigées ==== ==== Sorties dirigées ====
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</​code> ​ 
-ls: impossible d'​accéder à dossier3: Aucun fichier ou dossier de ce type</code>+<file config retour de la commande>​ls: impossible d'​accéder à dossier3: Aucun fichier ou dossier de ce type</file>
  
 L'​erreur s'est bien redirigée pour s'​écrire dans le fichier **error.log**. L'​erreur s'est bien redirigée pour s'​écrire dans le fichier **error.log**.
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</​code> ​ 
-total 4 +<file config retour de la commande>​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</​file>
  
 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 resultat.txt</​code> ​ 
-total 4 +<file config retour de la commande>​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</​file>
  
-<​code ​bash+<​code ​user
-cat error.log  +cat error.log</​code> ​ 
-ls: impossible d'​accéder à dossier3: Aucun fichier ou dossier de ce type</code>+<file config retour de la commande>​ls: impossible d'​accéder à dossier3: Aucun fichier ou dossier de ce type</file>
  
 Les erreurs se sont bien ajoutées dans le fichier **error.log** et le fichier **resultat.txt** n'a pas subi de modification. :-) Les erreurs se sont bien ajoutées dans le fichier **error.log** et le fichier **resultat.txt** n'a pas subi de modification. :-)
Ligne 299: Ligne 299:
 ==== Sorties fusionnées ==== ==== Sorties fusionnées ====
  
-Il est possible de fusionner les sorties dans un seul et même fichier.Il faut utiliser le code suivant : +Il est possible de fusionner les sorties dans un seul et même fichier. Il faut utiliser le code suivant : 
-   ​2>&​1.+   ​2>&​1
  
 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</​code> ​ 
-ls: impossible d'​accéder à dossier4: Aucun fichier ou dossier de ce type</code>+<file config retour de la commande>​ls: impossible d'​accéder à dossier4: Aucun fichier ou dossier de ce type</file>
  
-Impec nous avons l'​erreur redirigée en écriture dans notre répertoire ​resultat.txt+Impecnous avons l'​erreur redirigée en écriture dans notre fichier ​resultat.txt.
  
 ==== Sorties liées ==== ==== Sorties liées ====
  
-Pour préserver le répertoire de ses précédentes écritures il suffit de doubler la sortie ainsi : +Pour conserver les précédentes écritures ​dans le fichier, ​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</​code> ​ 
-ls: impossible d'​accéder à dossier4: Aucun fichier ou dossier de ce type +<file config retour de la commande>​ls: impossible d'​accéder à dossier4: Aucun fichier ou dossier de ce type 
-ls: impossible d'​accéder à dossier5: Aucun fichier ou dossier de ce type</code>+ls: impossible d'​accéder à dossier5: Aucun fichier ou dossier de ce type</file>
  
 ===== Entrée - Sortie ===== ===== Entrée - Sortie =====
  
 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>​
doc/programmation/shell/chevrons.1406341166.txt.gz · Dernière modification: 26/07/2014 04:19 par martinux_qc

Pied de page des forums

Propulsé par FluxBB