Book Review: A Practical Guide To Linux Commands, Editors, and Shell Programming
Rambo Tribble writes "This new, third edition of Sobell's book brings enhancements that add to the text's value as both a learning tool and a reference. This has always been a foundation book for those wanting a professional level of familiarity with Linux. The addition of chapters to introduce the Python language and MySQL database serves to offer the reader practical insights into additional Linux-related technologies." Read below for the rest of Rambo's review.
A Practical Guide to Linux Commands, Editors, and Shell Programming (3rd Edition)
author
Mark G. Sobell
pages
1200 pages
publisher
Prentice Hall
rating
9/10
reviewer
Rambo Tribble
ISBN
978-0-13-308504-4
summary
A concise, definitive guide for learning to manage Linux through the command line
As the title suggests, this is a book about the Linux command line; GUI desktops are barely mentioned. This makes the text's primary audience computer professionals. As *nix professionals know, the command line not only offers quicker, more precise control of the system and its software, but is also far more portable across platforms. This is what allowed Sobell to extend his purview to encompass Mac OS X, in the second edition.
To be clear, this is not a volume to be taken lightly. It is a dense read, but is clearly written with concise and direct examples. In other words, it takes some concentration and effort to work through this book, but that effort is rewarded with a clear payoff of knowledge.
Sobell starts off by offering a basic introduction to Linux, exploring the roots of Unix and the evolution of Linux to become the mature and capable operating system it is today. Along the way, he delineates the aspects of the OS which define its character and form the basis of its appeal.
Next, he dives straight in to the particulars of running Linux from the command line. First, he outlines the CL environment and how to use it effectively. He is careful to point out the potential "gotchas" that can plague the uninformed neophyte. From there, he moves directly into the core commands, then the Linux filesystem and the shell environment. These subjects are at the heart of Linux system administration and while Sobell's treatment of them is necessarily brief, it is relevant and meaty.
In the book's second part, Sobell offers introductions to the most common editors to be found on Linux installations, vim and emacs. With a basic familiarity of how to edit text files, the reader is prepared to move into shell scripting, a powerful tool in controlling Linux and its suite of utilities and applications.
After a quick tour of shell environments, the author plunges into the common programming/scripting tools found on Linux, shell scripts, Perl, and Python. Once again, Sobell is obliged to brevity, but again he manages to provide a cohesive foundation that enables the reader to gain a good fundamental grasp of the subject, and a solid springboard for further learning.
The new chapter on Python introduces this cross-platform programming language, which enjoys growing popularity as a front-end development tool for Linux. Leveraging GUI toolkits, such as Qt or GTK+ , Python is considered by many to be the most effective choice for user-interface programming. The language is also commonly used in web server scripting. The Python coverage adds to Sobell's insightful treatment of the shell, shell scripts and editors already set forth in the volume.
The other new addition is a chapter on MySQL. MySQL has long enjoyed popularity as the "go to" database manager on Linux. Perhaps best known for being the "M" in "LAMP" web server setups, it is also commonly used as the back end for GUI programs, such as MythTV.
The coverage of programming tools wraps up with chapters on AWK, the pattern processing language, and sed, the stream editor. These essential tools of the command line provide useful data filtering and manipulation facilities.
The next section of the book is devoted to utilities providing secure network functions. OpenSSH and rsync are each given chapters which explore their capabilities in file management and secure communication use.
The command reference portion of the volume follows. Although it provides much the same information as the venerable on-line manual pages, it does so in a consistent voice with better illustrations and clear examples, something man pages are notoriously spotty on. Indeed, having Sobell's clear explanations, to compare, can be a great help in learning to interpret the often terse and sometimes arcane documentation the man pages provide.
Of course, 1150 pages, over a quarter of which is reference, doesn't leave time to repeat things or dwell in depth on any one topic. Sobell is often constrained to pages for subjects upon which numerous whole books have been written. With remarkable facility, however, he manages to clearly and directly convey the crux elements of each topic he addresses. This provides the reader with a broad and functional foundation in the basic elements of Linux/OS X system administration.
Bottom line: If you only get one book on the Linux command line and its tools, this should be it.
You can purchase A Practical Guide to Linux Commands, Editors, and Shell Programming (3rd Edition) from amazon.com. Slashdot welcomes readers' book reviews -- to see your own review here, read the book review guidelines, then visit the submission page.
To be clear, this is not a volume to be taken lightly. It is a dense read, but is clearly written with concise and direct examples. In other words, it takes some concentration and effort to work through this book, but that effort is rewarded with a clear payoff of knowledge.
Sobell starts off by offering a basic introduction to Linux, exploring the roots of Unix and the evolution of Linux to become the mature and capable operating system it is today. Along the way, he delineates the aspects of the OS which define its character and form the basis of its appeal.
Next, he dives straight in to the particulars of running Linux from the command line. First, he outlines the CL environment and how to use it effectively. He is careful to point out the potential "gotchas" that can plague the uninformed neophyte. From there, he moves directly into the core commands, then the Linux filesystem and the shell environment. These subjects are at the heart of Linux system administration and while Sobell's treatment of them is necessarily brief, it is relevant and meaty.
In the book's second part, Sobell offers introductions to the most common editors to be found on Linux installations, vim and emacs. With a basic familiarity of how to edit text files, the reader is prepared to move into shell scripting, a powerful tool in controlling Linux and its suite of utilities and applications.
After a quick tour of shell environments, the author plunges into the common programming/scripting tools found on Linux, shell scripts, Perl, and Python. Once again, Sobell is obliged to brevity, but again he manages to provide a cohesive foundation that enables the reader to gain a good fundamental grasp of the subject, and a solid springboard for further learning.
The new chapter on Python introduces this cross-platform programming language, which enjoys growing popularity as a front-end development tool for Linux. Leveraging GUI toolkits, such as Qt or GTK+ , Python is considered by many to be the most effective choice for user-interface programming. The language is also commonly used in web server scripting. The Python coverage adds to Sobell's insightful treatment of the shell, shell scripts and editors already set forth in the volume.
The other new addition is a chapter on MySQL. MySQL has long enjoyed popularity as the "go to" database manager on Linux. Perhaps best known for being the "M" in "LAMP" web server setups, it is also commonly used as the back end for GUI programs, such as MythTV.
The coverage of programming tools wraps up with chapters on AWK, the pattern processing language, and sed, the stream editor. These essential tools of the command line provide useful data filtering and manipulation facilities.
The next section of the book is devoted to utilities providing secure network functions. OpenSSH and rsync are each given chapters which explore their capabilities in file management and secure communication use.
The command reference portion of the volume follows. Although it provides much the same information as the venerable on-line manual pages, it does so in a consistent voice with better illustrations and clear examples, something man pages are notoriously spotty on. Indeed, having Sobell's clear explanations, to compare, can be a great help in learning to interpret the often terse and sometimes arcane documentation the man pages provide.
Of course, 1150 pages, over a quarter of which is reference, doesn't leave time to repeat things or dwell in depth on any one topic. Sobell is often constrained to pages for subjects upon which numerous whole books have been written. With remarkable facility, however, he manages to clearly and directly convey the crux elements of each topic he addresses. This provides the reader with a broad and functional foundation in the basic elements of Linux/OS X system administration.
Bottom line: If you only get one book on the Linux command line and its tools, this should be it.
You can purchase A Practical Guide to Linux Commands, Editors, and Shell Programming (3rd Edition) from amazon.com. Slashdot welcomes readers' book reviews -- to see your own review here, read the book review guidelines, then visit the submission page.
Since taking up Linux and forcing myself to use it on the desktop, I've really gotten a good grasp of computer internals. It's awesome how Linux teaches you computer science as you use it to get work done!
IMO, it beats the crap out of any of those other dumbed-down "operating systems".
... off topic with regard to this book review, but maybe the right person will read this, so here goes. When using Terminal with caps lock accidentally on, I discovered that in Mac OS X (10.6 and 10.7 at least), 'CAL' will give you sideways output as opposed to 'cal':
Same for 'CaL', 'Cal', 'CAl', 'cAl', 'cAL', and 'caL'. I can't find this documented anywhere. Anyone know about this? 'which cal' with any case points to '/usr/bin/cal' (with whatever case you type in); 'man cal' fails for anything except all lowercase.
Dear Slashdot: next time you want to mess with the site, add a rich-text editor for comments.
Holy dog shit! Linux? ...
I just got the name of the new Distro I'm working on!
Karma: Bad
Thanks for reviewing this book, which appears to have been published in early Fall of last year. Since it's a book on the commands, editors, and shell programming, it'll probably be valid for years to come. (I've had college instructors require students to purchase texts that were "only" four years old, but already severely outdated by that point.)
Harold
This book is great. My school used the previous edition for intro to Linux. It's a great distro-agnostic reference.
Users should be aware of another tool that can be used under GNU/Linux, it's called 'expect'. While normal shell programming is extremely useful and powerful, 'expect' provides a mechanism to 'talk' to interactive programs while running a shell script. 'expect' will actually expect certain known points of interaction from an interactive command line program and will provide it with input as if a user typed it by hand.
It's useful for example to code update procedures with expect if you have more than one machine to administer and you have to update something on the machine, maybe update a package or two, run some database commands, do it all from your machine over ssh without having scripts installed on the machines on the other side, things like that.
MY OTHER COMMENTS
not sure about OS X, but gcal (from GNU) lets you add --type=special (or the "-i" flag). I'm pretty sure you could implement what you find with a shell script looking at $0. So, seems handy, but just a curiosity, I'd say.
404555974007725459910684486621289147856453481154 in hex is "You sank my Battleship?"
[GPG key in journal]
The burned hand teaches best. :)
Dude - you've got to get out of your private little fantasy world up there at Texas Instruments. I know that there are a lot of steers and queers along Interstate 35. But, that corridor isn't all there is of Texas. What are you guys using Linux for at TI, anyway? And, how did you teach the steers to use a computer?
"Windows is like the faint smell of piss in a subway: it's there, and there's nothing you can do about it." - Charlie Br
Just "sold". Was looking for a good book on this.
Personally I thought this book was about a decade late..
Here it is:
http://bjdouma.home.xs4all.nl/tilt-1.22.tar.gz
Here's a book more suited for the modern times.
Wait, why is this comment modded down?
I mean 1200 pages? If I can't do something I look online rather than have my desk cluttered by a few 1200 page manuals. In a storage box somewhere, I still have the Microsoft Visual C++ 1.5 set, which occupies an entire freaking bookshelf. I think that was the time when I realised paper documentation was going to die.
Donte Alistair Anderson Roberts - hi son!
Karma: Chameleon
No big-breasted lactating lesbian links?
Thanks for making my bisexual wife cry!
Well, yeah. With the mess that Win8 brought, my next computer might have a picture of an apple with a piece bitten off of.
You must be lost. This isn't Digg.
the udachny account is a sock puppet of roman_mir. do not encourage his sock puppetry by moderating it up.
I don't think any account associated with roman_mir would be able to make a post without referring to the evils of government, regardless of the subject at hand.
To have a right to do a thing is not at all the same as to be right in doing it
That's what she said.
To have a right to do a thing is not at all the same as to be right in doing it
I'd reconsider if I were you. Microsoft is only taking a cue from Apple with Win8. Apple's been trying, unsuccessfully, to mix the iOS interface with the OS X GUI and it's not working out. In fact, you can't even downgrade the OS, easily, on their new hardware. 10.8 took away the 'tap and drag' trackpad feature with that update. As a former Apple evangelist, I have nothing good to say about them, anymore. That's why I'm really thinking that this will be the Year of the Linux Desktop. I've already started messing with Mint, CentOS, and Ubuntu. No, I've never installed Linux on any hardware before this year, ever.
No sig for you! Come back one year!