on October 25, 2009
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.
on June 3, 2014
I have been asked quite a few times to recommend a book for the novice to learn Linux. This book is it. Effectively half the book is devoted to every command that typically comes standard on distributions. If you just look through those, say one or two commands a day and read the options you'll start to see what kind of capabilities Linux affords you.
Anyone looking to understand the basics will need to know package management and this gives you yum and apt-get and rpm and dpkg so you get perspective on both the Redhat and the Debian package management methods.
The bash shell, pattern matching vim (my favorite) and emacs basics to get you started. This book almost 1,000 pages and none of it wasted with useless info. Browse a couple commands a day and read the rest of the book cover to cover. You'll be rock'n Linux like a pro!
on August 8, 2011
While the book has some utility as a reference, it is not well organized. Frequently a chapter or topic starts out in the worst possible way, which is to fog things up by discussing exception cases before an introduction to the topic. Then you will frequently see examples using command line characters that have not yet been explained, followed by tables exhaustively listing the various command line characters and including truncated, frequently ambiguous explanations. There are also many cases of circular explanations, where command x is defined as being like command y, except it is case sensitive, or it uses regex rules, or what have you. But when you go to command y, you find a poor explanation, so you wind up with very very clear understanding that command x is a partially explained variant of a vaguely defined command. This book is not an expeditious way to learn, nor is it particularly effective as a quick reference. You would be better off with half as much information and twice as much effort to convey it.
This book covers the administration of, usage of, and shell programming on Linux systems. The book is an overview of Linux and serves as an excellent reference, but doesn't come close to a tutorial. This 6th edition continues to be a good extended man page for the operating system's many commands, features, and utilities. Linux has recently been extended, and most of those extensions appear to be covered in this book. You should already have a basic knowledge of Unix/Linux and just need a quick reference for when you forget something. For example, you are not going to learn how to program using gawk with the chapter included in this book. Neither will you figure out the intracies of version control and Git. The preface states that this new sixth edition has been examined and checked against the most common Linux distributions (Debian, Ubuntu, Fedora, and SUSE) so that it reflects the most useful and popular commands.
on October 14, 2010
Original review written by Celestino Bellone, JUG Lugano, [...]
I start reading this book when I was looking for a quick command reference to use for teaching linux to people that never heard of it before; I found it simply FANTASTIC! It's a clever reference of (almost) anything about linux!
Beware: if you're looking for a beginner guide, don't buy this book! As suggested by the authors, it's useful for those people who already knows linux.
This book covers thousands of commands with a clean layout (like "man" but more powerful) and other important topics such as:
- bash shell reference
- package management systems (yum, apt)
- gawk, vim, ex reference
- git, svn reference
- virtualization how-to
In few words, "Linux in a Nutshell" is a complete reference that you should always have on your desk, even if you're a linux "power user" or a system administrator.
on October 6, 2015
"Linux in a Nutshell: A Desktop Quick Reference" (6th Edition) must be close to the most complete Linux reference book on the planet. My copy is in trade-paperback (9in x 6in) size and it is just under 2-inches thick, with the Index ending on page 917. Keep in mind that this book is NOT for learning programming, and it is probably not for beginners, but for what it claims to be, it can't be beat. It hold an important position on my shelf.