There is no shortage of Linux documentation, but how do you choose the books or reference materials that will help you the most? It turns out that most of the documentation falls into typical categories of technical books: reference guide or textbook -- and they aren't too easy to use, let alone read through.
But I want to talk about a particularly refreshingly written Linux book. It is not new (2000), but I happened across it while cleaning my office last night (in the corner used to store empty Cheetos bags). It's Linux Problem Solver by Brian Ward. What makes this book so different is its organization. Each chapter and section starts with a very good description of a subject (such as TCP, printing, Kernel). The author assumes you are a competent computer person, so he describes topics quickly and accurately, with an eye towards configuring and troubleshooting. After each section there are one or more typical problems, and solutions to them. For example, after the discussion of how you can control TCP services with the /etc/hosts.allow and /etc/hosts.deny files, he proceeds to discuss the types of services that ignore those files, and how to fix the problem using IP filters.
The whole discussion of IP filters, firewalls and routing was one of the best I have read. The book has 115 problems listed out and indexed, but I think that it will solve many more than that, especially for experienced Unix administrators, because of its great explanations of how things work. I highly recommend this book to experts of other flavors of Unix administration who need to know which methods are used in Linux. The descriptions of /proc, and configuring ppp are especially good.
Several of the problem solutions have stuck in my mind, either because the solution would have taken me some time to figure out, or because the book has a particularly good explanation of a problem -- which would allow me to point an administrator to this book, and get back to work. That saves time, and time is something I value highly. For example, the importance of synchronizing clocks between proxy servers and the machines they serve is addressed via a surprising symptom in problem number 48 -- buy the book to find out what it is.
And Problem 107, as another example, was a great one: A user can't stay logged in; he keeps getting immediately logged out. Sounds like a startup-file issue, and I am sure I would have been checking syntax, or making sure the home directory was valid. Brian's solution was one that I probably would have overlooked for a while: an "exit" statement at the end of the .profile file. Since so many shell script examples throw the "exit" statement in at the end, it is easy to picture a neophyte power user following such an example. Because the .profile file is run sourced (not in a sub-shell), the user will be logged out of many types of logins.
Here's a final example: problem 109, which hits a pet peeve of mine. I hate seeing people use a '>' character as the last character in a shell prompt. It begs for people to copy it by mistake when doing mouse copy/paste operations, thus executing things like '> date' instead of 'date', which would create a file named 'date'.
Even if you don't have time to read the whole book, just browsing through the problem/solution boxes is worth the price of admission.
Editor's note: This book is available in limited quantities at Amazon.com.
Fred Mallett is founder of FAME Computer Education, which provides standup delivery of educational classes on a variety of UNIX, Linux and Win32 related subjects. Reach him at email@example.com.