Did you know that bash can connect to TCP/UDP servers on its own, without using
telnet (or even awk!)?
I learned this in the abyss of
info bash: it mentions that redirects like
/dev/fd/FD, etc, are treated specially. One of redirections on the list was
/dev/tcp/HOST/PORT—I could not believe my eyes!
After figuring out how to use the same file descriptor for reading and writing, I was able to make a simple HTTP request to Google:
$ (exec 3<>/dev/tcp/www.google.com/80 ; echo "GET /search?q=bash+madness HTTP/1.0" >&3; echo >&3; cat <&3 ) | less
Yes, it’s that simple.