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
Prochaine révision Les deux révisions suivantes
doc:programmation:shell:chevrons [16/07/2014 10:21]
smolski [Chevron >]
doc:programmation:shell:chevrons [26/04/2015 17:48]
milou [Corollaire rigolo]
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 17: Ligne 17:
 ===== On peut se placer ===== ===== On peut se placer =====
  
-tout d'​abord dans le dossier désiré (pour se 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>​
-C'​est-à-dire que l'on crée le "​nomdufichier"​ depuis son répertoire personnel, sans s'​être déplacé ​on niveau du répertoire dans lequel on veut placer "​nomdufichier"​.+C'​est-à-dire que l'on crée le "​nomdufichier"​ depuis son répertoire personnel, sans s'​être déplacé ​au niveau du répertoire dans lequel on veut placer "​nomdufichier"​.
  
 ==== Si le fichier existe :==== ==== Si le fichier existe :====
Ligne 37: Ligne 37:
 Pour créer un fichier, les commandes ''>''​ et [[:​doc:​systeme:​touch | commande touch]] sont équivalentes. Pour créer un fichier, les commandes ''>''​ et [[:​doc:​systeme:​touch | commande touch]] sont équivalentes.
  
-La touch sert avant tout __à mettre ​ à jour la date et l'​heure__ d’accès pour la dernière modification d'un ou plusieurs ​fichier ​selon la date actuelle.+La touch sert avant tout __à mettre ​ à jour la date et l'​heure__ d’accès pour la dernière modification d'un ou plusieurs ​fichiers ​selon la date actuelle.
  
 Dans le cas d'un seul fichier, s'il n'​existe pas, il sera alors créé. Dans le cas d'un seul fichier, s'il n'​existe pas, il sera alors créé.
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+<code bash>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</​code>​ 
-ls -lhi +<code user>ls -lhi</​code>​ 
-total 4,0K+<code bash>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</​code>​
  
 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+<code bash>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</​code>​
  
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 ​
  ​1 ​ 3 17 dossier1/​test1.txt</​code>​  ​1 ​ 3 17 dossier1/​test1.txt</​code>​
Ligne 133: Ligne 133:
 options intéressantes : options intéressantes :
   * -l : compte le nombre le lignes uniquement ;   * -l : compte le nombre le lignes uniquement ;
-  * -w : compte de mots uniquement ;+  * -w : compte ​le nombre ​de mots uniquement ;
   * -c : compte le nombre d'​octets uniquement ;   * -c : compte le nombre d'​octets uniquement ;
   * -m : compte le nombre de caractères uniquement.   * -m : compte le nombre de caractères uniquement.
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 219: Ligne 219:
 ==== Les canaux standards ==== ==== Les canaux standards ====
  
-On peut considérer un canal comme un fichier, qui possède ​sont propre descripteur par défaut, et dans lequel on peut ou lire ou écrire.+On peut considérer un canal comme un fichier, qui possède ​son propre descripteur par défaut, et dans lequel on peut ou lire ou écrire.
   - Le canal d' entrée standard se nomme « stdin » et porte le descripteur 0.   - Le canal d' entrée standard se nomme « stdin » et porte le descripteur 0.
   - Le canal de sortie standard se nomme « stdout » et porte le descripteur 1.   - Le canal de sortie standard se nomme « stdout » et porte le descripteur 1.
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>​
  
 Il y a deux redirections ici : Il y a deux redirections ici :
Ligne 251: Ligne 251:
   - 2> error.log : redirige les erreurs éventuelles dans le fichier error.log. C'est la sortie d'​erreurs.   - 2> error.log : redirige les erreurs éventuelles dans le fichier error.log. C'est la sortie d'​erreurs.
  
-Résultat dans le fichier **résultat.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>​
  
-L'​erreur s'est bien redirigé ​pour s'​écrire dans le fichier **error.log**.+L'​erreur s'est bien redirigée ​pour s'​écrire dans le fichier **error.log**.
  
 ==== Sorties doubles sauvegardées ==== ==== Sorties doubles sauvegardées ====
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>​
doc/programmation/shell/chevrons.txt · Dernière modification: 01/05/2021 12:58 par jpt

Pied de page des forums

Propulsé par FluxBB