Summary Box
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 retyping.
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 substitution:
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 csh/tcsh and bash operators such as :r
. Many of these can be used to edit history
substitutions.)
See an easy way to repeat a set of csh/tcsh or 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 screen.
— JP