The C shell and bash can save copies of the
previous command lines you type. Later, you can ask for a copy of
some or all of a previous command line. That can save time and
This feature is called history
substitution, and it's done
when you type a string that starts with an exclamation point
(!command). You can
think of it like variable substitution
($varname) (Section 35.9) or command substitution ('command') (Section 28.14): the shell replaces what you type (like
!$) with something else (in this case, part or all
of a previous command line).
Section 30.1 is an introduction to shell
history. These articles show lots of ways to use history
We start with favorite uses from several contributors -- Section 30.3, Section 30.4, Section 30.5, and Section 30.6.
Section 30.8 starts with a quick
introduction, then covers the full range of history substitutions
with a series of examples that show the different kinds of things you
can do with history.
(Back in Section 28.5 are examples of
bash operators such as :r. Many
of these can be used to edit history substitutions.)
See an easy way to repeat a set of
bash commands in Section 30.9.
Each shell saves its own history. To pass a shell's
history to another shell, see Section 30.12
and Section 30.13.
You don't have to use an exclamation point
(!) for history. Section 30.15 shows how to use some other character.
The Korn shell does history in a different way. Section 30.14 introduces part of that: command-line editing
in ksh and bash.
One last note: putting the history number in
your prompt (Section 4.3) makes it easy
to reuse commands that haven't scrolled off your