This review first appeared in the AZTCS journal.
When I glanced at this book, my first question was, "Who are these guys on the cover?" Before scanning the contents and index, my usual first step in examining a new book, I searched for the cover credits. I found none.
I use the term Unix as the authors use the term, to designate all Unix based systems including Linux, Solaris, OSX, and the BSDs as well as Unix.
The 400+ page paperback book is divided into 21 chapters. Each chapter ends with exercises; the solutions are found at the end of the book. The book's copyright is 2005 but the fundamentals of the Unix based operating systems don't change much so this book is by no means out of date.
Included is a CD of KNOPPIX 3.7. This is an old version of KNOPPIX but very usable for the authors' purpose of learning Unix. By using the live CD, it is possible to study Unix without installing it.
The book begins with introductory material giving a, thankfully, very brief history of Unix and its evolution. Next "Beginning Unix" explains how the Unix system is set up and what the major components are.
Logging in is covered. Logging out and shutting down the computer, if you have permission, are explained. Logging in and out properly is well detailed.
The book explains files in a very thorough and informative manner. As the whole strategy of Unix is based on files, creating, removing, copying, moving and organizing files are important functions. File permissions and their importance receive thorough and clear discussion. With a thorough understanding of permissions many potentially frustrating problems can be avoided or solved quickly.
Commands are introduced as needed for completing simple to very complex exercises. The functions of the shell are explored. Simple and advanced scripting is explained and several examples are presented. Besides shell scripts, there is a brief introduction to PHP. Piping, using the output of one program as input for another program, is illustrated with several meaningful examples.
There is a chapter on customizing your personal environment. Customizing the prompt, creating aliases, and organizing your work are explained in detail. This is much different than the usual customizing instructions focusing on the desktop.
Full chapters cover securing the system, using log files, understanding and controlling jobs and processes, backing up information, and automating tasks using cron. These chapters are useful in administering your Unix system. Administration on a desktop Unix system is important as the user is usually the administrator.
Network connections are explained, both in theory and by example. As Unix originated as a network environment, there are many tasks to be accomplished over the network. This information is important in connecting to the Internet.
There is a chapter covering installing programs from source code. Although this was necessary in early Linux distributions, the repositories available with most distributions make this interesting but seldom used information for most users. The procedure and potential pitfalls are discussed in detail. Reading this chapter reenforced my feeling "this is something I don't need to do for a while."
Migrating from a Mac or a Windows PC to Unix takes up the last two chapters of the book. These chapters should be very helpful in making the transition. They concentrate on the skills developed in using the Mac or a Windows PC and help transfer them to a Unix system.
There are several things I like about this book. Extensive use of screen shots in combination with the text helps me understand the examples more easily. The examples are clear and concise. The theory included helps improve understanding of the subject but doesn't overload the reader. The flow of the book is logical with examples building on previous exercises.
The complete lack of discussion of KDE, Gnome and other desktops is refreshing as these are explained in several other sources; I see no use for another superficial chapter or two in this book. It is more difficult to find good information on using the command line than using GUIs and this book has much good excellent information.
I am a Linux user with about two years experience so I found much new information in "Beginning Unix". This book answers questions I didn't know I had. There are several examples and techniques presented that will make my use of Linux more efficient, powerful and fun. Many "fuzzy areas" came into focus for me.
I think, at completion of this book, the user will be comfortable and effective at using the command line. After these exercises the user might be tired of the command line but they will not be fearful.