A couple of months ago — my apologies to the publishers — No Starch Press sent me a copy of William E. Shotts Jr.’s “The Linux Command Line: A Complete Introduction” to review. I didn’t get to the review until now because, well, I just finished it.
No, I’m not a slow reader; in fact, I’m pretty fast when it comes to going cover to cover. But by “finish” the book, I mean that I am finished reading and re-reading this book, trying out some of the things I already knew and working on things that I didn’t know until I read the book.
In short, “The Linux Command Line” is more than a complete introduction — it’s a full education in 432 pages (not counting the index).
A little background: In the ways of Linux, I am primarily self-taught over the last six years. However, I have taken courses at Cabrillo College which lead to the California State University system’s Unix/Linux Administrator Certificate (I’m lacking a couple of classes — the Windows ones, to be honest). I didn’t exactly ace CIS130 Bash Scripting, but I passed. Also, I have never been afraid of the command line, though I do prefer to use text editors like Geany over things like vi (and, for the love of all things holy, keep emacs the heck away from me!) when fixing files.
That said, and to the author’s overwhelming credit, Shotts takes a topic that could drop all but the most hardcore geeks into a coma-like sleep and makes it very interesting and, at times, fun. His tight writing style and economy of words when explaining concepts are a plus here, and the asides — outlined in grey boxes throughout the book — usually come at the right time in the text, where a mental breather is probably a good idea.
My favorite example of many is this: In Chapter 15 on Storage Media, Shotts take a grey-box look at “Why unmounting is important.” Of course, it is important, but he goes into the ever important why, explaining the ins and outs of buffering and how that affects storage. To the years-of-experience Linux user who would say, “Well, duh!” it might be old news. To those of us who didn’t know such intricacies until reading this, it was a refreshing tangent that wrapped things together in the chapter.
Each of the chapters is like this, very informative — but not boringly so — punctuated with asides that contribute greatly to the chapter itself. The first 22 chapters were an enjoyable walk though many things I already knew, and some things that were a revelation. In fact, rather than a reference book, “The Linux Command Line” reads more like a story — or maybe a biographical novel — of the command line.
Then cue the ominous music: From chapters 23 to the end, which is 36, we get to where the proverbial rubber meets the road; where it’s make or break time. It’s the hard stuff.
Another aside: In “My Blue Heaven,” witness-protected Steve Martin tells FBI agent Rick Moranis at one point that he’s never used a firearm. “It doomed me to middle management,” Martin’s character says. That’s kind of where I’m at with programming — I’ve used programs, submitted bug reports and even written bash scripts, but never compiled a program.
Chapter 23 stars with compiling, which I did (whew!). Chapter 24 deals with bash scripting (which I’ve done in the past, and now have a better understanding of it) and continues on through some of the more intricate parts of command-line use, like “Starting a Project” (Chapter 25), “Top Down Design” (Chapter 26), two chapters on Flow Control (27 and 29), ending up with “Exotica” in Chapter 36. Again, with Shotts’ thorough explanations in each chapter — again, thorough but not droll — assuming the reader is of average intelligence and can understand what’s written, he or she would come away with command-line skills that could be put to immediate use.
Early on, Shotts touches on the gist of why this book — and why it’s a “complete introduction” to the command line — might be on the long side. “Learning the command line is challenging and takes real effort. It’s not that it’s so hard, but rather it’s so vast.”
No truer words were spoken.
So if you’re relatively new to Linux but can install a distro and navagate your way around the command line, even peripherally, this book will be a help to get you into an area of Linux that can be both helpful and interesting at the same time. If you’re an experienced administrator coming to Linux from another operating system, you’ll find this a valuable reference. Everyone else in between would clearly benefit from having a copy of this book as well.
One drawback, however: There’s a typo on page 51, where a sentence is missing an R. I am certain that the editors will fix that before the next printing.
But never mind: “The Linux Command Line: A Complete Introduction” by William E. Shotts, Jr., gets my highest recommendation for a book that educates and entertains with equal doses of practical knowledge and peripheral anecdotes.
(Larry Cafiero is one of the founders of the Lindependence Project and develops business software at Redwood Digital Research, a consultancy that provides FOSS solutions in the small business and home office environment.)