It has been said that "the
only thing we learn from history is that people
don't learn from history."
Fortunately, the original maxim that "history
repeats itself" is more appropriate to Unix.
Most shells include a powerful history mechanism that lets you recall
and repeat past commands, potentially editing them before execution.
This can be a godsend, especially when typing a long or complex
command.
All that is needed to set C shell history in motion is a command like
this in your .cshrc (or
.tcshrc) file, where
n is the number of past commands that you
want to save:
set history=n
In ksh and bash, the variable
is HISTSIZE, and it's already
set for you; the default values are 128 and 500, respectively.
The
history command (Section 30.7) lists the saved commands, each with an
identifying number. (It's also possible to configure
the shells to print the history number of each command as part of your prompt (Section 4.3).)
In
tcsh, csh, and
bash, you can repeat a past command by typing its
number (or its name) preceded by an exclamation point
(!). You can also select only parts of the command
to be repeated and use various editing operators to modify it.
Section 30.8 and Section 28.5 give quick tutorial summaries of some of the
wonderful things you can do. Most of the rest of the chapter gives a
miscellany of tips for using and abusing the shells'
history mechanism.
Most shells -- except the original
Bourne and C shells -- also have interactive command-line editing (Section 30.14). Interactive editing might seem to be better
than typing !vi or lpr !$. If
you learn both systems, though, you'll find plenty
of cases where the ! system is faster and more
useful than interactive editing.
-- TOR