Book Review - The Linux Command Line
Do you ever have that moment when someone asks you for a recommendation on a book, and when put on the spot you spin around in your office chair, scan your ever-growing library of books that you bought over the years of IT experience but either:
A. Never read?
B. Flipped through but never finished?
C.Passed out halfway through the first chapter?
D. Wouldn't recommended to your own mother?
Well, that moment happened a few weeks ago to me. My boss came up to me and asked me for a beginner's guide to Linux for a new tech that had just started. After nearly 14 years in IT and Linux administration, I did what every tech does, spun in my chair at my collection of books only to realize I had no beginner book that I could recommend. It was at this time that I had to send my boss off with the promise that I would search to the ends of the Internet for a true beginner's book, if such a book existed.
Just like many sysadmins out there, I learned from trial and error. That, and whatever books I could scrounge up over the years. In all the years that I've been in IT, I've come across books that I wish I hadn't bought, books that read like military training manuals, and some that were just too spread out in their topics to be a true beginner's book. But the search is over, and I can honestly say I have found THE beginner's guide to Linux.
The book itself couldn't have been timed any better. It was published in paperback at the beginning of this year from No Starch Press (www.nostarch.com). The book is titled The Linux Command Line by William E. Shotts, Jr. Mr. Shotts is actually the creator of linuxcommand.org, and has extensive experience in Linux systems administration, which actually shows in this book.
I shall say this about No Starch Press before I begin my review: If you purchase this (or any other book at the time of this review) through No Starch Press, you receive a DRM-free ebook copy of the book. This is a major bonus (as I have a Nook, Android phone, and PC). I'm one of those techies that enjoy reading paper copies of Tech books, but always find myself with down time and away from my books. Having an E-Book copy handy on one of my devices is a bonus.
For those of you that purchase this book in the bookstores or read the introduction online: if you're coming from the Microsoft world, I promise the book gets better. One of the things that almost made me put the book down was the introduction. I know the old adage 'never judge a book by its cover,' or in this case by its introduction. In this case, the author leaned pretty heavily into Microsoft and 'Big Corporations' in the introduction. Most people that would be reading this book will be coming from a Microsoft background and would probably feel that the book might be riddled with such information. Fear not my little penguins, for this is only in the introduction. After the introduction you never see mention of 'Microsoft this and that', 'Big Corporations' or anything else, as he leaves his personal feelings about other operating systems at the introduction and moves on.
Now as I said in the beginning, I really do believe I have found the holy grail of introduction to the Linux command line books. Some people may argue that the command line is going away, but if you are keeping up with the news, even Microsoft Server 8 is coming with an 'Optional GUI' from what I've read. Server installs of Oracle Unbreakable Linux, Debian, and Ubuntu Server, are still command line based. Command line is here to stay and it behooves a person getting into Linux to at the least get into the command line. The author states that this is not a sys admin book, but I'll argue this point, as I found that 90% of what he is talking about is actually quite useful as an introduction to systems administration from the command line.
The book is well laid out in chapters and sections. The author takes the reader through the basics of navigating the command line all the way up through regular expressions and creating your own shell script. This book is not as dry a read as most technical books are, nor does he make you feel as if you're sitting in a college lecture. He writes this book as if he's sitting right there next to you, and giving you advice on what to do next. From reading the book I would say his writing style is tailored toward the 25-45 year-old age group, as his choice of words, upbeat attitude in training and some English slang grabs the reader's attention. Do I think someone older or younger could read this book? Of course! But the older crowd may not understand his sense of humor or choice of words. Instead of the training books you've been used to, he places very valuable information inside of gray boxes throughout the chapter that the reader may reference at any point. Not only that, but he walks the reader through what he calls 'playground exercises' during the chapter. I tend to not retain information as well if I have to wait to the end of a chapter to try practice exercises. At that point I find myself flipping through the chapter to recall what I learned.
As far as the information presented in the book, all of it is excellent information. I would highly recommend this book to any beginner in both systems administration and anyone wanting to learn the Linux command line. At times I felt as if the author was getting ahead of himself and explaining topics that should have made me run away in fear of Linux, but he explains in the book why he was showing such a powerful command and later in the book uses the command in further examples. He goes into great detail explaining some of the things in Linux systems administration that have baffled me for well over a decade, and yet finds a way to explain it to someone that has never been around Linux before.
What I found intriguing in the book more than anything else was how the book was laid out. Call it whatever you want, but I enjoy reading a technical book that links to the next chapter, and that chapter references the previous chapters. This is something extreamly tricky to do when writing anything technical, but he pulls this off. If you take a look at nostarchpress.com I believe they have a Table of Contents listed for the book, and you shall see what I mean. He goes from navigation, manipulation of files and permissions, editing files and configuration, basic sys admin and eventually to regular expressions and shell scripting. Each new chapter uses the information that you learned in the previous chapters to build up your knowledge for the next chapter that is presented. Instead of just teaching you a single topic, jumping to the next chapter and teaching you another topic, he finds a way to make one beautiful composition of words and style.
After reviewing this book, I promptly went into my boss's office and asked for two more copies of this book for our IT staff. The new tech has never been around Linux and should benefit greatly from this book, and the other tech hasn't been around Linux in quite a few years. What? You actually thought I would part from my own copy of The Linux Command Line? Ha! This book is going on my bookshelf as a reference book for the next time someone asks me how to explain something in Linux, or a good intro to Linux book, I can spin around without fear and grab my own copy.