Years ago I purchased a copy of Linux in a Nutshell, fourth edition. That book has been well used and is looking a bit shabby. When O’Reilly offered me a free review copy of Linux in a Nutshell, sixth edition, I jumped at the chance. Some of the thoughts that follow will apply to either edition (as well as the not-reviewed fifth edition, which I don’t have), but I will point out some of the more important or obvious updates to help others who also own older editions to determine whether the changes are sufficient to convince them to buy the new version.
This book is not intended as a tutorial, but rather as a quick reference. While the irony of titling a 900+ page book “… in a Nutshell” is not lost on me, like all of the books in O’Reilly’s Nutshell series, this book is a fabulous resource for finding out the details of a specific command or concept rapidly.
Let me start with the foundation for my opinion that this book is one of the most useful and important books for anyone who uses Linux from the command line on a regular basis or wants to be able to or plans to do so. Any command you should desire to use is listed in chapter 3, with the command’s syntax and options. This gives you one place to look that does not require an internet connection or the patience to scroll up and down reading man pages for commands. This is a book about Linux as it was originally conceived and intended: a powerful operating system based directly upon and consistent with the philosophy and design of Unix, but free for anyone to download, install, copy, modify, share and use.
This book is not about how to use Linux on the desktop, and in fact, the sixth edition does not cover the Linux desktop at all. What you do find are discussions, descriptions, and definitions of all of the main tools and tricks a person needs to get work accomplished using Linux as a platform–not the specific programming languages like C, Java or Python, but the underlying tools such as commands from the GNU project and BSD, editors like vi and emacs, using the bash shell, source code management using subversion and git (both new to this edition, replacing a discussion of CVS), and great introductions to Linux system and network administration. In addition, we have a wonderful new chapter on virtualization command line tools that covers all the main options such as KVM, Xen and VMware.
I am amazed that my description thus far has only scratched the surface of the book. I haven’t yet mentioned the chapters covering sed and gawk, the discussion of software package management, the chapter detailing LILO and Grub boot loaders, or the lovely section on pattern matching which should save a lot of people a good amount of time.
My disappointments in the book are a bit niggly. While the book was written and tested using each of the main Linux distributions (Debian, Ubuntu, Fedora and SUSE), there have been a couple of updates to software covered in the book that were not available when the book went to press. Since I know how long it takes to write and prepare a manuscript for printing, it is kind of silly for me to want a book that was published in September 2009 to cover Windows 7 (although dual booting with earlier versions is covered), ext4, or Grub2, even if these are all current in late October 2009 (the latter two being included in Ubuntu 9.10).
The positives are that this is a clear, well written and edited (disclosure: I worked with one of the editors, Andy Oram, on VMware Cookbook), and filled with valuable information with an easy to use index and table of contents with a tighter than previous focus on the internal bits of Linux without the earlier distractions of trying to mention GNOME and KDE or a wider variety of shell options while only covering each with too little detail to be useful. This edition expands the content on the things it does cover to a very useful level of detail while making the hard decision of what to omit to keep the book within a bindable number of pages.
In any edition, this book has a permanent place on my shelf for reference. If you own an older version, the decision to buy the latest edition will depend on whether you want or need the absolute latest info on specific commands (this stuff doesn’t change often, but it does change) and whether you are interested in the new or expanded material covered in this edition as outlined above. If you never use the command line in Linux, the book might not interest you. Otherwise, I can’t imagine using Linux without having a copy nearby.
Disclosures: I bought an earlier edition, but was given the sixth edition free by O’Reilly as a review copy, I write for O’Reilly, and I have worked with one of the editors who also worked on this book.