GNU/Linux >> Tutoriels Linux >  >> Linux

Tutoriel de commande Linux mkfifo pour les débutants (avec exemples)

Si vous êtes même un utilisateur modéré de la ligne de commande Linux, vous devez être conscient des canaux, une fonctionnalité de ligne de commande fondamentale qui permet aux processus de communiquer. Ensuite, il y a un concept de tubes nommés (oui, des tubes avec des noms, pour que vous puissiez en faire plus avec les tubes). Le mkfifo La commande vous permet de créer de tels canaux nommés.

Dans ce didacticiel, nous aborderons les bases de mkfifo à l'aide d'exemples faciles à comprendre. Mais avant cela, il convient de mentionner que tous les exemples ici ont été testés sur Ubuntu 16.04 LTS.

Commande Linux mkfifo

La commande mkfifo vous permet essentiellement de créer des FIFO (c'est-à-dire des canaux nommés). Voici la syntaxe de la commande :

mkfifo [OPTION]... NAME...

Et voici comment la page de manuel de l'outil l'explique :

Create named pipes (FIFOs) with the given NAMEs.

Voici quelques exemples de style Q&A qui devraient vous donner une bonne idée du fonctionnement de mkfifo.

Q1. Que sont exactement les canaux nommés ?

Pour comprendre cela, vous devez d'abord être conscient du concept de tuyaux de base. Vous auriez vu des commandes contenant une barre verticale (|). Cette barre s'appelle un tuyau. Ce qu'il fait, c'est créer un canal de communication entre les deux processus (lorsque la commande complète est exécutée).

Par exemple :

ls | grep .txt

La commande mentionnée ci-dessus se compose de deux programmes : ls et grep. Ces deux programmes sont séparés par un tube (|). Donc, ce que pipe fait ici, c'est qu'il crée un canal de communication entre ces programmes - lorsque la commande susmentionnée est exécutée, la sortie de ls est transmise en entrée à grep. Donc, finalement, la sortie qui s'affiche sur le terminal se compose uniquement des entrées contenant la chaîne '.txt'.

C'était donc un rappel rapide des tuyaux normaux. Vient maintenant le concept de tubes nommés. Comme son nom l'indique, ce sont des tuyaux avec des noms. Vous pouvez créer un canal nommé à l'aide de la commande mkfifo. Par exemple :

mkfifo pipe2

Donc 'pipe2' est maintenant un tube nommé. Vient maintenant la question de savoir comment les canaux nommés sont plus utiles ? Eh bien, considérez le cas où vous avez un processus en cours d'exécution dans un terminal et produisant une sortie, et ce que vous voulez, c'est canaliser cette sortie vers un autre terminal. Donc ici, un tube nommé pourrait être d'une grande aide.

Par exemple, supposons que ls soit le processus en cours d'exécution dans le premier terminal et que vous souhaitiez voir sa sortie dans un autre terminal. Voici donc ce que vous pouvez faire :

ls > pipe2

et voici ce que vous pouvez faire dans le second terminal :

cat < pipe2

Q2. Comment identifier les canaux nommés ?

Les canaux nommés sont accessibles normalement comme des fichiers. Cela signifie donc que vous pouvez utiliser la commande ls pour y accéder. Si vous voyez les autorisations d'accès pour un canal nommé, vous verrez un 'p' au début. Cela signifie que le fichier en question est un canal nommé. Voici un exemple :

Q3. Comment définir des autorisations d'accès personnalisées ?

Comme vous pouvez le voir dans les questions et réponses précédentes, les autorisations d'accès par défaut pour les canaux nommés sont "rw", "rw" et "r" (pour l'utilisateur, le groupe et les autres, respectivement). Cependant, si vous le souhaitez, vous pouvez également définir des autorisations personnalisées, ce que vous pouvez faire à l'aide de l'option -m.

Par exemple :

mkfifo pipe3 -m700

La capture d'écran suivante confirme que les autorisations personnalisées ont été définies :

Pour en savoir plus sur mkfifo, vous pouvez utiliser le --help et --version options.

Conclusion

Ainsi, selon le type de travail que vous effectuez sur la ligne de commande Linux, la commande mkfifo peut s'avérer très utile pour vous. Une fois que vous avez terminé avec l'utilisation de base dont nous avons discuté ici, vous pouvez en savoir plus sur l'outil en vous rendant sur sa page de manuel.


Linux
  1. Linux expand Tutoriel de commande pour les débutants (avec exemples)

  2. Tutoriel de commande de facteur Linux pour les débutants (avec exemples)

  3. Tutoriel de commande Linux tac pour les débutants (avec exemples)

  4. Tutoriel de commande pour les utilisateurs Linux pour les débutants (avec exemples)

  5. Tutoriel de commande Linux sum pour les débutants (avec exemples)

Tutoriel de commande Linux sha1sum pour les débutants (avec exemples)

Tutoriel de commande Linux look pour les débutants (avec exemples)

Tutoriel de commande Linux lsattr pour les débutants (avec exemples)

Tutoriel de commande Linux tload pour les débutants (avec exemples)

Tutoriel de commande Linux znew pour les débutants (avec exemples)

Tutoriel de commande Linux tr pour les débutants (avec exemples)