One nice trick I used a lot when in college is that some postscript network printers would print raw postscript sent to them on a specific port (which I can't remember sorry). This allowed me to use netcat toprint my documents bypassing the college's print quota system and everyone who would be waiting in the queue.
cat file.ps >/dev/tcp/10.2.3.4/9100
I despise their policy of diddling with every upstream package -- disabling default build options, removing config files, separating the peas from the carrots, splitting pieces off into new packages, and all that anal-retentive bullshit. It's much worse on systems where there are fewer people keeping an eye on the maintainers -- ever try to use fink?
They waste nearly all of their effort doing the fussiest of tasks. The root issue is the pointless 'version' freezes -- they end up forking every single upstream project, being careful to never backport features (only 'bugfixes', which are never really so when isolated from context), and aim for a zealous consistency in the wholesale removal of any features which conflict with their ideology.
I used to get pissed off when the Debian people quoted astronomical figures about how many LoC are 'in Debian', but I got over it -- they really do wear the hair shirt.
Many years ago I used this to print documents from a Java backend (which didn't support printing without a GUI+Print Dialog)... Manually generated the PCL. Bit of a hack, but did the trick.
You can do this in windows by setting up a TCP printer rather than connecting to a print server.
http://github.com/tlrobinson/wwwoosh/blob/master/wwwoosh.sh
(only handles CGI scripts at the moment, could be modified to serve files, etc)
ssh -D is also awesome for when you need a quick http tunnel.
Another trick I picked up is basically:
nc -l [port] | named_pipe | nc [other_host] [port]
That will tunnel things between two netcat instances, effectively setting up a tunnel. Replace 'named_pipe' with a shell and you have a quick and dirty remote shell.2048 is the port you're forwarding.
Machine B:
machine_b$ mkfifo /tmp/tunn
machine_b$ nc -k -l 2048 < /tmp/tunn | nc [machine_c] 2048 > /tmp/tunn &
You should now have a working tunnel. Everything sent to B on 2048 will be sent to C:2048That said BashReduce uses the Debian version of Netcat which is different from every other version I could find. I ended up running Debian in VMWare to get BashReduce up and running on my Mac.
dsthost# nc -l 1234 | tar -xvzf - -C .
srchost# tar -xzf - . | nc dsthost 1234
Sometimes it's meaningful to avoid telnet because of the terminal negotiation it does. Other times, telnet is useful because it can do line buffered input, allowing line edits (I often mistype the protocol version string when testing HTTP directly).