|
Chapter 8 How the Shell Interprets What You Type
|
|
Until the early 1990s, most UNIX users worked interactively with
the C shell or the Bourne shell.
The Korn Shell, an extended Bourne shell, had been around since the
mid '80s and was getting more popular.
Since then, two freely available shells with even more
features-
tcsh
(
8.3
)
and
bash
-have been getting a lot of attention.
This article introduces
bash
.
The "Bourne-again shell" (named with the usual punny FSF humor) comes from
the Free Software Foundation.
Although the name is a joke, the shell isn't!
I've used UNIX shells for 15 years, and I was really impressed
when I started to read about
bash
(in O'Reilly & Associates'
Learning the bash Shell
).
Since then I've used
bash
as my login shell.
The shell has a lot of features that
ksh
and
csh
(and especially
sh
!) don't, but I wouldn't call it "feeping
creaturism."
[1]
Here are some of my favorite features:
-
More than 60
shell variables (
6.8
)
.
These let me get information I need for
shell setup files (
2.2
)
and also let me configure the shell to do what I want.
-
I like to
pack information into my shell prompt (
7.5
)
.
(I haven't added the temperature in Rio de Janeiro yet, but I'm working
on it.
:-)
)
bash
lets me run external UNIX commands, as well as shell commands,
and update each prompt on-the-fly.
It can also run UNIX or shell commands (and display the output if any)
before each prompt is printed.
For instance,
bash
can run a quick system check and put notes in
my prompt (or the top of the window) to warn me about problems, count
the current users, tell me who's just logged in (and out), etc., etc.
-
bash
has both vi and Emacs
command-line editing (
11.13
)
.
But it also has the original
C shell history substitution (
11.7
)
.
There are plenty of times when a short expression like
^k
(or even
!lpr:gs/2/3
)
is faster than cursoring up and over to edit a previous command line.
bash
lets me choose.
-
I stick to the Bourne Shell for any programs I distribute to other
users:
not enough people have
bash
yet.
But it does have some very nice features for scripts and shell functions
of my own - like powerful string-manipulation operators, file tests,
and built-in integer arithmetic.
bash
|
bash
is constantly being updated.
The edition on the CD-ROM will probably be a little out of
date by the time you get it.
If you want a few more features, a few bug fixes (and, maybe, a few
new bugs too), check a GNU archive on the Net for the latest version. |
|
|