on January 22, 1998
With the assistance of a friend who is more familiar with computer hardware than I am, I installed Linux on my PC several months ago. After that I downloaded a whole bunch of How-Tos and started exploring the Linux System. While the How-To's were extremely useful, they were a little obscure at times. Also they didn't always answer my questions. A month later I purchased 2 Books on Linux - Running Linux by Welsh & Kaufman and A Practical Guide to Linux by Mark Sobell. Welsh & Kaufman's book deals more with Systems Programming and Hardware Issues. In fact, the two books complement each other quite well. Running Linux is also somewhat "chattier" than Sobell's book which basically just "tells it like it is". Sobell's book, although it covers Systems Administration, mainly deals with issues like shell programming, editors, utility programs and programming tools. There are chapters on the Linux utilities, the filesystem, the Shell, X-Windows, the vi and Emacs Editors. Most importantly for me, there are 2 chapters on the Bourne Shell and Bourne shell scripts. Although there is an O'Reilly book on Bash which I have not seen and which presumably deals with Bash programming even more comprehensively, Sobell's book was the most useful and useable source of information on Shell programming that I have found so far. The Command summary at the back is also well presented and useful. Sobell does make extensive use of internal references, presumably because he did not want to restate the same material. While this does lead to a bit of page turning to get an answer sometimes, it leaves more room for other material, so I can readily accept it. Given the enormous amount of possible material that could be covered in any book attempting to deal with Linux comprehensively this is probably the wisest course. If you want a book on Linux and Hardware, then buy Running Linux by Welsh & Kaufman or download the appropriate How-To's (or both). Sobell's book is for use after you have your hardware problems largely solved and want to get on with customizing your system, using X-Windows, utilizing the various compilers, learning about the the Linux/Unix filesystem and basically getting the system to do useful things. There are several small quibbles I have with the book though. Firstly, there is the overlarge Typeface on the Table of Contents starting on Page xvii and running through to xlvii (that's 30 pages for the Roman Numeral illiterate) which is FAR too many. It appears to me that the Table of Contents is also meant to be used as a sort of Reference Guide. This is fair enough but the typeface is way too big. Secondly, as I said above, any comprehensive book on Linux/Unix will have to make decisions on what to put in and what to leave out and this is fair enough. However, it would be nice if the book included an appendix saying where one can obtain information on the topics not dealt with in the book. In fact, I would go further than that. A comprehensive Bibliography of Linux/Unix in general would be a worthwhile addition. One notable Linux utility program not mentioned is Perl. A brief discussion of it in the Linux Utility Programs section would have been nice or alternatively an appendix like that for regular expressions. Admittedly Perl is a vast topic, and doing justice to it in 6 pages is possibly a bit much but some sort of reference would have been nice. The book is an adaptation of the author's two other books on using Unix. Given the nature of the Linux community, Linux users tend to be fairly knowledgeable about Mice and Keyboards already, so pictures of them are probably not necessary. Given the overall quality of the book, these are relatively minor criticisms. All in all, in my opinion, Sobell's Practical Guide to Linux is the best book available on the market, bar none, for quickly and effectively getting to use the Linux editors, X-Windows, shells and Linux Utility Programs If you have a copy of A Practical Guide to Linux and Running Linux you should be able to solve most Linux problems.
on April 14, 1999
If you have installed Linux, and need a coherent, step by step method to show you how to use it, this is a great book. This book is not designed to walk you through the Linux installation process. For that, any number of other books are available. It is not a disassociated compilation of how-tos. It is part tutorial and part reference guide. I am a new Linux user, and am currently taking a class in Unix. I wish the instructor had chosen this book. I am using it rather than the assigned textbook and I find that I am not only keeping up with the class, but my understanding of the material is considerably enhanced. At the end of each chapter, there are questions relating to the material presented in that chapter. If you can answer the questions, you can be sure that you understand the material. The explanations of the utilities are excellent; they provide enough theoretical information to give you an understanding of how they are integrated with the OS, and clear examples, which allow you to use them instantly. The book is designed for the intermediate to advanced user who may have little or no experience with Linux and wants a thorough introduction. The format is well thought out and, if you choose to move through the book chapter by chapter, you will find it well designed and challenging. I cannot recommend this book highly enough.
on June 5, 2011
Mark Sobell's "A Practical Guide to Linux Commands, Editors, and Shell Programming, Second Edition" follows a number of other "Practical Guides" that Sobell has authored on different flavors of Unix and Linux. Its title is quite descriptive, as it does not contain any material on GUIs, networking, printing, and so on.
The Good: this is basically two books for the price of one. The 300-page reference section toward the end of the book is very good: it contains tables of command arguments in a visually pleasing layout, specific notes, and on top of that it also includes exactly what the man pages sorely lack: detailed examples! Thus, the command reference in Part V alone is worth buying the book for. Sobell covers 100 utilities, ranging from one-page pointers (e.g. cal, renice, strings, wc) to mini-tutorials (e.g. find, grep, make, pax, sort). The early part of the book is 600 pages long and is intended to be both a tutorial and a reference. Sobell is explicitly trying to be novice-friendly: he has included chapter summaries, exercises (with answers to even-numbered exercises provided on his website), a glossary in an appendix, as well as numerous tables summarizing lessons learned (or about to be introduced). Such tables are scattered throughout the text and in the case of a few chapters (notably the ones on vim and emacs) they are also repeated in the form of very useful chapter summaries. Sobell is very good both at cross-referencing material and at collecting all the relevant information in one place. The first 5 chapters deal with the basics of interactive shell usage and are pedagogically sound, probably more so than the chapters that follow. After that, the author covers two different text editors and two different shells. Though Sobell doesn't seem to favor vim over emacs (or vice versa), in the case of shell programming he is unambiguous: "Do not use tcsh as a programming language ... If you are going to learn only one shell programming language, learn bash." (p. 350). On a different note, Sobell also includes various asides which are perhaps not necessary but are fun to read about, e.g. on the tee or the pstree utilities.
The Bad: this book tries to be two things at the same time, tutorial and reference, and succeeds more in the latter than in the former. This is unfortunate: this volume is too elementary for advanced Linux users, yet it may be too difficult for those with limited experience. A few examples of suboptimal pedagogy: a) Sobell seems to have a mix-and-match approach to writing new books, e.g. in chapter 4 the use of fstab and mount comes out of nowhere and is never really explained -- though it is explained in chapter 12 of Sobell's book on Ubuntu. b) Chapter 6 is nominally about the vim text editor, but in reality it's lacking pretty basic stuff (e.g. gg). Sobell seems to be more interested in old-school vi, ignoring vim capabilities like folding, keyword completion, and (most importantly) vim's visual mode. c) The organization of the material is not always sound: e.g. to understand the introduction to bash in chapter 8 one has to read portions of chapter 10 on bash programming. Unfortunately, the same also holds for the first half of chapter 10 itself, in which Sobell repeatedly uses concepts that are introduced in the second half. d) When the author introduces a new tool from scratch (see chapters 12, 13, and 14 on awk, sed, and rsync, respectively) the results are underwhelming: pages upon pages of tables and definitions with all examples postponed until later. e) Even though the book contains a number of errata, as of this writing none of them have been corrected on the author's website. Some of these are potentially grave: for example, on p. 305 Sobell describes (()) by saying that it expands an arithmetic expression, but then on p. 461 he includes a tip box highlighting the distinction between arithmetic expansion, $(()), and arithmetic evaluation, (()). What's even worse, using this book as a reference is also somewhat complicated: since it's purportedly aimed at beginners it is far from complete (e.g. Sobell has nothing to say about the printf builtin), but that doesn't change the fact that one still has to lug around a 1000-page volume.
In a nutshell, this an OK introduction to interactive shell usage, but not to shell programming. O' Reilly's tutorial volumes "Learning the bash shell" and "Classic shell scripting" (both of which can be read linearly) are much better when it comes to programming. Even so, the meticulous cross-referencing and the abundance of tables make Sobell's book a decent reference. All in all, 3.5 stars.
on October 21, 1999
I would not have written this review if I didn't see the review by j.guy@soandso (The cute penguin) but after reading this book and thinking it was great I went back to the book and looked up his complaints. By golly he was right! But unfortunately he missed one important point that even the 5 star reviewers did. This book is not the first Linux book you should read! Sobell's book went as smooth as silk for me, but that was after reading both the Red Hat 6.0 manuals front to back and then Linux for Dummies (ok hold on, it only took me 2.5 hours to read so stop laughing). So this book is truely a 5 star book, but probably won't be alot of help to you until you've read about and experimented with some really basic features of the OS. This book should be on your bookshelf and after I read a couple other ones (this level and up) I may come back and review it again just to make sure I'm 100% right.
on December 14, 2000
I've been working on linux for more than a year, and this was a book assigned for a class. Since then, I've bought four other linux books. But this one is usually the first book I will consult regardless.
The problems with the book are: that the book is very old, and that it doesn't discuss newer versions of Netscape and Red Hat and other tools. Linux has gotten a lot more user friendly, and this book won't provide a lot of help about using the most modern window manager. The book does not discuss apache and possibly not even samba (i don't remember). It doesn't really adequately describe dual booting with windows (which is an important thing to discuss). On the other hand, it gives a more than adequate explanation of vi, emacs and cvs.
Also this book is unparalleled is discussing how to use the command line interface and explaining the underworkings of the linux/unix OS. The best thing about the book is that it gives an exceptional index to the bash commands and utility commands and it gives two or three pages of explanations and EXAMPLES for each one. At first glance, it may resemble a man page, but it gives much more than that. It gives actual situations, and prompts, user input and results. These examples easily explain the functions and the powers and the niceties of the command switches. Particularly helpful were the discussion of sed, awk, regular expressions and other low level commands. It doesn't discuss networking as much as it should, but its unwavering focus on the command line more than makes up for this deficiency.
Other books I would recommend include LINUX, Second Edition: Installation, Configuration, and Use and Oreilley's Running Linux or Network Administrator's Guide. But I still go back to this book more often than all three of these books combined. When this book comes out in a later edition (and I feel sure it will), it will undoubtedly be the best guide for newbies and pro's alike.
on May 7, 2010
I really wanted to like this book as I am now a regular linux desktop user and want to learn shell/perl scripting. Unfortunately this book has been a tremendous letdown. The presentation of topics and the code examples do not build on one another and the ordering too often seems haphazard.
Readability of code samples is hindered by not numbering lines of code. It's a lot easier to read when the text says "Line 24 specifies the variable...." instead of trying to find the line referenced by "The third say statement specifies the variable....".
Most damning in my mind is the repeated sin of referencing material not yet covered in examples. So when I am reading page 200 there is no reason to throw out a code sample with material that won't be covered until page 450. This book is replete with examples like this! It's as if they had a general idea of the topics they wanted to cover, they wrote the text and code samples for each topic and only then decided on the order in which to present the information. I'm sorry to report that learning from this book is far more frustrating than it should be.
on September 25, 1998
After reviewing few Lunix book, This book is the best one in its class from a very limited choice in the linux domain.
Sobell wrote this one for novice to intermediate level. Advanced user will find some chapters useful. The topic coveres a wide range of HOW TO USE LINUX. If you are new to Unix or Linux and want to get start quickly, this book is a right one for you. It gentle introduces and guides you to Linux usage. It covers in detail many issues, commands, usages or Shell programming.
This book, like most books from Allison Wesley, use the high quality paper. Much higher quality than books that cost up to $100.00. The paper simply feels good in the hand.
So, what you can expect from this book? It show you how to use Linux, program bash/zsh, use popular utility commands, admin the system, and some introductions to programming in C and debugger tools.
In summary, a high quality Linux book with high quality paper. I gives it 5* for the clear writing from Sobell. And I have read many many Unix books in the last 10 years.
on January 26, 2000
I have found this to be one of the best books I own on Linux. It has many examples, clear descriptions, and very useful information.
I do hope he comes out with another edition within a year or so - and I only say that because there are so many changes in the Linux world. the basics seem to live on but smaller yet important things do change on a daily basis. Plus many readers do look at copyright dates and make their decisions that way (unfortunately).
Anyway, bottom line: GET IT - You need this
on May 19, 1999
Before I read this book, I had nil knowledge of Linux and only knew how to install the RedHat distribution of Linux (easy).
Not a foreigner to OS (certified in NT), I knew I had to get over the initial learn curve.
Using this book, I was able to learn the basics and I got everything running (dialin to ISP, upgrade packages...) and it opened up a new world to me. I am very happy with Linux thanks Mark Sobell for showing me the ropes.
on September 10, 2010
Excellent book that will take your linux skills to the next level. Command line is where Linux shines and if you need to know what's under the hood, read this book, either cover to cover or just by chapters that interest you.
You'll hear many Linux enthusiasts gladly pointing to free online resources for learning Linux and although there are many, those resources are of varying quality and always fail to go into a deeper discussion accompanied by examples, end up pawing man pages or worse are just echo of somebody else's attempt at writing a Linux walkthrough.
This book is primarily practical. Although the opening chapter may seem unnecessary, dealing with history of GNU and Linux, chapters that follow dive deeper and deeper to show you just what is it that makes Linux shell so great.
The language in which this book is written makes it an authoritative source. If you ever caught yourself reading the man pages of any Linux utility, you noticed how incredibly terse and hard to understand the language of the man pages can be. The language of this book is just a notch down from the man pages language, it isn't hard on you but it will require your attention all the time as there's very little to none "filler material" and unnecessary repetition.
This is not to say that this material is dry and unreadable. The material is not only compiled information on utilities and their roles but author also shows his points in practice and makes you learn not only on how- to's but by contrast as well. I caught myself reading 30 pages at once when I noticed this book on the shelves of the bookstore, just by browsing through the pages.
Educative- if you set out to learn as many available commands with their most commonly used handles, the appendices of this book will greatly help you achieve just that since those appendices contain an impressive compilation of commands, their handles and (what most impressed me) what those handles do through examples. No other book or online guide that I've seen so far does that for its reader. Commands discussed aren't only the most popular ones, or the recommended ones for different levels, inside are explanations for commands that are used by more advanced users but explained on a very plain level and through non- trivial examples. That is way past the "hello world" level of online guides.
Although you'll probably be mostly interested in the Bash shell part, author discusses other available shells with the more advanced audience in mind (like tcsh and zsh) keeping the same level and depth of discussion, and where necessary, points out how things are done or which equivalent utilities are used in those shells as well as in Bash.
What isn't covered here is Linux networking. Everything that is explained pertains to working at an individual Linux workstation. It is assumed that you have an access to a completely configured and successful Linux installation that has all hardware and installation issues resolved. In this day and age, you'd probably want to do a virtual installation of Linux in a virtual machine thereby eliminating possible conflict due to non- compliant hardware.
This book helped me a lot while preparing for the Linux Professional Institute Certification level 1, especially for the first of the two exams (LPIC 101) that required exact knowledge of commands and their usage on individual workstations. I successfully passed that exam and those appendices with commands as well as explanations provided throughout the book proved invaluable at exam time.