Bash Reference Manual. Node: Bash History Builtins

PREVBash History Facilities UPUsing History Interactively NEXTHistory Interaction

7.2: Bash History Builtins

Bash provides two builtin commands that allow you to manipulate the history list and history file.

fc [-e ename] [-nlr] [first] [last]
fc -s [pat=rep] [command]

Fix Command. In the first form, a range of commands from first to last is selected from the history list. Both first and last may be specified as a string (to locate the most recent command beginning with that string) or as a number (an index into the history list, where a negative number is used as an offset from the current command number). If last is not specified it is set to first. If first is not specified it is set to the previous command for editing and ­16 for listing. If the `-l' flag is given, the commands are listed on standard output. The `-n' flag suppresses the command numbers when listing. The `-r' flag reverses the order of the listing. Otherwise, the editor given by ename is invoked on a file containing those commands. If ename is not given, the value of the following variable expansion is used: ${FCEDIT:-${EDITOR:-vi}}. This says to use the value of the FCEDIT variable if set, or the value of the EDITOR variable if that is set, or vi if neither is set. When editing is complete, the edited commands are echoed and executed.

In the second form, command is re-executed after each instance of pat in the selected command is replaced by rep.

A useful alias to use with the fc command is r='fc -s', so that typing `r cc' runs the last command beginning with cc and typing `r' re-executes the last command (see Aliases).

history [-c] [n]
history [-anrw] [filename]
history -ps arg

Display the history list with line numbers. Lines prefixed with with a `*' have been modified. An argument of n says to list only the last n lines. Options, if supplied, have the following meanings:


Write out the current history to the history file.


Read the current history file and append its contents to the history list.


Append the new history lines (history lines entered since the beginning of the current Bash session) to the history file.


Append the history lines not already read from the history file to the current history list. These are lines appended to the history file since the beginning of the current Bash session.


Clear the history list. This may be combined with the other options to replace the history list completely.


The args are added to the end of the history list as a single entry.


Perform history substitution on the args and display the result on the standard output, without storing the results in the history list.

When the `-w', `-r', `-a', or `-n' option is used, if filename is given, then it is used as the history file. If not, then the value of the HISTFILE variable is used.

PREVBash History Facilities UPUsing History Interactively NEXTHistory Interaction