Mark's Book Recommendations
Mark W. Krentel, February 2002.
This is a list of Unix and Linux books that I like and recommend. In
general, I'm fond of the O'Reilly series, but not always. My
interests in Unix are mainly system administration and development.
Many of these books are a bit advanced and go well beyond what the
home user needs to run Star Office and play games. But they are all
excellent for their target audience. Unfortunately, there is a
shortage of good, intermediate level Unix books.
And don't forget that some of the best documentation is in the
man and info pages and the
online Howtos.
Unix Systems and Administration
-
Unix System Administration Handbook
(Prentice Hall) by Nemeth, Snyder, Seebass and Hein.
My favorite book on system administration. The O'Reilly book is also
good, although I am fond of Nemeth, et al. This book covers all
aspects of administration: users, processes, disks, file systems,
booting, daemons, backups, logging, networking, name service, mail,
printing, hardware and much more. It's told with a sly sense of humor
and extensive practical experience. Just remember that this is not an
introduction to Unix for beginners. This book covers those areas that
give Unix its reputation for being difficult. There is now a Linux
version of this book (green cover) which I also recommend highly.
-
Running Linux
(O'Reilly) by Welsh, Dalheimer and Kaufman.
A good, all around introduction to Linux. This book covers system
administration and user tools at a less advanced level than the Nemeth
book. I didn't care much for the first edition of this book, but the
third edition is much better and now I can recommend it.
-
TCP/IP Network Administration
(O'Reilly) by Craig Hunt.
An excellent introduction to networking, mainly from a Unix
perspective. It covers TCP, UDP and ICMP packets, network layers,
ports, routing, name service, remote shell and sendmail. This book
goes far beyond what a home user needs to set up a private network.
But for someone wanting to see how networking really works, this is
the right place to start.
-
Building Internet Firewalls
(O'Reilly) by Chapman and Zwicky.
The definitive book on packet filters. It covers interior and
exterior routers, perimeter networks, bastion hosts, victim machines
and sample designs. It also has an excellent service by service
analysis of the ports and risks of the major protocols. My
IPChains notes
are a summary of this book for the home user.
-
Unix Power Tools
(O'Reilly) by Peek, O'Reilly and Loukides.
Unix systems come with some 500 utility programs and this book covers
some of the more important ones. It includes customizing your shell,
aliases, environment variables, job control, find, tar, gzip, grep,
diff, spell, vi, emacs, sed, awk, perl, printing, terminals, regular
expressions and shell programming.
-
Portable Shell Programming
(Prentice Hall) by Bruce Blinn.
The best book on writing shell scripts in Bourne shell (/bin/sh).
This book covers syntax, variables, quoting and many common
applications and functions. Shell programming is often clumsy and
quirky, but Blinn covers the subject with clarity and precision. And
although bash, tcsh and ksh are good interactive shells, for reasons
of portability, shell scripts (omitting Perl for the moment) should be
written for /bin/sh.
Programming and Development
-
Advanced Programming in the Unix Environment
(Addison-Wesley) by W. Richard Stevens.
-
Unix Network Programming
(Prentice Hall) by W. Richard Stevens.
These books are about writing C programs that talk to the Unix system
and kernel through library and system calls. The Advanced book
covers input, output, files, directories, users, processes, fork,
exec, select, mmap, signals, terminals and daemons. The
Network book covers TCP and UDP sockets, clients and servers,
name service and advanced options. Stevens is the definitive author
for Unix programming and covers the subject with clarity, precision
and an eye to portability.
-
The C Programming Language
(Prentice Hall) by Kernighan and Ritchie.
-
Practical C Programming
(O'Reilly) by Steve Oualline.
Two good books on beginning C programming. Kernighan and
Ritchie is a classic and covers the major features of C with
brevity and precision. The O'Reilly book covers the same material and
is more verbose.
-
Learning Perl
(O'Reilly) by Randal Schwartz.
-
Programming Perl
(O'Reilly) by Wall, Christiansen and Schwartz.
There are hundreds of books on Perl, so in this case I lean to the
O'Reilly series. The Learning book gives a reasonable,
straightforward presentation for someone with no Perl experience,
with each chapter introducing a new feature of the language. The
Programming book is a reference for people already familiar
with the language and covers in depth rules, builtin functions and
libraries.
Beginner Books
-
Unix Visual Quickstart Guide
(Peachpit Press) by Deborah S. Ray and Eric J. Ray.
-
Linux
(IDG Books and Maran Graphics) by Michael Bellomo.
Two books for the complete beginner. I don't own these books, but
they seem like a good introduction to Unix for someone with no prior
Unix experience.