O’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
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“
If you would like to see your thoughts or experiences with technology published, please consider writing an article for OSNews.