Sometimes, you want to do something more complicated than can be expressed on a single command line. Once you’ve done something complicated more than two or three times, you’ll probably begin to think that there must be a better way to do it (which doesn’t involve a whole bunch of typing each time). This is usually when sysadmins begin to evolve into that strange breed of problem solver known as the programmer.
This section is not a crash course in programming, but rather a demonstration of a couple of pieces of applied programming hackery. I’ve found that the best way to learn how to program is to learn by doing, and the easiest way to get started is to see how other people have solved similar problems. The examples in this section are useful on their own but are even more useful as a starting point in building your own custom tools. Even if you’re an old hand at scripting, take a look at some of these examples for some ideas on how to use some lesser known invocation switches and language features to get more done with less effort.
Keep your local environment in sync on all of your servers
When you use a machine for some time, you will inevitably end up customizing it to your liking. As we saw in [Hack #10], the shell environment is a tremendously flexible tool that can be fine tuned to your precise specifications.
Usually these little tweaks take weeks (or even years) to perfect and span several files: ...