MagPI 3 Page 11

De Le French MagPi
Aller à : Navigation, rechercher

Vous ne devriez voir aucune réponse. Le symbole ">" indique que le résultat doit être envoyé dans un fichier appelé "maliste" au lieu d'être affiché à l'écran. Le contenu du fichier peut être affiché avec la commande...

cat maliste

Vous devez constater que ce fichier contient maintenant la liste qui avait été envoyée à l'écran. En quoi cela est-il utile ? Nous pouvons à présent lancer une autre commande sur ce fichier, par exemple pour trier la liste, nous utiliserons la commande...

sort maliste

Ou pour trouver si le mot "bonjour" apparait dans la liste, nous pourrions taper cette commande...

grep "bonjour" maliste

Ou encore, pour compter le nombre de lignes de la liste, ce serait cette commande...

wc -l maliste

Cela démontre qu'il est possible de lancer une commande qui utilise la sortie d'une autre commande. Cependant, il est très peu pratique de devoir créer un fichier temporaire à chaque fois. Heureusement, il existe un moyen de relier la sortie d'une commande à l'entrée d'une autre. Cela est appelé un "tube" (pipe en anglais) et est représenté par le symbole "|" (voir en haut de la page 13). Voyons quelques exemples...


Une liste triée de tous les programmes C

sudo find / -name *.c | sort

Le nombre total de programmes C

sudo find / -name *.c | wc -l

Combien de programmes C contiennent le mot "bonjour" dans leur nom de fichier ?

sudo find / -name *.c | grep "bonjour" | wc -l

La possibilité de combiner des commandes est l'un des aspects les plus importants de la ligne de commande sous Linux. Il en suffit de quelques-unes pour créer une infinité de solutions pratiques. Cela revient à donner des briques, du bois et du verre à un constructeur ; il n'y a aucune limite à ce qu'il est possible de créer lorsque les différents éléments sont réunis.

Cela répond également à une autre question : si vous demandez à deux experts Linux comment résoudre un problème, pourquoi obtenez-vous deux réponses (ou plus) ? C'est parce-que les blocs de construction de base peuvent être combinés les uns avec les autres si bien qu'il y a beaucoup de façons de répondre à votre question.


La méthode la plus répandue pour combiner des commandes consiste à utiliser des tubes, mais nous pouvons en détailler d'autres.


Pour créer une séquence de commandes, celles-ci doivent être séparées par le symbole ";". Illustrons cela en créant une belle liste de programmes C lisible par un humain.

echo "Voici une liste de vos programmes C" ; sudo find / -name *.c ; echo "Fin de liste, bonne journée"

Vous pouvez même placer des parenthèses "()" autour de la séquence de commandes pour qu'elle soit traitée comme une commande unique. Par exemple, pour envoyer le résultat de la séquence de commandes vers un fichier...

(echo "Voici une liste de vos programmes C" ; sudo find / -name *.c ; echo "Fin de liste, bonne journée") > maliste

Comment éditer des commandes
Vous allez vite vous rendre compte que vous tapez encore et toujours les mêmes commandes. Peut-être parce-que vous modifiez un peu la commande ou que vous corrigez des erreurs.


Taper la même longue commande plusieurs fois peut se révéler très frustrant. Heureusement, il existe un moyen plus simple. Appuyez sur la flèche haut pour parcourir l'historique de vos commandes récentes. Vous pouvez vous déplacer dans la commande avec les flèches gauche et droite pour modifier le texte.


Outils personnels
Espaces de noms

Variantes
Actions
Navigation
Boîte à outils