Edited by Peter Denning, Computers Under Attack: Intruders, Worms, and Viruses, ACM Press, 1990, 0-201-53067-8.

This compendium contains a couple of articles on shell script viruses.


Dale Dougherty and Arnold Robbins, Sed and Awk, 2nd edition, O'Reilly and Associates, 1997, 1-156592-225-5.

To unfold the full power of shell scripting, you need at least a passing familiarity with sed and awk. This is the standard tutorial. It includes an excellent introduction to "regular expressions". Read this book.


Aeleen Frisch, Essential System Administration, 3rd edition, O'Reilly and Associates, 2002, 0-596-00343-9.

This excellent sys admin manual has a decent introduction to shell scripting for sys administrators and does a nice job of explaining the startup and initialization scripts. The long overdue third edition of this classic has finally been released.


Stephen Kochan and Patrick Woods, Unix Shell Programming, Hayden, 1990, 067248448X.

The standard reference, though a bit dated by now.


Neil Matthew and Richard Stones, Beginning Linux Programming, Wrox Press, 1996, 1874416680.

Good in-depth coverage of various programming languages available for Linux, including a fairly strong chapter on shell scripting.


Herbert Mayer, Advanced C Programming on the IBM PC, Windcrest Books, 1989, 0830693637.

Excellent coverage of algorithms and general programming practices.


David Medinets, Unix Shell Programming Tools, McGraw-Hill, 1999, 0070397333.

Good info on shell scripting, with examples, and a short intro to Tcl and Perl.


Cameron Newham and Bill Rosenblatt, Learning the Bash Shell, 2nd edition, O'Reilly and Associates, 1998, 1-56592-347-2.

This is a valiant effort at a decent shell primer, but somewhat deficient in coverage on programming topics and lacking sufficient examples.


Anatole Olczak, Bourne Shell Quick Reference Guide, ASP, Inc., 1991, 093573922X.

A very handy pocket reference, despite lacking coverage of Bash-specific features.


Jerry Peek, Tim O'Reilly, and Mike Loukides, Unix Power Tools, 2nd edition, O'Reilly and Associates, Random House, 1997, 1-56592-260-3.

Contains a couple of sections of very informative in-depth articles on shell programming, but falls short of being a tutorial. It reproduces much of the regular expressions tutorial from the Dougherty and Robbins book, above.


Clifford Pickover, Computers, Pattern, Chaos, and Beauty, St. Martin's Press, 1990, 0-312-04123-3.

A treasure trove of ideas and recipes for computer-based exploration of mathematical oddities.


George Polya, How To Solve It, Princeton University Press, 1973, 0-691-02356-5.

The classic tutorial on problem solving methods (i.e., algorithms).


Arnold Robbins, Bash Reference Card, SSC, 1998, 1-58731-010-5.

Excellent Bash pocket reference (don't leave home without it). A bargain at $4.95, but also available for free download on-line in pdf format.


Arnold Robbins, Effective Awk Programming, Free Software Foundation / O'Reilly and Associates, 2000, 1-882114-26-4.

The absolute best awk tutorial and reference. The free electronic version of this book is part of the awk documentation, and printed copies of the latest version are available from O'Reilly and Associates.

This book has served as an inspiration for the author of this document.


Bill Rosenblatt, Learning the Korn Shell, O'Reilly and Associates, 1993, 1-56592-054-6.

This well-written book contains some excellent pointers on shell scripting.


Paul Sheer, LINUX: Rute User's Tutorial and Exposition, 1st edition, , 2002, 0-13-033351-4.

Very detailed and readable introduction to Linux system administration.

The book is available in print, or on-line.


Ellen Siever and the staff of O'Reilly and Associates, Linux in a Nutshell, 2nd edition, O'Reilly and Associates, 1999, 1-56592-585-8.

The all-around best Linux command reference, even has a Bash section.


The UNIX CD Bookshelf, 3rd edition, O'Reilly and Associates, 2003, 0-596-00392-7.

An array of seven UNIX books on CD ROM, including UNIX Power Tools, Sed and Awk, and Learning the Korn Shell. A complete set of all the UNIX references and tutorials you would ever need at about $130. Buy this one, even if it means going into debt and not paying the rent.


The O'Reilly books on Perl. (Actually, any O'Reilly books.)


Ben Okopnik's well-written introductory Bash scripting articles in issues 53, 54, 55, 57, and 59 of the Linux Gazette , and his explanation of "The Deep, Dark Secrets of Bash" in issue 56.

Chet Ramey's bash - The GNU Shell, a two-part series published in issues 3 and 4 of the Linux Journal, July-August 1994.

Mike G's Bash-Programming-Intro HOWTO.

Richard's UNIX Scripting Universe.

Chet Ramey's Bash F.A.Q.

Ed Schaefer's Shell Corner in Unix Review.

Example shell scripts at Lucc's Shell Scripts .

Example shell scripts at SHELLdorado .

Example shell scripts at Noah Friedman's script site.

Steve Parker's Shell Programming Stuff.

Example shell scripts at SourceForge Snippet Library - shell scrips.

Giles Orr's Bash-Prompt HOWTO.

Very nice sed, awk, and regular expression tutorials at The UNIX Grymoire.

Eric Pement's sed resources page.

The GNU gawk reference manual (gawk is the extended GNU version of awk available on Linux and BSD systems).

Trent Fisher's groff tutorial.

Mark Komarinski's Printing-Usage HOWTO.

There is some nice material on I/O redirection in chapter 10 of the textutils documentation at the University of Alberta site.

Rick Hohensee has written the osimpa i386 assembler entirely as Bash scripts.

Rocky Bernstein is in the process of developing a "full-fledged" debugger for Bash.


The excellent "Bash Reference Manual", by Chet Ramey and Brian Fox, distributed as part of the "bash-2-doc" package (available as an rpm). See especially the instructive example scripts in this package.

The newsgroup.

The manpages for bash and bash2, date, expect, expr, find, grep, gzip, ln, patch, tar, tr, bc, xargs. The texinfo documentation on bash, dd, m4, gawk, and sed.