Novice users and power users of *nix will enjoy reading <cite>From Bash to Z Shell: Conquering the Command line</cite> by Oliver Kiddle, Jerry Peek, and Peter Stephenson. In this moderately-size book from Apress, the authors delve into both bash (Bourne Again Shell) and zsh (Z Shell) to enable you to utilize them to their fullest advantage. Topics range from the simple editing of the command line to redefining key sequences, down into creating functions for editing and command line completion. Some areas are covered in other books, but this one goes into some side streets and alleyways to show you the shortcuts to more efficient use of the shell.
A *nix style shell is available in a number of platforms, so the authors chose not to limit themselves to just one, such as Linux. The techniques they discuss can be used in Unix, as well as under Windows using cygwin.
In case you're not overly well-versed in shell handling, the first part of the book does a pretty good job covering all of the things a typical user might want to do. Basic command editing, I/O redirection, jobs, processes, and some simple scripting are all covered. For many users, this is as far as they would like to go. However, reading a little further yields treasure.
The next part delves into bash version 3.0 and zsh version 4.2. A good chunk of chapter 4 is spent on sophisticated command line editing techniques, including rebinding keys with bindkey (or its bash cousin 'bind'). The next few chapters cover common topics of prompt strings, file/directory globbing, and shell history. Then, significant press is given to the subject of pattern matching, which <cite>From Bash to Z Shell</cite> details with many examples from both bash and zsh. Part 2 wraps up by discussing command line and file/directory name completion, and job processing.
The third and final part of the book deals with extending the shell using variables, scripts, and functions. The first two chapters go over familiar territory: shell variables and shell programming. The last two chapters focus on topics frequently overlooked: editor functions, and completion functions. This is where a true power user can shine, creating a suite of new functions to speed his/her use of zsh or bash.
All-in-all, <cite>From Bash to Z Shell</cite> provides a frequent shell user with a plethora of new insights into customizing the bash and zsh shell programs to fit his/her tastes. The authors have filled a void in tackling the subject of customizing the shell rather than just simply using it. I would have liked to see more coverage of some of the more standard uses of the shells, just so the book could be a more complete reference, rather than the specialized one it is. Specialized or not, there is a lot offered here, and you couldn't go wrong getting this book.