The key to mastering any Unix system, especially Linux and Mac OS X, is a thorough knowledge of shell scripting. Scripting is a way to harness and customize the power of any Unix system, and it's an essential skill for any Unix users, including system administrators and professional OS X developers. But beneath this simple promise lies a treacherous ocean of variations in Unix commands and standards. bash Cookbook teaches shell scripting the way Unix masters practice the craft. It presents a variety of recipes and tricks for all levels of shell programmers so that anyone can become a proficient user of the most common Unix shell -- the bash shell -- and cygwin or other popular Unix emulation packages. Packed full of useful scripts, along with examples that explain how to create better scripts, this new cookbook gives professionals and power users everything they need to automate routine tasks and enable them to truly manage their systems -- rather than have their systems manage them.
Cameron Newham Book order (chronological)


O'Reilly's bestselling guide on the bash shell has been updated to reflect the latest changes in Linux, now a key player in both server and desktop environments. This third edition serves as an invaluable resource for users encountering the shell, the UNIX interface that facilitates communication with the computer through the keyboard and display. Mastering the bash shell may seem straightforward, but it involves complexities that require thorough explanation, which this book provides. For newcomers to shell programming, it offers a comprehensive introduction, covering everything from basic to advanced features. Experienced users will find insights into the latest shell offerings. The book is rich with practical examples of shell commands and programs, enhancing everyday Linux use. Readers will learn how to install bash as their login shell, navigate UNIX file and directory structures, and utilize standard I/O and background jobs. It covers command line editing, history substitution, and key bindings, as well as customizing the shell environment without programming. Additionally, it delves into basic shell programming, flow control structures, command-line options, and typed variables. The book also addresses process handling, debugging techniques, and methods for implementing system-wide shell customization and security features.