LIEN::Deux astuces Bash tirées d’un super blog !!
juillet 24, 2007
Voici juste un avant gout :
exec 5<> /dev/tcp/www.google.com/80 printf "GET / HTTP/1.0\n\n" >&5 cat <&5 exec 5>&-
et
diff <(find dir1) <(find dir2)
le blog :
http://unixjunkie.blogspot.com/
la page en question :
http://unixjunkie.blogspot.com/2006/01/two-cool-bash-tricks.html
Je conseil surtout la lecture des commentaires !!
ouaip. bon, utilisant d’habitude tcsh (oui, je sais, je suis un mécréant), j’ai été déçu de voir que “/dev/tcp/xxx.xxx.com/12345″ n’existait pas vraiment
et puis j’ai ouvert un bash, et j’ai obtenu ceci:
:~$ exec 5<> /dev/tcp/www.google.com/80
bash: /dev/tcp/www.google.com/80: No such file or directory
:~$ printf “GET / HTTP/1.0\n\n” >&5
bash: 5: Bad file descriptor
:~$ cat &-
au fait, tu peux nous expliquer le “5″ ?
oh, GNU bash, version 3.2.13(1)-release (i486-pc-linux-gnu)
Copyright (C) 2005 Free Software Foundation, Inc.
au cas où
Sylvain, Je viens de corriger la version du script présente sur mon blog , certains caractères manquaient à l’appel.
Pour ma part version du bash :
GNU bash, version 3.2.9(1)-release (i686-redhat-linux-gnu)
Copyright (C) 2005 Free Software Foundation, Inc.
Chez moi il fonctionne de la manière suivante :
[bodman@bodman ~]$ exec 3 /dev/tcp/www.google.com/80
[bodman@bodman ~]$ printf “GET / HTTP/1.0\n\n” >&3
[bodman@bodman ~]$ cat <&3
HTTP/1.0 302 Found
….
Comme on peut le voir le 5 s’est changé en 3, c’était pour illustrer une réponse à ta question. En bash on peut distinguer plusieurs flux d’entrée et de sortie. Les flux 0 à 2 sont déjà employés respectivement à l’entrée standard, la sortie standard et la sortie d’exception. Alors à partir de 3 c’est libre usage aux utilisateurs (enfin … c’est rare). Il est donc possible de faire communiquer des commandes au travers de ces sorties.
C’est la rareté de l’utilisation de ces flux qui m’a donc poussé à publier un tel code
ouaip. chou blanc sur mon ubuntu. J’imagine qu’il doit s’agir d’une substitution propre à certaines distributions linux et pas de quelque-chose de suffisamment standard (ou alors je m’y prends comme un manche
).
Enfin, bonne pioche quand même ^_^
hmm.. i guess the default configuration option –disable-net-redirections in debian distro explains why i cannot use the feature
On dirait bien qu’ils ont désactivé les redirections réseaux sur les debian (pour des raisons de sécurité que je peux bien comprendre