|
On this page... (hide) 1. A Practical Guide to Linux Commands, Editors, and Shell Programming 1.1 4/5 RecommendedMark G. Sobell Review by: Chris Cox ![]() ![]() 1.2 OverviewI really looked forward to doing a review of A Practical Guide to Linux Commands, Editors and Shell Programming by Mark G. Sobell. Why? Because I first learned Unix using one of his books. If you just look at the shear size difference between my college text book (1984) and this new book, you can see a lot has changed. Now, I know that many will say, "Linux is certainly not Unix." For those (and you know who you are) that still feel it is completely unfair and ridiculous to compare the size of a new Linux book with a Unix book (believing that they are nothing alike), all I can say is that "Unix is a very Linux-like operating system." (you can thank Jon "maddog" Hall for that quote) Mr. Sobell's practical guides to Unix/Linux/BSD/System V are laid out similarly. And this works pretty well from my own experience with his books. A good overview of the history, a bit of the general architecture, a lot of tutorial on using the editor(s), good coverage of the common shells and the a reference section of commands (similar to "man" pages). 1.3 So what is different? Why the size increase?This book is somewhat larger than a book about Unix merely because the amount of commands that deliver with a "Linux" distribution is much, much larger than what comes with Unix. The main reason: GNU. Now, you may be saying, "Commercial Unix can use GNU tools too." Yes, they can. But most staunch Unix users (especially true of Sun Solaris users) will tell you that the ONLY tools you can truly depend on or trust are the ones that come with the operating system. Linux merely defines the kernel. The base command set, especially what is covered in the reference section of the book, are all from the Free Software Foundation's GNU (GNU is Not Unix) project. It is a true statement that if you are using Unix-like commands inside of Linux, odds are, they are the GNU tools. Unix because of its nature, does not grow much over time. GNU/Linux by definition is architect-ed for massive change/growth. With that said, I believe the biggest reason for the increase in size is just better coverage of the same old tools (done GNU style) and larger summary sections. 1.4 Better Means Bigger Vi'sSo unlike Unix, GNU/Linux is allowed to grow. Mr. Sobell always does an excellent job of covering vi and/or Emacs in his Unix texts. In a GNU/Linux text, Mr. Sobell gets the pleasure of covering vim. Vim actually stands for Vi IMproved... and that pretty much sums it up. The old (tired) vi editor that comes with commercial Unix has not evolved all that much from the original vi. The original vi, written by Bill Joy, was considered by its author as being a stop gap measure on the way to a better editor (In all fairness, Mr. Joy was not thinking of something like vim, but something totally different). Mr. Sobell does a good job of preserving what has always made his vi chapters great, it focuses on teaching the commonly used commands. But, it does includes an excellent table of commands that makes the book not only a great tutorial, but also an excellent reference. However, vim's own supplied vimtutor goes a long way of helping people new to vi to learn the basics without having to use this book. If you need to learn vim away from a computer, this is a good tool. The GNU/Emacs section is similar in that it is a combination of fairly good tutorial and a lot of excellent reference. I think it's gotten a bit bigger, but since emacs is the same emacs that Mr. Sobell often covers in the Unix books, nothing struck me as being all that different here. 1.5 Shells, Smaller and Bigger?Well... describing GNU Again SHell is always a pretty long chapter, but what is surprising is that only two shells are covered in the book. Given the size of the book, I can't really blame Mr. Sobell though. Of course, if it were me, I'd scrap the section on TC SHell... even though it is not the forever bug ridden Berkeley csh (something Mr. Joy actually likes unlike vi), there's things that are just too ambiguous inside even tcsh. Bash is a much better programmer's shell. Bash is well covered. After reading this book you will have a very strong foundation for writing shell scripts. There's enough samples to help illustrate the points even though this is not a shell programming book. If you are looking for a good general text that also is pretty good at helping you with shell programming, this book may be the perfect fit. Mr. Sobell separates (via chapters) using bash (to get around GNU/Linux) and programming with it... which I think also supports my assertion. 1.6 Traditional UnixThe book goes into GNU awk (an awk clone) and sed in some detail. If you work with old-style commercial Unix (AIX, HPUX, Solaris), then you may find these brief chapters useful. You won't find the more popular contemporary scripting languages like Python or Ruby. Shoot, you won't find anything on Tcl and perl isn't even in the index! If there's a weakness with the book, this is it. While it does a great job in the foundational elements that are very similar to Unix, it does not go into great detail about the more radical things found in GNU/Linux that are not popular in commercial Unix. Some will probably disagree with that (what I said about Unix), perl has definitely made many inroads into commercial Unix, for example. But I find perl to even be archaic in light of languages like Ruby. Oh well. Awk (yawn) and sed (yawn)... old stuff to people who know Unix. But good to know if you live in a mixed platform world that has a lot of the old Unix operating systems. 1.7 What I Liked BestThis book is an excellent book for showing the plethora, and I can't over emphasize that, similarities between the old world commercial Unix (they System V variants) and the combination of GNU and Linux. The material strives to be both an introductory tutorial and a reference. I like that. The book is useful even when a user becomes an intermediate user. 1.8 What I Didn't LikeIt is indeed a variation of Mr. Sobell's System V books with a few GNU/Linux twists. Most of the things that have made Linux distributions unique and very different from old world Unix are not covered. The combination of GNU and Linux is very much like Unix. However, most Linux distributions go well beyond mere compatibility with Unix. Commercial Unix could mimic Linux, and in all fairness, it's already starting. Look at Solaris. Even though Solaris has been distributing non-supported add on CDs with GNU (and other) software on it, recently, Solaris has begun to actually depend on some tools not normally found in Solaris (e.g. OpenSSH and OpenSSL). Solaris 10 gives the options for choosing the Gnome desktop over the Common Desktop Environment (CDE). 1.9 My RecommendationIf you are looking for a good way to learn Unix using Linux, this good be one of the best books written. If you are looking for something uniquely Linux and not Unix, you probably should look at something else. The close minded commercial Unix lovers will hate this book since it is a slap in the face of those who like to believe that GNU/Linux is nothing like Unix.
|
||||||||||||||||||||||||||||||||||||||||||||||||||