Linux

Comprendre les canaux et la redirection pour la ligne de commande Linux

Deux fonctionnalités puissantes du shell de ligne de commande Linux sont la redirection et les tuyaux qui permettent d’envoyer la sortie (ou même l’entrée) d’un programme vers un fichier ou un autre programme. Vous avez peut-être déjà utilisé ces fonctionnalités sans le savoir. Chaque fois que vous avez utilisé le signe « > » dans une commande ou « | » alors vous avez utilisé la redirection ou un tuyau, respectivement.

Sur tous les systèmes d’exploitation de type Unix, comme Linux et FreeBSD, la sortie d’un programme en ligne de commande va automatiquement à un endroit connu sous le nom de sortie standard (stdout). Par défaut, la sortie standard est l’écran (la console) mais cela peut être modifié à l’aide de tuyaux et de redirection. De même, le clavier est considéré comme l’entrée standard (stdin) et comme pour la sortie standard, il peut être modifié.

Tuyaux

Les tuyaux vous permettent de canaliser la sortie d’une commande vers une autre où elle sera utilisée comme entrée. En d’autres termes, la sortie standard d’un programme devient l’entrée standard d’un autre.

La commande « more » prend l’entrée standard et la pagine sur la sortie standard (l’écran). Cela signifie que si une commande affiche plus d’informations que ce qui peut être affiché sur un écran, le programme « plus » s’arrêtera après le premier écran plein (page) et attendra que l’utilisateur appuie sur ESPACE pour voir la page suivante ou RETOUR pour voir le ligne suivante.

Psssssst :  Comment vérifier ma vitesse Ethernet Linux ?

Voici un exemple qui listera tous les fichiers, avec des détails (-la) dans le répertoire /dev et redirigera la sortie vers plus. Le répertoire /dev devrait contenir des dizaines de fichiers et donc s’assurer qu’il en faut plus à paginer.

Remarquez l’invite –More– en bas de l’écran. Appuyez sur ESPACE pour voir la page suivante et continuez à appuyer sur ESPACE jusqu’à ce que la sortie soit terminée.

Voici un autre exemple de pipe, utilisant cette fois l’outil « wc » (nombre de mots).

wc compte le nombre de lignes, de mots et de caractères dans l’entrée standard. Si vous utilisez le paramètre -l, il n’affichera que le nombre de lignes, ce qui est un bon moyen de voir combien de fichiers se trouvent dans un répertoire !

Le didacticiel In Depth Look at Linux’s Archiving and Compression Commands contient un exemple utilisant tar et 7-Zip ensemble :

Dans ce cas, le tiret après l’option f indique à tar d’envoyer sa sortie à la sortie standard et non à un fichier. La sortie de tar sera acheminée dans le tuyau dans 7zr qui attend l’entrée de la norme en raison de l’option -si.

Redirection

La redirection est similaire aux pipes, sauf qu’elle utilise des fichiers plutôt qu’un autre programme. La sortie standard d’un programme est l’écran. En utilisant le symbole > (supérieur à), la sortie d’un programme peut être envoyée dans un fichier. Voici à nouveau une liste de répertoires de /dev mais cette fois redirigé vers un fichier appelé listing.txt

Psssssst :  Quel est le but du montage sous Linux ?

Il n’y aura rien affiché sur le terminal car tout a été envoyé au fichier. Vous pouvez jeter un œil au fichier à l’aide de la commande cat (qui peut être redirigée vers more) ou pour plus de commodité, vous pouvez simplement utiliser la commande more seule :

Si listing.txt existait déjà, il sera écrasé. Mais vous pouvez ajouter à un fichier existant en utilisant >> comme ceci :

La première redirection écrasera le fichier listing.txt tandis que la seconde s’y ajoutera.

La commande cat peut être utilisée pour créer un fichier en utilisant la redirection, par exemple :

Maintenant, quel que soit le texte que vous tapez, il sera envoyé au fichier atextfile.txt jusqu’à ce que vous appuyiez sur Ctrl-D, auquel cas le fichier sera fermé et vous reviendrez à l’invite de commande. Si vous souhaitez ajouter plus de texte au fichier, utilisez la même commande mais avec deux signes supérieur à (>>).

Conclusion

De nombreux programmes de ligne de commande Linux sont conçus pour fonctionner avec la redirection et les canaux, essayez de les expérimenter et voyez comment ils interagissent. Par exemple, la sortie de la commande ps, qui répertorie les processus en cours, peut être redirigée vers grep. Voyez si vous pouvez trouver comment répertorier les processus appartenant à root.

Cet article est-il utile ? Oui Non

Bouton retour en haut de la page

Adblock détecté

Veuillez désactiver votre bloqueur de publicités pour pouvoir visualiser le contenu de la page. Pour un site indépendant avec du contenu gratuit, c’est une question de vie ou de mort d’avoir de la publicité. Merci de votre compréhension! Merci