Bash, the GNU System's command-language interpreter and command-line interface, is the default shell for nearly all GNU/Linux distributions, many Unices, and for Mac OS X; making it the most popular shell in the Unixoid world. It is the interface that users and system administrators choose to automate and/or accomplish tasks quickly and efficiently. It's also a full blown interpreted language with all the bells and whistles of such: variable assignment, looping & branching constructs, arrays, etc.
The web is littered with a number of resources for learning how to use and even master Bash. Here are 10 of the best digital books, freely available online:
License: Three-Clause BSD Style - Pages (PDF): 165 pp. - Other Format(s): Single-Page HTML, PDF
Machtelt Garrels's canonical guide presented by the Linux Documentation Project makes a great companion volume to her Introduction to Linux guide (see below). This short work gives a beginner's view of Bash. The first part is heavy on text processing information (particularly regular expressions, sed, Gawk) but the rest of the book makes a fine shell tutorial.
Introduction to the Command Line
License: GNU Free Documentation License - Pages (PDF): 169 pp. - Other Format(s): PDF, EPUB
Written as part of the Floss Manuals book sprint, this guide offers the novice an easy-to-understand, step-by-step tutorial for learning Bash.
License: NA - Pages (PDF): NA - Other Format(s): NA
Maarten Billemont's guide, while perhaps not a book (it's a collection of essays -- grouped by topic -- about shell use), makes a fine primer and includes many best practices.
License: Creative Commons BY-NC-ND 3.0 - Pages (PDF): 513 pp. - Other Format(s): NA
William Shotts's 513 page volume will teach your everything you need to know about command line interaction with Bash (and then some). The last section contains a great introduction to bash-scripting.
License: Open Publication License - Pages (PDF): 901 pp. - Other Format(s): Single-Page HTML, PDF
Mendel Cooper's magnum opus (also archived by the Linux Documentation Project) gives an exhaustive and rather advanced (as the title indicates) meditation on bash-scripting techniques. It starts with some introductory material and then quickly launches into expository analyses of various bash scripts. Recommended for intermediate Bash users who want to become experts.
License: GNU Free Documentation License - Pages (PDF): 96 pp. - Other Format(s): Single-Page HTML, PDF
A compendium of brief introductory summaries for learning how to use more than 100 commonly-used GNU command-line tools & utilities.
License: GNU Free Documentation License - Pages (PDF): 159 pp. - Other Format(s): Single-Page HTML, PDF
Written by Bash's founding developer, Brian Fox, and its current maintatiner, Chet Ramey, this is the official reference manual for all things Bash. Read it when you are ready for an in-depth understanding of shell internals.
License: NA - Pages (PDF): NA - Other Format(s): NA
Much like the above Reference Manual, (and written by the same authors) but much more terse and cryptic, this is the go-to document when you need to know precisely how a given component of the shell is supposed to behave.
The Unix Programming Environment
License: Generic grant - Pages (PDF): 188 pp. - Other Format(s): PDF
A bit dated (originally published in 2001) -- but still valuable -- Mark Burgess's volume will guide you through the basics of shell programming while presenting a more generalized approach to Unix shell programming (not just Bash programming).
Introduction to Linux: A Hands on Guide
License: Three-Clause BSD Style - Pages (PDF): 215 pp. - Other Format(s): Single-Page HTML, PDF
This can be considered a companion piece to Garrels's Bash Guide for Beginners (see above). It is more basic and generalized, giving an introduction not only to Bash but to many other GNU and Linux commands.






