By Cameron Newham
Third Edition
March 2005
Pages: 352
ISBN 10: 0-596-00965-8 |
ISBN 13: 9780596009656
![]()
![]()
![]()
![]()
(Average of 2 Customer Reviews)
This refreshed edition serves as the most valuable guide yet to the bash shell. It's full of practical examples of shell commands and programs guaranteed to make everyday use of Linux that much easier. Includes information on key bindings, command line editing and processing, integrated programming features, signal handling, and much more!
Full Description
- How to install bash as your login shell
- The basics of interactive shell use, including UNIX file and directory structures, standard I/O, and background jobs
- Command line editing, history substitution, and key bindings
- How to customize your shell environment without programming
- The nuts and bolts of basic shell programming, flow control structures, command-line options and typed variables
- Process handling, from job control to processes, coroutines and subshells
- Debugging techniques, such as trace and verbose modes
- Techniques for implementing system-wide shell customization and features related to system security
Cover | Table of Contents | Colophon
Featured customer reviews
a great task oriented introductory/intermediate guide, June 20 2007
This is a valuable introduction book for the bash shell. The best part of this book for me was all the tasks after each subsection. These tasks are designed to encourage you to think about new commands you just learned. The difficulty level was right-on for me, neither too simple or too hard. These helpful practices are rarely seen in other handbooks. Reading and understanding this book, plus completing the recommended tasks, will get you well on your way to productive bash usage and bash programming.
One disappointment was that the book is not a complete reference. The book covers most useful materials you need to know but not all. If you want a complete reference to the bash shell, skip this one.
I highly recommend this book for people in beginning or intermediate level who want to know bash shell.
maybe a bug in pushd() at 5.1.1, February 12 2006
Submitted by Anonymous Reader [Respond | View]
the pushd() funtion in section 5.1.1:
pushd ( )
{
dirname=$1
if cd ${dirname:?"missing directory name."}
then
DIR_STACK="$dirname ${DIR_STACK:-$PWD' '}"
echo $DIR_STACK
else
echo still in $PWD.
fi
}
should it be:
pushd ( )
{
dirname=$1
oldpwd=$PWD
if cd ${dirname:?"missing directory name."}
then
DIR_STACK="$dirname ${DIR_STACK:-$oldpwd' '}"
echo $DIR_STACK
else
echo still in $PWD.
fi
} ?
Good and Suggestions, July 28 2005
This book is a good introduction to the bash shell. It is well written and well-edited.
As a serious hobbiest programmer of several languages, I was interested in getting deeper
into the applications of the shell of Linux as an important aspect of learning the overall operating system and gaining the ability to write my own programs both at the GUI level and at the shell or terminal level.
The shell presents a confusing array of arcane syntaxes and symbols that I found difficult
to learn. This book helps sort that out. The shell also throws a group of terminal applications at tasks using the likes of sed, awk, and grep that totally confuse the neophyte. The book only slightly makes a dent in this aspect.
One deficiency is the lack of online sample code that can be downloaded although some typing of your own is always helpful to learning. I went to the 2nd edition site and got what appears to be similar examples.
I actually would like to see more examples and of a greater variety in the book. Some more advanced but still accessible scripts would be useful in the transition from simple code to real applications. Examples more on the line of the debugger code that is given. What do I mean? Well, how about an installation script for software the user might write including installation options and the use or alternative non-use of rpms. Some tips on shaping the environment and configuration for running your programs. How about some internet access via scripts that use wget perhaps in an automated manner for software updates (I know there are applications that do this already). How about extensive file copying and directory creation similar to moving things around with Conqueror or copying from cd's except from the shell. Obviously, this list goes on and on. The author spent an inordinate amount of time with pushd and popd but not one example using tar which is a bread and butter application.
It is a good book that can still be improved.
Media reviews
"Exceptionally well presented, but the reader needs to be motivated to learn shell programming. That is not to say the book is complex and requires some particular background knowledge; shell programming--whether bash or any other of the Unix/Linux shells--is a powerful tool that requires focus. The effort is well worth while, and this is the best from which to start."
-- Major Keary, Book News
"After you read and understand this book, you'll be well on your way to becoming a competent bash shell programmer."
--Ed Schaefer, Unix Review, June 2005








