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
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>&1Remarque :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