posted by Jason Vagner on Fri 16th Apr 2004 20:37 UTC
IconO'Reilly's latest entry in the "Pocket" series, "Linux Pocket Guide", bills itself as a "quick reference for experienced users and a guided tour for beginners".

The book can be broken down into two logical sections. The first 33 pages cover, in a very quick and high-level manner, the inner workings of basic *nix fundamentals: the shell as a concept vs bash as the Fedora default, filesystem, logins/outs, job control, etc. It's hard to know to whom this section was targeted. It covers a lot of important ground but doesn't really delve into any of the concepts, or sometimes even the terminology, that makes it essential or properly informative for new users. At best, I imagine this section will be most useful to technically oriented Windows programmers or administrators who need to understand the analogs in Linux of things they are used to in the Microsoft world.

The rest of the book is devoted to introducing groups of essential Linux programs, categorized by function. This is the book's best feature and will prove valuable to new users of Linux who aren't familiar with the standard command line tools. Some examples: The "Basic File Operations" chapter covers ls, cp, mv, rm and ln. A chapter on "Viewing Processes" covers ps, uptime, w, top, xload and free, and the chapter on "Network Connections" covers ssh, telnet, scp, sftp, and ftp. There are 40 chapters in total, ending with an extremely brief introduction to bash shell programming.

While it would be quite easy to take exception with some of the program choices, it is true that a new Linux user would get a useful introduction to some of the most essential and oft-used programs and the administrative functions that go with them. For someone coming from a Windows administration background, reading this book in one or two sittings would easily give them a start on basic tasks in Linux.

The book comes off as a bit of a mixed bag, though, when considered as a reference tool. Too many of the entries are a very brief introduction with a list of the most used command line options for a given program. Often the entry itself references you directly to the manpage without any examples. Other entries, such as that for cdrecord or host, are stronger tutorialials with useful examples to give a more complete picture of not only what the program does but how to use it. These kind of entries feel like they were taken from a "Hacks" or "Cookbook" book series and should be used more liberally throughout the book.

One of the details that separates some man pages from others is the "examples" section towards the end. The power of command line tools is especially evident when you combine program options together to work some magic. Some valuable entries in the book miss out on the opportunity to show creative uses of the program and instead leave it up to the reader to deduce what kind of output might result from the use of multiple options together. Some of these combinations are so standard and essential that they've made their way into countless alias lists ("ls -al" or, in my case, "ls -alhF") and their inclusion could allay the intimidation that might develop upon reading a straight list of available options for a given program.

It's hard to understand why some programs get long, example-rich entries (e.g. dc and crontab) but others get example-free or less useful entries (e.g. chmod). The chmod entry is comprehensive in its explanation but misses out on the opportunity to shake confusion from a new reader's brain by not listing some basic user permissions (0644, 0755) we see in the real world and explaining what they mean and why we use them.

The book itself is "tailored to Fedora Linux," though it notes that "most of the information applies to any Linux system." While this is true enough, it is unfortunate that O'Reilly didn't take the opportunity to expand the scope of targeted distributions. The ties to Fedora aren't really that essential to most of the book: the chapter on "Installing Software" covers up2date, rpm and the .tar and .bz2 file formats in 4 pages. Each program entry also includes the filesystem location for that given program (or listed as "built-in" when that's the case). Some of those entries are already wrong for the pending Fedora Core 2 release (see the OpenOffice.org entries) or generic enough for most distributions.

As an advanced user of many flavors of *nix (starting with Irix, and moving through SunOS, Solaris, AIX, HPUX and now Linux and BSD), I didn't find a lot of new information in the book. Given its short length and breadth of coverage, this isn't really surprising. I did develop a growing sympathy for what a new user to *nix is facing in terms of understanding the arcana that has developed over its long history. *nix is a wonderful computing system filled with ostensibly mysterious inconcistencies and eccentricities. Writing a book to rationalize these, in very short order, is certainly a challenge. The author does point these out where they are relevant, but the book is a little lacking in humor to smooth these out where they might cause a reader to furrow their brow in consternation (I counted exactly one bit of humor in the whole book, on page 152).

Users migrating to Linux are definitely in need of a book that gives them an introduction to the most relevant tools in fundamental functional areas. This first edition of the Linux Pocket Guide will indeed prove quite useful to these users, but I look forward to a slightly expanded second edition that covers more real-world examples and basic "tricks" of our favorite and most essential command line tools.

FOR THE ERRATA: There aren't many errors in the book, but I did find three in the opening pages: 1) on page 27, a "\" is referred to as a forward slash; 2) on page 37, the example in point 2 won't work because the *.tar.* files aren't located where the user is, in a new directory; 3) and again on page 37, the example at the end of point 4 won't work because after the user "su -l"'s, they'll be sitting in the root user's homepage and the "make install" command won't work from there. These last two errors are probably the result of too much brevity.

About the Author:
Jason Vagner has been using flavors of *nix for over ten years. He is the founder and CTO of Rock Commerce, a web hosting and development company.

Buy "Linux Pocket Guide"
at Amazon.com

If you would like to see your thoughts or experiences with technology published, please consider writing an article for OSNews.
e p (0)    22 Comment(s)

Technology White Papers

See More