## 30.2. History in a Nutshell

> #### 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

Copyright © 2003 O'Reilly & Associates. All rights reserved.