Commandes Linux

Commande de tuyau Linux

Commande de tuyau Linux
Cette commande "pipe" est facilement disponible sur les plates-formes UNIX/Linux. Cette commande dirige la sortie de la commande précédente vers la commande suivante. Il y a littéralement des TONNES de situations où cette méthode offre une valeur sérieuse.Avant de plonger plus profondément, il y a quelque chose à savoir de. Chaque programme du système UNIX/Linux possède 3 flux de données intégrés.

Lorsque nous allons travailler avec des astuces "pipe", "pipe" prendra le STDOUT d'une commande et le transmettra au STDIN de la commande suivante.

Voyons quelques-unes des manières les plus courantes d'intégrer la commande « pipe » dans votre utilisation quotidienne.

Commande de tuyau

Utilisation de base

Il est préférable d'élaborer sur la méthode de travail du « tuyau » avec un exemple en direct, à droite? Commençons. La commande suivante indiquera à "pacman", le gestionnaire de packages par défaut pour Arch et toutes les distributions basées sur Arch, d'imprimer tous les packages installés sur le système.

pacman -Qqe

C'est une très longue liste de packages. Que diriez-vous de ramasser seulement quelques composants? Nous pourrions utiliser "grep". Mais comment? Une façon serait de vider la sortie dans un fichier temporaire, de « grep » la sortie souhaitée et de supprimer le fichier. Cette série de tâches, à elle seule, peut être transformée en un script. Mais nous ne scriptons que pour de très grandes choses. Pour cette tâche, faisons appel à la puissance du « tuyau »!

pacman -Qqe | grep

Génial, n'est-ce pas? Le " | " le signe est l'appel à la commande "pipe". Il saisit le STDOUT de la section gauche et l'introduit dans le STDIN de la section droite.

Dans l'exemple ci-dessus, la commande "pipe" a en fait transmis la sortie à la fin de la partie "grep". Voici comment ça se passe.

pacman -Qqe > ~/Desktop/pacman_package.SMS
grep python ~/Desktop/pacman_package.SMS

Tuyauterie multiple

En gros, il n'y a rien de spécial avec l'utilisation avancée de la commande "pipe". C'est entièrement à vous de savoir comment l'utiliser.

Par exemple, commençons par empiler plusieurs tuyaux.

pacman -Qqe | grep p | grep t | grep py

La sortie de la commande pacman est filtrée de plus en plus par "grep" à travers une série de tuyaux.

Parfois, lorsque nous travaillons avec le contenu d'un fichier, il peut être vraiment très volumineux. Trouver le bon endroit de notre entrée souhaitée peut être difficile. Cherchons toutes les entrées qui incluent les chiffres 1 et 2.

démonstration de chat.txt | grep -n 1 | grep -n 2

Manipulation de liste de fichiers et de répertoires

Que faire lorsque vous avez affaire à un répertoire contenant des TONNES de fichiers? C'est assez ennuyeux de faire défiler toute la liste. Bien sûr, pourquoi ne pas le rendre plus supportable avec un tuyau? Dans cet exemple, regardons la liste de tous les fichiers dans le dossier "/usr/bin".

ls -l | Suite

Ici, "ls" imprime tous les fichiers et leurs informations. Ensuite, "pipe" le passe à "plus" pour travailler avec cela. Si vous ne le saviez pas, « plus » est un outil qui transforme les textes en une vue écran à la fois. Cependant, c'est un vieil outil et selon la documentation officielle, "moins" est plus recommandé.

ls -l /usr/bin | moins

Sortie de tri

Il y a un outil intégré "tri" qui prendra la saisie de texte et les triera. Cet outil est un vrai bijou si vous travaillez avec quelque chose de vraiment désordonné. Par exemple, j'ai ce fichier plein de chaînes aléatoires.

démonstration de chat.SMS

Il suffit de le diriger pour « trier ».

démonstration de chat.txt | sorte

C'est mieux!

Impression des correspondances d'un motif particulier

ls -l | trouve ./ -type f -nom "*.txt" -exec grep 00110011 \;

C'est une commande assez tordue, non? Au début, "ls" affiche la liste de tous les fichiers du répertoire. L'outil "trouver" prend la sortie, recherche ".txt" et invoque "grep" pour rechercher "00110011". Cette commande vérifiera chaque fichier texte du répertoire avec l'extension TXT et recherchera les correspondances.

Imprimer le contenu du fichier d'une plage particulière

Lorsque vous travaillez avec un gros fichier, il est courant d'avoir besoin de vérifier le contenu d'une certaine plage. C'est exactement ce que nous pouvons faire avec un savant combo de "chat", "tête", "queue" et bien sûr, "tuyau". L'outil "tête" sort la première partie d'un contenu et "queue" sort la dernière partie.

chat | tête -6

chat | queue -6

Valeurs uniques

Lorsque vous travaillez avec des sorties en double, cela peut être assez ennuyeux. Parfois, une entrée en double peut causer de graves problèmes. Dans cet exemple, diffusons « uniq » sur un flux de texte et enregistrons-le dans un fichier séparé.

Par exemple, voici un fichier texte contenant une grande liste de nombres de 2 chiffres. Il y a certainement du contenu en double ici, à droite?

chat en double.txt | sorte

Maintenant, effectuons le processus de filtrage.

chat en double.txt | trier | unique > unique.SMS

Découvrez la sortie.

chauve-souris unique.SMS

Regarde mieux!

Tuyaux d'erreur

C'est une méthode de tuyauterie intéressante. Cette méthode permet de rediriger le STDERR vers STDOUT et de procéder à la tuyauterie. Ceci est indiqué par le symbole « |& » (sans les guillemets). Par exemple, créons une erreur et envoyons la sortie à un autre outil. Dans cet exemple, j'ai juste tapé une commande aléatoire et passé l'erreur à "grep".

adsfds |& grep n

Dernières pensées

Bien que le « tuyau » lui-même soit de nature assez simpliste, son fonctionnement offre un moyen très polyvalent d'utiliser la méthode de manière infinie. Si vous aimez les scripts Bash, c'est bien plus utile. Parfois, vous pouvez simplement faire des choses folles! En savoir plus sur les scripts Bash.

Top 5 des produits de souris d'ordinateur ergonomiques pour Linux
L'utilisation prolongée de l'ordinateur provoque-t-elle des douleurs au poignet ou aux doigts? Vous souffrez de raideurs articulaires et devez constam...
Comment modifier les paramètres de la souris et du pavé tactile à l'aide de Xinput sous Linux
La plupart des distributions Linux sont livrées avec la bibliothèque "libinput" par défaut pour gérer les événements d'entrée sur un système. Il peut ...
Remappez les boutons de votre souris différemment pour différents logiciels avec X-Mouse Button Control
Peut-être que vous avez besoin d'un outil qui pourrait faire changer le contrôle de votre souris avec chaque application que vous utilisez. Si tel est...