Sous Linux, le pipe
La commande vous permet d'envoyer la sortie d'une commande à une autre. La canalisation, comme le terme l'indique, peut rediriger la sortie, l'entrée ou l'erreur standard d'un processus vers un autre pour un traitement ultérieur.
La syntaxe du pipe
ou unnamed pipe
la commande est le |
caractère entre deux commandes :
Command-1 | Command-2 | …| Command-N
Ici, le tube n'est pas accessible via une autre session ; il est créé temporairement pour s'adapter à l'exécution de Command-1
et rediriger la sortie standard. Il est supprimé après une exécution réussie.
Plus de ressources Linux
- Aide-mémoire des commandes Linux
- Aide-mémoire des commandes Linux avancées
- Cours en ligne gratuit :Présentation technique de RHEL
- Aide-mémoire sur le réseau Linux
- Aide-mémoire SELinux
- Aide-mémoire sur les commandes courantes de Linux
- Que sont les conteneurs Linux ?
- Nos derniers articles Linux
Dans l'exemple ci-dessus, contents.txt
contient une liste de tous les fichiers d'un répertoire particulier, en particulier la sortie de ls -al
commande. On commence par grep
les noms de fichiers avec le mot clé "file" de contents.txt
par tuyauterie (comme indiqué), donc la sortie du cat
La commande est fournie comme entrée pour le grep
commande. Ensuite, nous ajoutons une canalisation pour exécuter le awk
commande, qui affiche la colonne 9 de la sortie filtrée de grep
commande. Nous pouvons également compter le nombre de lignes dans contents.txt
en utilisant le wc -l
commande.
Un canal nommé peut durer tant que le système est opérationnel ou jusqu'à ce qu'il soit supprimé. C'est un fichier spécial qui suit le mécanisme FIFO (premier entré, premier sorti). Il peut être utilisé comme un fichier normal; c'est-à-dire que vous pouvez y écrire, y lire et l'ouvrir ou le fermer. Pour créer un tube nommé, la commande est :
mkfifo <pipe-name>
Cela crée un fichier de canal nommé qui peut être utilisé même sur plusieurs sessions shell.
Une autre façon de créer un canal nommé FIFO consiste à utiliser cette commande :
mknod p <pipe-name>
Pour rediriger une sortie standard de n'importe quelle commande vers un autre processus, utilisez le >
symbole. Pour rediriger une entrée standard de n'importe quelle commande, utilisez le <
symbole.
Comme indiqué ci-dessus, la sortie de ls -al
la commande est redirigée vers contents.txt
et inséré dans le fichier. De même, l'entrée pour la tail
la commande est fournie sous la forme contents.txt
via le <
symbole.
Ici, nous avons créé un tube nommé, my-named-pipe
, et redirigé la sortie de ls -al
commande dans le tube nommé. Nous pouvons alors ouvrir une nouvelle session shell et cat
le contenu du tube nommé, qui affiche la sortie de ls -al
commande, comme précédemment fourni. Notez que la taille du tube nommé est zéro et qu'il porte la désignation "p".
Ainsi, la prochaine fois que vous travaillerez avec des commandes sur le terminal Linux et que vous vous retrouverez à déplacer des données entre les commandes, espérons qu'un tube rendra le processus rapide et facile.