Networking is central to Unix and Linux systems. There are a lot of networking-related commands built in, all of which can be scripted, some more easily than others. telnet and ping are traditionally a bit cumbersome to script, so they are presented here with some techniques and also netcat, a cleaner and more scriptable alternative to telnet. This section also shows some basic techniques for talking to different types of Internet servers. Finally, secure communication is a key part of today’s Internet, and even internal communications on trusted networks are encrypted more often than not. A lot of math is involved in encryption, but it does not have to be very complicated and difficult to work with. This section also includes various ways of using the OpenSSL suite of tools, not just the SSH protocol but also the lower-level SSL connections themselves, because these are actually a lot easier to use than is often assumed.


telnet is an old and insecure protocol for logging in to remote systems over the network. However, the telnet client is still a very useful network testing tool because all it does is send text back and forth between the two systems (although it does treat some characters as special protocol information, it is good enough for testing text-based protocols such as HTTP, SMTP, POP, and IMAP). It is very easy to test a web server with a simple telnet command; in the following example, the server at gives a 302 status code, which indicates ...

Get Shell Scripting: Expert Recipes for Linux, Bash, and More now with O’Reilly online learning.

O’Reilly members experience live online training, plus books, videos, and digital content from 200+ publishers.