Free Trial

Safari Books Online is a digital library providing on-demand subscription access to thousands of learning resources.

  • Create BookmarkCreate Bookmark
  • Create Note or TagCreate Note or Tag
  • PrintPrint
Share this Page URL
Help

PREFACE

PREFACE

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

http://www.ellieq.com

  • Safari Books Online
  • Create BookmarkCreate Bookmark
  • Create Note or TagCreate Note or Tag
  • PrintPrint