History (command)

The C shell, csh, and bash (not sh) enable a feature that records all the commands you have entered and allows you to re-execute them.

Without command-line editing, this becomes a useful method to save reentering a long command without having to retype it.

Use
If you type history at the prompt, all commands that were previously entered will be shown.

Using grep with history will enable you to look for commands previously entered with certain names, for example history | grep perl will show you all the Perl scripts that you have run.

With each history entry is a number. You can reexecute the corresponding command by entering an exclamation mark, and then the number beside the command. For example, if history had 108 vi   109  hack 110 history

as the last three commands, entering !109 at the command prompt would re-execute the command hack.

Entering !! will reexecute the last entered command.

Extra features
Say for example you had given the command $ man gethostbynam man: no entry for gethostbynam in the manual.

You had missed out the e, and instead of reentering the command, you can instead say $ !!e The !! expands as the last command, and the e completes the proper name for the command.

Furthermore, say you had entered $ telnet western-database-server though you really meant to telnet to the eastern-disk-server. You can then do the following $ !!:s/western-database/eastern-disk/ which performs a very simple (ie, no regular expressions) textual substitution on the previous (or the n-th command if you use !n) command.