McMullen has used his experience as a software trainer and technical writer to produce this book “for people who want to learn to use a UNIX computer system.” Readers will need a shell account on a Unix system, so that they can follow the book’s “learn by doing” approach. They may also benefit from having Web access, since the book is part of Prentice-Hall’s “Unix Interactive Workbook” series and has some Web pages devoted to its content.
Each chapter begins with an introduction to its subject matter, followed by some examples, with exercises and answers to the questions raised therein. There are also some “self-review (multiple-choice) questions.” Answers to these can be found in Appendix A. A concise list of commonly used commands and their options appears in Appendix B.
Chapters 1 and 2 deal, respectively, with “Your First Session” and “The Command Line.” They cover session login and logout, directory listing, command entry and command options, and pipes and redirection. They include some good recommendations concerning password selection, and a few comments concerning alternative shells; however, in keeping with the generic nature of the book’s coverage, no details are provided on exploiting the capabilities (such as command history) of the different shells.
In chapters 3 and 4, readers can learn about directory structures, file creation, file listing, and symbolic links. The command illustrations and listings are useful, and concepts such as directory removal are well presented.
Chapter 5, “Finding Help,” covers both standard man commands and xman commands. It is followed by a chapter on “Emergency Recovery,” in which procedures for restoring a command prompt, stopping a program, and recovering a lost file are described. Readers may be intrigued by the last of these; the suggested procedures are to “adopt a ‘trashcan’ approach to deletion” and to “ask your system administrator.”
Subsequent chapters are “Finding Files,” “Regular Expressions,” “The ‘vi’ Editor,” and “Working with Text Files” (covering the sort, spell, and wc commands, and others). These are followed by chapters about printing (using lp in the examples, with mention of the lpr command for BSD-derived systems) and job control.
The final chapter is about X Windows. Its coverage is rather basic, and the illustrations are few; however, it does cover such items as MWM menus and window geometry.
Overall, I found the book easy to read and reasonably accurate. A couple of typographical errors relating to backward and forward quotation marks, and some examples that only produce the expected results when executed within particular shells, may cause some confusion for beginners.
The Web pages contain interesting supplemental material, such as additional examples whose multiple-choice answers can be submitted interactively for instant results and grading. A chapter on Emacs is also promised for the near future.
I am a little concerned about whether this book goes far enough for its intended audience. Other books offered at similar prices (such as Hands-on UNIX and its successors, by Mark Sobell) provide coverage that is both broader and more detailed. On the other hand, this book may be suitable for those who need the additional exercise material and Web support it provides.