Quelqu'un peut-il poster un exemple simple d'utilisation de canaux nommés dans Bash sous Linux?Exemple d'utilisation de canaux nommés dans Linux Bash
Répondre
L'un des meilleurs exemples d'une utilisation pratique d'un tube nommé ...
De http://en.wikipedia.org/wiki/Netcat
Un autre comportement utile est d'utiliser netcat comme proxy. Les ports et les hôtes peuvent être redirigés. Regardez cet exemple:
nc -l 12345 | nc www.google.com 80
Port la demande représente 12 345 Cela démarre un serveur nc sur le port et tous les 12 345 connexions redirigés vers google.com:80. Si un navigateur Web fait une demande à nc, la demande sera envoyée à google mais la réponse ne sera pas envoyée au navigateur Web. C'est parce que les tuyaux sont unidirectionnels. Cela peut être travaillé avec un tuyau nommé pour rediriger l'entrée et la sortie.
mkfifo backpipe
nc -l 12345 0<backpipe | nc www.google.com 80 1>backpipe
Voici les commandes:
$ mkfifo named_pipe
$ echo "Hi" > named_pipe &
$ cat named_pipe
La première commande crée le tuyau.
La deuxième commande écrit dans le tube (blocage). Le &
met cela en arrière-plan afin que vous puissiez continuer à taper des commandes dans le même shell. Il sortira lorsque le FIFO sera vidé par la commande suivante.
La dernière commande est lue dans le tube.
Je voudrais changer le # à $ donc tout n'est pas commenté (et ne pas courir en tant que root!) – alternative
C'est juste pour montrer que c'est une invite de shell! – Khaled
Il est habituel que "#" se réfère à une invite de la racine (c'est-à-dire, une invite dans un shell racine). Il n'y a rien ici qui aurait besoin d'être exécuté dans un shell racine. – thomasrutter
Ouvrez deux coques différentes et laissez-les côte à côte. Dans les deux cas, allez dans le répertoire/tmp/
cd /tmp/
Dans la première un type:
mkfifo myPipe
echo "IPC_example_between_two_shells">myPipe
Dans le second, tapez:
while read line; do echo "What has been passed through the pipe is ${line}"; done<myPipe
shell premier ne donnera pas vous invite à revenir jusqu'à ce que vous exécutiez la deuxième partie du code dans le second shell. C'est parce que le fifo lire et écrire bloque.
Vous pouvez également jeter un oeil au type FIFO en faisant ls -al myPipe
et voir les détails de ce type spécifique de fichier.
La prochaine étape serait d'embarquer le code dans un script! - J'espère que cela aide.
Est-il possible de faire des écritures non bloquantes sur le fifo? – dabicho
- 1. Canaux nommés dans c
- 2. FreeBSD, MySQL, Perl, bash: blocage intermittent sur les canaux nommés?
- 3. Qt IPC - Canaux nommés
- 4. Canaux nommés IPC
- 5. WCF sur les canaux nommés
- 6. Canaux nommés - Problème avec write() et read()
- 7. Canaux nommés de VB6 à WCF
- 8. Empêcher le conflit de canaux nommés
- 9. canaux nommés entre C# et Python
- 10. Besoin d'avoir des canaux nommés non bloquants capables de communication bidirectionnelle dans c sur Linux
- 11. Utilisation de canaux nommés de manière asynchrone avec StreamWriter
- 12. Prise en charge de HttpWebRequest pour les canaux nommés?
- 13. Prise en charge de tubes nommés Windows sous Linux
- 14. E/S asynchrones avec des canaux nommés WinAPI
- 15. SQL Exécution 2005 Fonction: TCP/IP vs canaux nommés
- 16. Programme multithreading client-serveur implémenté via des canaux nommés
- 17. Communication interprocessus en utilisant des canaux nommés en C# + PHP
- 18. Existe-t-il un moyen de détecter le trafic de canaux nommés dans Windows?
- 19. Comment puis-je obtenir une liste de tous les canaux nommés ouverts dans Windows?
- 20. commande bash linux par l'espace
- 21. Les services de données ADO.NET peuvent-ils utiliser les canaux nommés comme moyen de transport?
- 22. bash Linux: affectation de variables multiples
- 23. Utilisation de canaux nommés (ou autre chose) en tant que fichiers en mémoire
- 24. Lecture/écriture à partir de tubes nommés sous mono/Linux
- 25. Android: canaux de canalisation
- 26. bash Linux - Renommer le dossier Massive
- 27. Linux/bash conseils pour les développeurs?
- 28. comment faire MAC reconnaître linux BASH?
- 29. Configurer les pipelines lisant à partir de tubes nommés sans bloquer dans bash
- 30. fuite de mémoire Linux BASH lors de la redirection stdio
Une langue spécifique? – slashmais