Bash provides two builtin commands which manipulate the history list and history file.
fc
fc [-e
ename] [-lnr] [
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
history [n] history -c history -d offset history [-anrw] [filename] history -ps arg
With no options, display the history list with line numbers. Lines prefixed with a ‘*’ have been modified. An argument of n lists only the last n lines. If the shell variable HISTTIMEFORMAT is set and not null, it is used as a format string for strftime to display the time stamp associated with each displayed history entry. No intervening blank is printed between the formatted time stamp and the history line.
Options, if supplied, have the following meanings:
-c
-d
offset-a
-n
-r
-w
-p
-s
When any of the -w, -r, -a, or -n options 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.