Computing Reviews
Today's Issue Hot Topics Search Browse Recommended My Account Log In
Review Help
Search
A practical guide to Linux commands, editors, and shell programming (3rd ed.)
Sobell M., Prentice Hall Press, Upper Saddle River, NJ, 2012. 1224 pp. Type: Book (978-0-133085-04-4)
Date Reviewed: Apr 8 2013

Aimed at a wide variety of readers, from students taking a first class with Linux to professionals who use Linux at work, this is a most comprehensive guide to Linux and Mac OS X. It covers a great deal of ground, from getting started to programming in the shell, Perl, and Python; even an introduction to MySQL is included.

This third edition contains new material on Python, MySQL, and OpenSSH. The chapters on the Bourne again shell (bash) have been rewritten and the section on command line utilities has been expanded. Optional sections are flagged as such, and the text contains highlighted boxes with tips, cautions, and security alerts.

The book is divided into seven parts. Part 1 introduces the operating systems (plural because the book covers both Linux and Mac OS X). It introduces the command line interface, on the assumption that one will be using the command line for interaction. This is followed by a discussion of the basic layout of the file system and simple shell commands.

Part 2 covers the vim and emacs editors. The two chapters in this part are particularly good because they provide excellent diagrams on the keystrokes for editing and moving the text. In each case, coverage of the editors is restricted to the TTY interface. Even though many readers will likely use the graphic versions of these two editors, the information in these chapters is invaluable.

Part 3 discusses the shells. The author confines his discussion to bash and the TC shell (tcsh). A minor quirk of the book’s organization is that the control structures for shell scripts in tcsh are included here, whereas those for bash appear later and in more detail in Part 4. Because the later chapter on bash programming provides more detailed coverage and examples, the reader wishing to learn to write tcsh scripts will find it better to read the bash programming chapter before this section on programming in tcsh.

Part 4, “Programming Tools,” covers programming in bash, Perl, Python, MySQL, AWK, and sed. The chapter on bash programming is very detailed, with lots of examples. Indeed, the author uses this as something of an introduction to programming. This allows him to make the chapters on Perl and Python shorter, because he can assume that the reader has developed some experience from reading the earlier information. The chapters on Perl and Python serve to give the flavor of the languages, but readers who intend to use either will need to look for other sources for more detailed information. The chapter on MySQL is very brief. It describes installation for various distributions of Linux and for Mac OS X, and the basics of setting up a database. AWK and sed are each addressed in dedicated chapters.

Part 5, “Secure Network Utilities,” has two chapters, one on rsync as a secure copy utility and one on OpenSSH. While this part of the book addresses security issues specifically, there are numerous highlighted security tips throughout the book. The presence of these two chapters and the heightened emphasis on security is welcome.

Part 6 is a command reference that spans almost one-third of the book, with detailed descriptions of numerous commands. The chapter starts with an introduction that groups the commands by function with a brief description of the function of each. This is followed by an alphabetic listing that gives a comprehensive description of each command, with examples of use.

Part 7 contains appendices on regular expressions, help and how to find it, keeping the system up to date, and aspects of Mac OS X and how it differs from Linux.

Each chapter has an introduction and a conclusion, and some include a series of exercises, sometimes with a set of advanced exercises as well. Answers to the even-numbered exercises are available at the author’s Web site. In a book this comprehensive, a term will inevitably be used before it is defined; however, in the few cases where this happens, the relevant definition is only a few pages further on.

I can recommend this book to anyone. It serves both as an introduction to Linux and Mac OS X, and as a comprehensive reference. The early parts should be read in order. Then, depending on your preference, you can choose to read about one or both of the editors (I use both depending on the material I am working on). You can then read the chapters on bash. Part 6 should be compulsory reading for everyone. Readers can then dip into the rest of the book as necessary.

The exposition is extremely clear, with lots of examples and short programs that the reader can experiment with while reading the book. Having a Linux or Mac OS X machine at hand is essential to get the most from the book.

Reviewer:  J. P. E. Hodgson Review #: CR141117 (1307-0573)
Bookmark and Share
  Editor Recommended
Featured Reviewer
 
 
Systems Programs And Utilities (D.4.9 )
 
 
Linux (D.4.0 ... )
 
 
Reference (A.2 )
 
Would you recommend this review?
yes
no
Other reviews under "Systems Programs And Utilities": Date
UNIX utilities: a programmer’s reference
Tare R., McGraw-Hill, Inc., New York, NY, 1987. Type: Book (9789780070628847)
Aug 1 1988
System software: an introduction to systems programming
Beck L., Addison-Wesley Longman Publishing Co., Inc., Boston, MA, 1985. Type: Book (9789780201109504)
Feb 1 1986
Processing variable length abbreviations: some observations
Newman I. Software--Practice & Experience 16(5): 413-423, 1986. Type: Article
Nov 1 1986
more...

E-Mail This Printer-Friendly
Send Your Comments
Contact Us
Reproduction in whole or in part without permission is prohibited.   Copyright 1999-2024 ThinkLoud®
Terms of Use
| Privacy Policy