Chapter 30. The Use of History

The Lessons of History

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

Get Unix Power Tools, 3rd Edition now with the O’Reilly learning platform.

O’Reilly members experience books, live events, courses curated by job role, and more from O’Reilly and nearly 200 top publishers.