The history command performs one of several operations related to recently-executed commands recorded in
a history list. Each of these recorded commands is referred to as an “event”. When specifying an event
to the history command, the following forms may be used:
[1] A number: if positive, it refers to the event with that number (all events are numbered starting
at 1). If the number is negative, it selects an event relative to the current event (-1 refers to
the previous event, -2 to the one before that, and so on). Event 0 refers to the current event.
[2] A string: selects the most recent event that matches the string. An event is considered to match
the string either if the string is the same as the first characters of the event, or if the string
matches the event in the sense of the stringmatch command.
The history command can take any of the following forms:
history
Same as historyinfo, described below.
historyaddcommand ?exec?
Adds the command argument to the history list as a new event. If exec is specified (or
abbreviated) then the command is also executed and its result is returned. If exec is not
specified then an empty string is returned as result.
historychangenewValue ?event?
Replaces the value recorded for an event with newValue. Event specifies the event to replace, and
defaults to the current event (not event -1). This command is intended for use in commands that
implement new forms of history substitution and wish to replace the current event (which invokes
the substitution) with the command created through substitution. The return value is an empty
string.
historyclear
Erase the history list. The current keep limit is retained. The history event numbers are reset.
historyevent ?event?
Returns the value of the event given by event. Event defaults to -1.
historyinfo ?count?
Returns a formatted string (intended for humans to read) giving the event number and contents for
each of the events in the history list except the current event. If count is specified then only
the most recent count events are returned.
historykeep ?count?
This command may be used to change the size of the history list to count events. Initially, 20
events are retained in the history list. If count is not specified, the current keep limit is
returned.
historynextid
Returns the number of the next event to be recorded in the history list. It is useful for things
like printing the event number in command-line prompts.
historyredo ?event?
Re-executes the command indicated by event and returns its result. Event defaults to -1. This
command results in history revision: see below for details.