178 of 183 people found the following review helpful:
5.0 out of 5 stars
Book Review: A Practical Guide to Linux Commands, Editors, and Shell Programming, September 23, 2005
This review is from: A Practical Guide to Linux(R) Commands, Editors, and Shell Programming (Paperback)
I recently was fortunate enough to receive a review copy of this book from Prentice Hall publishers, and am happy to submit this review. I found this very large volume (1008 pages!) to be quite interesting and a valuable source of information for both Linux beginners and veterans alike. As the title may suggest, it covers some of the most commonly used Linux commands, the two main editors (Vim and Emacs), and some shell programming techniques with the Bash and tcsh shells. I found it to be quite "distro-neutral", as the material presented should be available on virtually any Linux system, and does not reference distro-specific tools. The book seems very well organized into Parts and Chapters, and there are also some excellent appendices and additional matter at the end of the book, which I'll discuss later in this review.
Part I is entitled "The Linux Operating System", and starts out with some introductory "welcome" and "getting started" material which is good reading for newbies but can easily be skipped by others. The next chapter in this part covers how to use the more commonly used commands such as ls, cp, rm, and tar. This is followed up by a chapter on the Linux filesystem, including the hierarchical layout, directories, pathnames, permissions, and file links. There is a nice section in this chapter which describes what is found in nearly all of the standard directories such as /boot, /etc, /home, /usr, and so on. Also notable here was an excellent description of how to set (and understand!) file and directory permissions. The final chapter in this part provides an introduction to the shell and command line. It covers standard input/output, redirection, pipes, and backgrounding of commands. Most of the information in these first 5 chapters will probably be a review for more experienced Linux users, but they are outstanding reading for newcomers. One thing I did notice as a great feature of the book is that there is a "Chapter Summary" at the end of each chapter which is really excellent, and a list of "Exercises" to help you see and use the information in a more hands-on way.
Part II is called simply "The Editors", and devotes about 60 pages each to Vim and Emacs. A brief history of each is provided, and a pretty good tutorial of basic usage is walked through. Both chapters include a command referance/summary, and some customization tips. Even the well known "debate" about which editor to use is mentioned, although no preference is indicated. For the record, this writer prefers Vim... J There are more in-depth books available to explain each editor in greater detail, but these chapters provide a good introductory lesson.
Part III contains two chapters, one each on the "bash" shell and the "tcsh" shell. Some of the procedures and concepts in this part may well be more information than is desired by many Linux users, but command-line types will want to read all of this material. The differences between these two shells are discussed, and the fact that most users will only need to learn about "bash", as it is normally the default shell on most modern Linux distributions. I found some good information on customizing your shell, and using the "dot files" such as .bash_profile and .bashrc to control things like aliases and your environment variables.
Part IV covers "Programming Tools". The first chapter here discusses programming in C, including the basics of the gcc compiler, using shared libraries, debugging procedures, system calls, and source code management (CVS). It should be noted that this chapter describes the process of writing and compiling programs with C, but is not intended to teach C programming if you don't already understand most of it. The next chapter (11) is a quite extensive (about 100 pages) discussion of programming with the Bash shell. It covers control structures, parameters, variables, loops, arrays, expressions, functions, and builtin commands. Numerous examples are shown to help with understanding the concepts. I would recommend this particular chapter for those wishing to increase their ability to write effective shell scripts for system administration. The final two chapters in Part IV cover the "gawk" and "sed" utilities, which are essential for more advanced text processing and shell scripting. Again, there are numerous excellent examples given which really aid in understanding the material, followed by some suggested excercises for putting your new knowledge to work. This part should be required reading for any system administrator.
Part V is the "Command Reference" section. This is a very complete reference (240 pages) on how to use virtually all Linux utilities and shell builtins, from "at" to "xargs". The layout for each command is presented in the manner of a man page, only much more readable and including excellent notes and examples which are not found in a man page. All options are well explained, and there is extensive use of tables and summaries. This may be the most useful portion of the entire book, and serves both as a great refresher for veterans, and a nice learning process for beginners. The material here is presented in "plain English", which helps a lot.
The remainder of the book is made up of three appendixes, a glossary, and an index. Appendix A is an excellent presentation of "regular expressions", an often little-understood but important skill for system administrators to have. Spend some time reading this one. Appendix B is simply called "Help", and tells you about the wide array of help resources available to a Linux user. Helpful websites are listed, and mailing lists and newsgroups are described. The final Appendix C touches on keeping your system updated, although it is quite limited by only discussing the "yum" and "apt" utilities. This could have been done a little better by including some additional distro tools, and/or more generic ideas for updating. The final two sections of the book are a 50 page Glossary and a 50 page Index, both of which seem quite complete.
Overall I found this book to be quite excellent, and it has earned a spot on the very front of my bookshelf. It covers the real "guts" of Linux - the command line and it's utilities, and does so very well. It's strongest points are the outstanding use of examples, and the Command Reference section. Highly recommended for Linux users of all skill levels. Well done to Mark Sobell and Prentice Hall for this outstanding book!
Help other customers find the most helpful reviews
Was this review helpful to you? Yes
No
49 of 51 people found the following review helpful:
5.0 out of 5 stars
Guide to becoming a Linux guru and not just a user, September 17, 2005
This review is from: A Practical Guide to Linux(R) Commands, Editors, and Shell Programming (Paperback)
For some people knowing how to do something through a graphical interface is akin to knowing how to drive without knowing how an engine, transmission, etc. work together to make the car run. For them knowing how to get down to the command line and get things done that either the graphical interface does not allow or does not do the way you want it done is a matter of pride and represents the dividing line between a user and a power user. If you want to become a real Linux guru and know how to work the command line to do whatever you want including commands, editing, shell programming, and scripting this is one of the better books available. Readable, straight-forward, educational, it is a one-of-kind reference that blends the educational aspect of a typical book on learning Linux with a typical book of command line references. A Practical Guide to Linux is highly recommended.
Help other customers find the most helpful reviews
Was this review helpful to you? Yes
No