exclusive content published on May 22, 2006
Anyone proficient with Linux had to climb the steep learning curve.
Part of getting over the top for me was reading a hundred different
Linux and Unix related books. From that list, three books stand out as
the most useful and influential. I can't promise easy sledding; it will
take some work, but mastering this material will demystify Linux and
make you appreciate it more.
Non Disclaimer
I have no financial or other
relationship to any of the publishers or authors of these books. These
recommendations are merely the books that dragged me a little further
down the road toward Linux enlightenment than others. They have
stood the test of time and still hold prominent places in my library.
Linux: Rute User's Tutorial and Exposition
by Paul Sheer
Publisher: Prentice Hall
ISBN: 0130333514
672 pages
|
|
Despite the somewhat contrived recursive title, this book covers Linux
from the basics of computing to the architecture of the entire
system and everything along the way. It starts with the definition of a
bit, covers common hardware, authentication, permissions, links,
partitions, packages, regular expressions, and scripts. There is
excellent coverage of the GNU utilities, a guide to TCP/IP and
networking, Apache, DNS, NFS, email, databases and more. The one glaring
omission is the Common Unix Printing System (CUPS), but lpd was still
the standard print daemon when it was published. The X Window section
is also showing some age, but is still valuable.
Though there are no illustrations, plenty of lucid examples are given.
The book is based on the Debian distribution, but 95% of the material is
applicable to any flavor of Linux. The chapters are short enough to be
manageable and cut right to the practical applications. The author
writes clearly and wastes no time making his point. Since it covers so
much ground, it doesn't delve too deeply into any one topic. After you
have worked through it, you will have a solid foundation for using Linux
confidently and know what areas interest you for further study.
It's a great first reference when tackling something new or something
you haven't done in a long time. This guide has been used as a textbook
for Linux training courses. It includes a CD-ROM with the entire book
in HTML format.
update May 24, 2006: I have been informed by Paul Dorman
that Debian has a package, rutebook, that contains
HTML and PDF versions of the book. It is also
available online.
Learning the BASH Shell
by Cameron Newham
Publisher: O'Reilly Media, Inc.
ISBN: 0596009658
352 pages
|
|
I must admit the shell is my favorite interface to the system. Don't get
me wrong, GUIs are wonderful...for running multiple shells. As the
default shell in Linux (and OS X), BASH is something you will bump into
frequently.
The Linux system start up scripts are shell programs, the maintenance
scripts in cron are shell programs, and you will find shell scripts in
many other nooks of the system. You need to understand shell scripting
to understand the system.
The authors cover interactive use and shell programming. You will learn
the power of pipes and redirection, process management, and signals.
Learning BASH will make you more productive and at ease managing a system 1000
kilometers away through a secure shell connection. The BASH programming
language is presented in depth, with concise explanations of all its
features. Like any scripting language, it doesn't perform as well as a
compiled program, but it is highly portable. You may be surprised at
the powerful applications that can be assembled quickly from just shell
scripts and GNU utilities.
While some may find a book on BASH dry, the writing style and examples
given make it a fun read. My copy is beaten up from over use and several
sections are bookmarked with coffee stains. Those are hallmarks of a
good reference book.
Linux and the Unix Philosophy
by Mike Gancarz
Publisher: Digital Press
ISBN: 1555582737
256 pages
|
|
My third choice may seem dubious because it doesn't contain algorithms
or sample code. Nothing on Ajax, Ruby on Rails, or social networking.
What it does offer is perspective on the design choices and reasoning
behind the way Unix and Linux work. If you were not lucky
enough to work with Ken Thompson, and didn't cut your teeth on Unix, the
system may seem chaotic. The system directory names look cryptic
at first glance and everything seems opaque. This is partly due to
expectations and assumptions based on the way other operating systems
work.
This work is an updated version of the author's classic, The Unix
Philosophy, also one of my favorites, that takes into account the rise
of free software and distributed development. A sharp contrast is drawn
among the different approaches to computing taken by different systems.
The oft-mentioned Unix philosophies of "make each program do one thing
well" and "choose portability over efficiency" are explained in great
detail. Many other major and minor tenets are explored. While there is
some discussion of software development, the theory is valuable to
anyone using a computer. Once you begin to understand why some things
are the way they are, it clicks. This book changed the way I looked at
Linux and gave me a higher level perspective on how to approach it.
The book is short, easy to read, and useful for both newcomers and
grizzled veterans.
Walking the path
When I first started using Linux, I struggled to get my head around
everything, only learning a few things each week. Then, one day, the
epiphany hit and it all made sense. Now, I understand what is going on in a
Linux system at a much deeper level than I will ever understand what is
going on in other operating systems. Not just because the source is
open, but because it has a clean design. I can quickly see what is
running, how it was started, and why. The system is so modular that I
can kill nearly every process in the system and still get work done. I
can fix a problem and it stays fixed. I know what the system is doing,
I control it, and I trust it. Anyone can learn Linux, but you can only
get there by walking the path.

This work is licensed under a
Creative Commons Attribution-NonCommercial 2.5 License.