This book opens with a tour of the history and function of traditional Unix shells (from Bourne, C, and Korn shells) before centering on Linux variants, bash and tcsh. The text then turns to three powerful utilities: grep (for file searching), sed (for noninteractive file editing), and gawk (which allows programmers to write powerful scripts that process files using regular expressions).
There are dozens of sample commands to try out here. (With shell programming, the genius is truly in the details, and the only way to learn the shell is to try it out for yourself.) As an experienced teacher, the author provides a wealth of examples that take you through both the common and more esoteric features of these utilities. Instead of hard-to-decipher man pages, there she includes dozens of sample commands with correct syntax, plus clear explanations.
The rest of this book looks at the bash and tcsh shells in detail, from interactive mode to shell programming with full coverage of the basics of writing reusable scripts. Final sections of Linux Shells by Example look at common Linux file and system commands for easy reference, and the book ends with a useful appendix on quoting styles for five different shells. In all, this book's clear presentation style and plentiful examples will help any Linux user become a competent shell user and script programmer. --Richard Dragan
Topics covered: Survey of Unix shells (the Bourne, C, and Korn shells), survey of Linux shells (the Bourne Again and TC shells), processes, shell environments, tutorial for regular expressions, grep for file searches, the streamlined editor (sed), awk/nawk/gawk scripts, gawk basics and expressions, gawk programming (variables, arrays, flow control, built-in and user-defined functions), the bash and tcsh shells (interactive mode, programming tutorial for shell scripts), reference to common Linux/Unix utilities, comparison of shells, and tips for using correct quoting styles within shells.
Playing the "shell" game has been a lot of fun with UNIX, and now with Linux as well. After publishing my previous book, UNIX Shells by Example, Mark Taub (the Prentice Hall acquisitions editor who keeps me writing books) suggested I write a Linux shells book. We both thought it would be "a piece of cake," or at least I did. After all, there shouldn't be much difference between the Bourne and Bourne Again shells, or between C and TC shells; Maybe just a few neat new figures, right? Wrong! This project was like writing a brand new book from scratch.
Although there are many similarities, the UNIX and Gnu tools and shells offer a plethora of new extensions and features. Linux offers not only the Gnu tools, but also a number of fully functional shells. Since I had already covered the Korn shell in detail in UNIX Shells by Example, I decided to concentrate on the two most popular Linux shells-Bourne Again shell (bash) and TC shell (tcsh).
Due to all the new features, enhancements, built-ins, etc., the shell chapters had to be split up, or they would have become unwieldy. What in the previous book consisted of two chapters has now become four. It was a lengthy, tedious process and when I had just about completed the bash chapter, I realized I was not using the most up-to-date version, so back to the drawing board I went. Since all of you will not necessarily be using the same version of bash, I have tailored this book to cover the old and the new versions.
The first section of this book presents the Gnu tools you will need to write successful shell programs-gawk, grep, and sed. These are the ideal tools for pattern matching, manipulating, text editing, and extracting data from pipes and files.
When learning about the shell, it is presented first as an interactive program where everything can be accomplished at the command line, and then as a programming language where the programming constructs are described and demonstrated in shell scripts.
Having always found that simple examples are easier for quick comprehension, each concept is captured in a small example, followed by the output and an explanation of each line of the program. This method has proven to be very popular with those who learned Perl programming from my first book, Perl by Example, and then shell programming from UNIX Shells by Example. Linux Shells by Example should get you up to speed quickly and before you know it, you will be able to read, write, and maintain shell programs.
The shells are presented in parallel so that if, for example, you want to know how redirection is performed in one shell, there is a parallel discussion of that topic in each of the other shell chapters, and for quick comparison there is a chart in Appendix B of this book.
It is a nuisance to have to go to another book or the Linux man page when all you want is enough information about a particular command to jog your memory on how the command works. To save you time, Appendix A contains a list of useful commands, their syntax, and a definition. Examples and explanations are provided for the more robust and often-used commands.
The comparison chart in Appendix B will help you keep the different shells straight, especially when you port scripts from one shell to another, and as a quick syntax check when all that you need is a reminder of how the construct works. It compares Korn, Borne, Bash, Tcsh, and C shells.
One of the biggest hurdles for shell programmers is using quotes properly. The section on quoting rules in Appendix C presents a step-by-step process for successful quoting in some of the most complex command lines. This procedure has dramatically reduced the amount of time programmers waste when debugging scripts with futile attempts at matching quotes properly.
I think you'll find this book a valuable tutorial and reference. The objective is to explain through example and keep things simple so that you have fun learning and same time. I am confident that you will be a productive shell programmer in a short amount of time. Everything you need is right here at your fingertips. Playing the Linux shell game is fun. You'll see!Ellie Quigley