50 of 51 people found the following review helpful
5.0 out of 5 stars The Dude Abides in the Command Line
What if you had a book that took you from the very beginning of the Linux command line options, and it took you through progressively interesting and relevant topics so that you really could develop a mastery of the shell? Oh, and what if it were written in a fun style that was less wonkish and easier to embrace and follow along with? Less tech, mode dude. William E...
Published 22 months ago by Michael Larsen
22 of 29 people found the following review helpful
3.0 out of 5 stars Reasonable introduction if your completely new to the command line.
I'm a big fan of command line interfaces; they may be more difficult to work out than WIMP interfaces but they are considerably more powerful. However I'm not such a fan of The Linux Command Line: A Complete Introduction. Yes it's a pretty reasonable introduction to the command line interface but I found enough irritations in it to put me off. Let's start off on a...
Published 22 months ago by renaissance geek
Most Helpful First | Newest First
50 of 51 people found the following review helpful
5.0 out of 5 stars The Dude Abides in the Command Line,
This review is from: The Linux Command Line: A Complete Introduction (Paperback)What if you had a book that took you from the very beginning of the Linux command line options, and it took you through progressively interesting and relevant topics so that you really could develop a mastery of the shell? Oh, and what if it were written in a fun style that was less wonkish and easier to embrace and follow along with? Less tech, mode dude. William E. Shotts, Jr.'s "The Linux Command Line" manages to do that.
Let's face it, learning the entirely of the Linux command line can take years. It's unlikely most will walk through the book page by page and work through each example, but with this book, it feel like you could do exactly that and not get bored.
The first part of the book walks the user through the many commands that are relevant to all systems and all shells; the navigation options through directories, showing files, getting your head around terminals, finding and opening files, moving files and directories around, links (both literal and symbolic), learning about commands and how to learn more about them. All of this, as well as redirection, using pipelines, creating filters, expansions, and so on. A wonderful metaphor and explanation made in this section is that Windows is like a GameBoy, and Linux is like the world's biggest Erector Set. While Windows is nice and shiny and makes for pretty applications, it's difficult (relatively speaking) to roll your own applications without a fair bit of knowledge and packaged tools. Linux, on the other hand, right off the bat gives you all the tools you need to build just about anything in just about any conceivable way you might want to build it.
Part 2 covers configuration of the shell and the environment variables that it keeps track of. Shell variables like DISPLAY, EDITOR, LANG, PS1, TERM and many others are explained and we get to see how simple shell scripts are implemented allow us to access and modify these values. We also get introduced to a variety of test editors, but with an emphasis on vi (and a mellow focus at that). The section is rounded out by learning how to modify the command prompt that we see and make it show us more details (directories, colors, etc.).
Part 3 is a grab bag of all sorts of things that we often look at separately, but when taken together, make a lot of sense. We start with package management and making sure systems are up to date. Next we cover understanding file systems and the variety of commands that helps to mount disks, examine file systems, check and repair systems, get online and check the network for connectivity, copying files over a network and connecting via secure shell, performing archive and backup steps. The section end with a broad discussion on regular expressions, text formatting and processing and, finally, printing out files and compiling applications.
Part 4 ties it all into the true big bad voodoo of the command line, the ability to write shell scripts. The section starts out with a fairly basic script formatting and then moves on to create a program that displays system information in HTML format. Along the way, we get to see how to use the shell and all of its properties and the huge toolkit of Linux commands to structure our work, and get an introduction to "top down design". Subsequent chapters carry us through common development topics such as reading input from the command line, strings, numbers, variables and constants, and the variety of flow control ranging from simple branches to looping and case statements and arrays. The section ends with a grab bag of interesting topics including subshells, traps and error handling, asynchronous execution and named pipes.
Each section starts with the commands it will cover, walks through careful and thorough examples of each command, and then wraps with a simple explanation of the section covered, with sidebars aplenty. Seeing as this is a command line book, you bet that you are seeing a lot of the actual commands, and how they interact, how to apply permissions, manipulate text and manage processes. If you want practice with these things and not their graphical counterparts (and really, what "command line" book worth its salt wouldn't make that its prime focus), well, you get your wish!
There are a lot of books that talk about the various Linux Shells, but you'd be hard pressed to find one that does so this entertainingly. Again, it's the less tech (but not so much that the meat of the matter isn't covered well) and more "dude" (but not to the point of being embarrassing or insulting) that makes this book a joy and a treasure. If you're a novice Linux player, or just want to get beyond the pretty graphical wrapper of your MacBook, put this book at the top of your list.
38 of 39 people found the following review helpful
5.0 out of 5 stars Essential, practical and well written!,
This review is from: The Linux Command Line: A Complete Introduction (Paperback)First of all I am a developer & system admin at a small company in MS world, but have been spending an increasing amount of time in Linux administration for side projects. I realized very quickly the limits of my abilities with bash, vi, etc. and began searching for resources. I'm only about 6 chapters into "The Linux Command Line" so far, and can say that it that anyone wanting to succeed with Linux should begin here. More advanced users could probably also benefit from the second half of the book (which I haven't gotten to yet, but addresses many common system administration tasks such as networking, archiving & backup, ftp transfers, etc.).
Like most people starting off in this topic, I relied heavily on forums and web searches, as well as a fair bit of fumbling around on my own learning how to employ the power of the command line. In hindsight I could benefitted with clarity on the topic and saved an enormous amount of time by reading a book like this, which goes from the most basic level , the function and purpose of the command line, to the more advanced such as creating shell scripts and compiling applications. The chapters which will be most valuable to me include the Introduction to Vi, Regular EXpressions, and Working With Commands.
The most compelling reason for buying this book above others I've looked at is the level of thoroughness which the author grants to each topic. While there are pages that I will probably copy, print out, and hang on my monitor for reference, more than anything the book stands as an exhaustive exposition about a topic that newbies (like myself) must learn if they plan to push their skill set beyond that of a casual user. I've also found that the author's sequenced, tutorial approach to the topic matched with his light-hearted tone made this book far more readable than many other tech books I've come across, and would recommend it to anyone.
20 of 21 people found the following review helpful
5.0 out of 5 stars GREAT LEARNING MATERIAL!!,
This review is from: The Linux Command Line: A Complete Introduction (Paperback)I will first state that I am a partially blind Linux user. I took some Linux classes in 2006, and I completely migrated to Linux in 2007 due to several reasons which I will not cover here. When I refer to myself as "partially" blind, I say that with the intent that what minimal amount of vision I have left may not lost much longer. Throughout the majority of my 'Linux life", I heavily relied on screen magnification and graphical tools to get things done; as of recently, however, my good eye has not held up so well as it used to. With the possibility of the loss of my remaining vision eminent, I decided that I could better be served by performing many operations under Linux from the command line. I can still use a graphical environment through the use of the Orca screen reader, and there are a number fo screen readers available strictly for the command line side of Linux.
For awhile now I tried to learn the command line through Google searches and different online tutorials, as well as some arcane manpages for command line utilities. I felt kind of overwhelmed because I could not find all of the information I needed in a format for learning. Enter this book!
As mentioned by other reviewers, this book is not necessarily meant to be a reference it is written in such a way that it is like you have a personal Linux trainer. Everything is explained so that the reader can understand it, and the author seems to be very meticulous when it comes to details (by no means a complaint). I have learned more from this one book than I have from the textbooks used by the professor of the Linux class at the college which I attended back in 2006. That is not to say I learned nothing in those classes, as I learned a ton...just not enough to (for the most part) live in the command line. I feel much more confident on a command line than I ever have, and this book is primarily to thank for it.
I am an IT student seeking employment, and I was unable to afford a printed copy of this book. When I get the money, this book will be one which stands on my shelves at home. By no means am I trying to take money away from the publisher, but if you are like me and you are financially unable to purchase a printed copy of this book, this book is also published as a free and legal PDF eBook at the author's site. Just search for "LinuxCommand" "PDF" "Download". The printed version, in my opinion, would well be worth the price.
A big thanks to Mr. Shotts for writing this book. Though it may not have been written with blind users in mind (it doesn't really need to be, as most if not all of the command line is usable by a totally blind user), this book has helped me to feel much more confident in the command line. If my remaining vision does fade away, I now know that I will not have to find a way to pay for ridiculously priced commercial software in order to use an operating system which I do not really own.
If you are looking to learn the command line in order to become more productive as a general Linux user (or even as a future sysadmin), this book is a great place to start.
5 of 5 people found the following review helpful
5.0 out of 5 stars FINALLY!,
This review is from: The Linux Command Line: A Complete Introduction (Paperback)People, and by "people" I mean "code monkeys," are endlessly going on about how much more user-friendly Linux is, than Windows. "Learning Code is easy," they say. "Just take a weekend with a code book and learn it!" they say. "Well, I am happy to report, "The Linux Command Line: A Complete Introduction" by William E. Shotts Jr. is such a book.
No, a weekend with this book will not help you code in R, Python, Perl, Ruby, PHP, or even iOS. What this book does is better, at a fundamental level. This book shows the reader the AWESOME functionality of their computer using nothing more than the keyboard. A weekend with this book will improve your computing skills, even when on a non-Linux machine. (if you are into that sort of thing) However, once you are familiar with the lessons taught in this book, learning to code will be infinitely easier.
When I was a kid, maybe 9 or 10, my parents bought me my very first computer which, I believe, came with a BASIC programming manual. (Why is everyone laughing? Yes, my first computer was a PC.) I devoured the book. It was a page-turner. I could not put it down. Ever since, any time I read a "computer" book, I try to reclaim a bit of that 9 year-old self, alone with my computer and that book every waking moment I could, making my computer do stuff. Mr. Shotts Jr.'s book does a little of that.
"Who is this book for?" you ask.
"Do you have Linux on your computer?" This book is for you.
"Are you thinking about getting Linux on your computer, and wonder 'What will Linux do for me?'" This book is for you.
"WHY DON'T YOU HAVE LINUX ON YOUR COMPUTER?" (That was one for the "code monkeys")
22 of 29 people found the following review helpful
3.0 out of 5 stars Reasonable introduction if your completely new to the command line.,
This review is from: The Linux Command Line: A Complete Introduction (Paperback)I'm a big fan of command line interfaces; they may be more difficult to work out than WIMP interfaces but they are considerably more powerful. However I'm not such a fan of The Linux Command Line: A Complete Introduction. Yes it's a pretty reasonable introduction to the command line interface but I found enough irritations in it to put me off. Let's start off on a positive note; coverage is good. The basics of file and system manipulation, environment tools and other tasks are all covered. However the coverage is somewhat variable. In some cases a command is introduced in a nicely tabulated format along with the frequently used flags and options but in other cases the pertinent options are buried in a screed of text which isn't nearly as useful. Obviously some of the chapters will be more useful than others. 'Manipulating files and directories', 'Redirection', 'Permissions' (though the author insists on using some of his own terminology instead of the standard *NIX/linux terminology when discussing file permissions which is quite likely to cause confusion), 'Processes', 'A gentle introduction to Vi', 'Networking', 'Searching for files', 'Archiving and backup', 'Regular expressions' and 'Compiling programs' are all essential reading. Other chapters are probably less useful; 'Package management', 'Storage media', 'Formatting output' and 'Printing' are either largely handled automagically or more efficiently managed via a graphical interface on any reasonably modern linux distribution.
My main problem with the book though is the fact that the final roughly 20% of the book is given over to writing shell scripts when other commands or tools have been glossed over as they are out of the scope of the book or have other books written on them (e.g. awk). This is fair enough when you are writing an introduction to a command line but don't then claim that your introduction is complete and spend a large chunk of the book covering something that is really outside the scope of a command line introduction! Personally I would have preferred this space to be given over to a more in depth appraisal of some of the command line essentials. For example Vi could easily stand another chapter.
If you're a complete linux command line neophyte you may find the book useful but if you've spent any time using it then you may well find it covers no new ground and may well be downright frustrating.
4 of 4 people found the following review helpful
5.0 out of 5 stars Beautifully Done.,
This review is from: The Linux Command Line: A Complete Introduction (Paperback)Having a fairly decent command line knowledge, I didn't expect to learn much from this book. I was definitely surprised by how well this book was written. It is laid out in a simple, straight forward, and easy to understand way.
Many of the O'Reilly books I have, or have read, always make me feel like I don't have enough initial knowledge to understand the basics. Then when I finally do grasp the basics, I feel like they leave me hanging on advanced concepts. Often they feel like a college level teacher teaching you, and if you don't get it, they move on. The Linux Command Line is definitely the opposite of this, and reading through it made me feel as if a friend were helping me understand each command. The language used made this much more pleasurable to read than any other book of the same subjects. This book always helps you feel comfortable with a program or concept before moving on, much like a tutor instead of a stern instructor.
This has become my new go to book for Linux command line, and scripting. It has been heavily borrowed at work, and a second copy will soon be ordered so I can have it all to myself.
3 of 3 people found the following review helpful
4.0 out of 5 stars A solid intro to the Linux command line,
This review is from: The Linux Command Line: A Complete Introduction (Paperback)For some reason, people think that to use Linux you need to understand the scary, scary command line. That might have been true 15 years ago, but not today. In fact, I know a number of Linux users who have never and will never type a command. But for others, a knowledge of the command line is essential. Or, at least, useful. And if you need to learn the Linux command line from the ground up, this book can help you.
It walks you through what the shell is, how to enter commands, and how to end a terminal session. From there, you learn how to navigate and explore the file system. In explaining those commands, the author also offers some good explanations of the structure of the Linux filesystem and of absolute and relative paths. I can't tell you how many people I know who still mix those up ...
Once you've got that under your belt, the author shows you how to manipulate file, understand the environment, and doles out a number of useful command line tips and tricks that make using it easier. And it's all done in a fairly lively and easy-to-understand way packed with plenty of examples.
The book isn't perfect. There were a few things that I glossed over or that fell flat for me -- like the section explaining how to determine the type of command that you're using. On top of that, I found the book to be a bit long. It weighs in at 482 pages. I like things a bit shorter and more concise. You might find the section on writing shell scripts -- which takes up almost a third of the book -- useful. I felt it was a both a bit long and a bit rushed. The section felt like it had been tacked on. I think it would have worked better as a separate book.
Overall, though, The Linux Command Line does a good job of taking someone new to the subject from being unfamiliar with the command line to a level of mastery. Or, at least, familiarity.
3 of 3 people found the following review helpful
5.0 out of 5 stars THE Linux Command-Line Book to Own!,
This review is from: The Linux Command Line: A Complete Introduction (Paperback)Let me start by saying that I've read this book from cover to cover. It's truly the *complete* introduction it claims to be. This book should be on the bookshelf of everyone wanting to understand the low-level nuances of Linux. Put another way: You can't get to a place where you thoroughly understand how Linux works without going down the path Mr. Shotts so elegantly takes you.
I've been working as a software developer in the Linux world for over 10 years; as I started reading the first few chapters, I thought it was going to be all review for me. Admittedly, much of it was review for someone at my level, but the book held my attention because, even through those initial chapters, I found myself learning interesting tidbits here and there.
Regardless of the slow start, the book very quickly moves into more specialized areas such as pipelines, redirection and the Unix security model (which has always been just a little illusive to me). Mr Shotts makes it as simple as it really is.
Part III takes the reader into Linux package management (both Debian- and RPM-based forms), storage media, networking, advanced rsync, and regular expressions. Here, I need to comment that I've never seen a better, more concise description of basic and enhanced regular expressions. I don't think I'll ever need to go back to my old references for some topics again.
The section on using storage media covers mounting and using all types of storage media, including CD-ROM and DVD devices, from the command line. Mr. Shotts even covers command-line tools for writing CR-R and erasing and writing CD-RW media from the command line.
The section on text processing teaches the reader how to understand the sed utility by building on the previously presented regular expression information. I've read online tutorials for sed and have always found myself returning to those resources for syntax information. Thanks to Mr. Shotts, I think I've finally moved beyond this level.
As if Part III didn't offer enough value for the price of the book, Part IV jumps into shell programming in way I've never seen before. I've read a half-dozen books on shell programming (both bash and generic Unix) over the years and I've never found an author that actually understands shell scripting the way Mr. Shotts clearly understands it. He explains the conditional "commands" in 'if' statements clearly and in a way that's easy to remember - something the bash man page doesn't even come close to doing. Authors often try to teach readers to write to a portable subset of Bourne shell syntax. Mr. Shotts makes it clear that his bias is toward bash, and he presents and argues well for simply using all of the features of bash. Indeed, his arguments are quite compelling - and refreshing.
I rated this book 5 stars and started with the comment that this book should be on every power-user's shelf. I stand by this comment and suggest that students of Linux will be hard-pressed to find a book as complete and well-written as this one.
2 of 2 people found the following review helpful
4.0 out of 5 stars Great beginners guide & good for intermediate users too,
This review is from: The Linux Command Line: A Complete Introduction (Paperback)If you really want to know your way around a Linux box, this is the book to get. It gently exposes you to the environment in very digestible nuggets. Starting with "What is a Shell" and typing your first simple commands all the way to writing shell scripts utilizing IF statements, CASE statements and Loops, this book will take you as far as you want to go. It's written in a conversational style that makes it quick to read & understand. There's also some fun geek-related quotes you won't want to miss...
"Have you ever noticed in the movies when the "super hacker"--you know, the guy who can break into the ultra-secure military computer in under 30 seconds--sits down at the computer, he never touches a mouse? It's because movie makers realize that we, as human beings, instinctively know the only way to really get anything done on a computer is by typing on a keyboard."
For the beginner, you want to take your time with Part 1: Learning the Shell. It lays a solid foundation for you to work from in later chapters. Understanding the basics, especially the location of files within the file system itself, will allow you to move through the latter section more easily. And pay attention to the tips that are presented to you. I still consider myself a N00b, but I thought I knew precisely what symbolic links were... but I was wrong. This book taught me a few new things along the way.
For the intermediate or advanced user, you may find all you need online and need not bother with buying a book. I like consolidated information though (I have enough tabs open in Firefox and Chrome already) and if you're intermediate and looking to write shell scripts and possibly automate some system maintenance, I think you'll find this book useful. It'll give you insights and examples that you can build off of.
Another quote from the author that I like explains it like this:
"Most computer users today are familiar with only the graphical user interface (GUI) and have been taught by vendors and pundits that the command line interface (CLI) is a terrifying thing of the past. This is unfortunate, because a good command line interface is a marvelously expressive way of communicating with a computer in much the same way the written word is for human beings. It's been said that "graphical user interfaces make easy tasks easy, while command line interfaces make difficult tasks possible," and this is still very true today."
This is true of Windows as much as it is of Linux... so get your hands on the keyboard and enjoy!
2 of 2 people found the following review helpful
4.0 out of 5 stars good book, readable, educational,
Amazon Verified Purchase(What's this?)
This review is from: The Linux Command Line: A Complete Introduction (Paperback)This is a fun (educational) book to read. It is written for easy digestion. Perhaps a little too base for serious geeks, but for old farts like myself (61+) with not a lot of computer education, very informative.
Most Helpful First | Newest First
The Linux Command Line: A Complete Introduction by William E. Shotts (Paperback - January 14, 2012)