GNU/Linux >> Tutoriels Linux >  >> Linux

Comment utiliser la redirection de commande sous Linux

Métacaractères du shell

Les métacaractères du shell sont des caractères spécifiques, généralement des symboles, qui ont une signification particulière dans le shell. Les métacaractères pris en charge dans bash sont répertoriés comme suit :

  • |  :Envoie la sortie de la commande à gauche comme entrée de la commande à droite du symbole
  • &  :Exécute le processus en arrière-plan, vous permettant de continuer à travailler sur la ligne de commande
  •  ; :Permet de lister plusieurs commandes sur une seule ligne, séparées par ce caractère
  • ()  :Regroupe les commandes et envoie leur sortie au même endroit
  • < :Obtient l'entrée pour la commande à gauche du fichier répertorié à droite de ce symbole
  • > :Envoie la sortie de la commande à gauche dans le fichier nommé à droite de ce symbole
  • onglet espace
Attention :n'utilisez pas ces métacaractères lors de la création de noms de fichiers et de répertoires. Ces caractères ont une signification particulière dans le shell.

Métacaractères de redirection

La redirection de commande est activée par les métacaractères shell suivants :

  • Redirection de l'entrée standard (<)
  • Redirection de la sortie standard (>)
  • Redirection de l'erreur type (2>)
  • Le caractère pipe (|)

Les descripteurs de fichiers

Chaque processus fonctionne avec des descripteurs de fichiers. Les descripteurs de fichier déterminent l'origine de l'entrée de la commande et la destination des messages de sortie et d'erreur. Le tableau explique les descripteurs de fichiers.

Numéro de descripteur de fichier Abréviation du descripteur de fichier Définition
0 stdin Entrée de commande standard
1 stdout Sortie de commande standard
2 stderr Erreur de commande standard

Redirection des commandes

Par défaut, le shell reçoit ou lit les entrées de l'entrée standard, le clavier et affiche la sortie et les messages d'erreur sur la sortie standard, l'écran. La redirection d'entrée force une commande à lire l'entrée à partir d'un fichier plutôt qu'à partir du clavier. La redirection de sortie envoie la sortie d'une commande dans un fichier au lieu d'envoyer la sortie à l'écran.

Redirection de l'entrée standard

Le moins de (< ) le métacaractère traite un fichier comme entrée standard au lieu de lire l'entrée du clavier.

# command < filename

ou

# command 0< filename

Par exemple, utilisez le fichier data.txt comme entrée pour la commande mailx.

# mailx -s test [email protected] < data.txt

Redirection de la sortie standard

Le supérieur à (> ) métacaractère dirige la sortie standard vers un fichier au lieu d'imprimer la sortie à l'écran.

# command > filename

ou

# command 1> filename

Si le fichier n'existe pas, le système le crée. Lorsque vous utilisez un seul métacaractère supérieur à (>), la commande écrase le contenu d'origine du fichier, si le fichier existe déjà. Lorsque vous utilisez deux caractères supérieurs à (>>), la commande ajoute la sortie au contenu d'origine du fichier.

$ command >> filename

Erreur standard de redirection

Une commande utilisant le numéro de descripteur de fichier (2) et le signe supérieur à (>) redirige tous les messages d'erreur standard vers le fichier /dev/null.

$ command 2> /dev/null

L'exemple suivant montre la sortie standard et l'erreur standard redirigée vers le fichier data.txt.

$ ls /tmp 1> data.txt 2>&1
Remarque :La syntaxe 2>&1 demande au shell de rediriger stderr (2) vers le même fichier qui reçoit stdout (1).

Le personnage de la pipe

Le caractère pipe redirige la sortie standard d'une commande vers l'entrée standard d'une autre commande. La première commande écrit la sortie sur la sortie standard et la deuxième commande lit la sortie standard de la commande précédente comme entrée standard.

$ command | command

Par exemple, utilisez la sortie standard de la commande who comme entrée standard pour la commande wc -l.

 $ who | wc -l 
35

Pour afficher une liste de tous les sous-répertoires situés dans le répertoire /etc, entrez la commande suivante.

$ ls -F /etc | grep "/" X11/
acct/
apache/
apache2/

Utilisez la sortie de la commande head comme entrée pour la commande 'xargs ls'.

head -10 data.txt | xargs ls 


Linux
  1. Comment utiliser la commande Linux grep

  2. Comment utiliser la commande history sous Linux

  3. Comment utiliser la commande d'écran Linux

  4. Comment utiliser la commande tar sous Linux

  5. Comment utiliser efficacement les pages de manuel sous Linux

Comment utiliser la commande Linux nohup

Comment utiliser la commande Linux Ping

Comment utiliser du Command sous Linux

Comment utiliser la commande sysctl sous Linux

Comment utiliser la commande d'arrêt de Linux

Comment utiliser grep sous Linux