gNU Bourne-Again SHell (GNU Bourne-Again SHell)
История (History)
When the -o history
option to the set
builtin is enabled, the
shell provides access to the command history, the list of
commands previously typed. The value of the HISTSIZE
variable is
used as the number of commands to save in a history list. The
text of the last HISTSIZE
commands (default 500) is saved. The
shell stores each command in the history list prior to parameter
and variable expansion (see EXPANSION
above) but after history
expansion is performed, subject to the values of the shell
variables HISTIGNORE
and HISTCONTROL
.
On startup, the history is initialized from the file named by the
variable HISTFILE
(default ~/.bash_history). The file named by
the value of HISTFILE
is truncated, if necessary, to contain no
more than the number of lines specified by the value of
HISTFILESIZE
. If HISTFILESIZE
is unset, or set to null, a non-
numeric value, or a numeric value less than zero, the history
file is not truncated. When the history file is read, lines
beginning with the history comment character followed immediately
by a digit are interpreted as timestamps for the following
history line. These timestamps are optionally displayed
depending on the value of the HISTTIMEFORMAT
variable. When a
shell with history enabled exits, the last $HISTSIZE
lines are
copied from the history list to $HISTFILE
. If the histappend
shell option is enabled (see the description of shopt
under SHELL
BUILTIN COMMANDS
below), the lines are appended to the history
file, otherwise the history file is overwritten. If HISTFILE
is
unset, or if the history file is unwritable, the history is not
saved. If the HISTTIMEFORMAT
variable is set, time stamps are
written to the history file, marked with the history comment
character, so they may be preserved across shell sessions. This
uses the history comment character to distinguish timestamps from
other history lines. After saving the history, the history file
is truncated to contain no more than HISTFILESIZE
lines. If
HISTFILESIZE
is unset, or set to null, a non-numeric value, or a
numeric value less than zero, the history file is not truncated.
The builtin command fc
(see SHELL BUILTIN COMMANDS
below) may be
used to list or edit and re-execute a portion of the history
list. The history
builtin may be used to display or modify the
history list and manipulate the history file. When using
command-line editing, search commands are available in each
editing mode that provide access to the history list.
The shell allows control over which commands are saved on the
history list. The HISTCONTROL
and HISTIGNORE
variables may be
set to cause the shell to save only a subset of the commands
entered. The cmdhist
shell option, if enabled, causes the shell
to attempt to save each line of a multi-line command in the same
history entry, adding semicolons where necessary to preserve
syntactic correctness. The lithist
shell option causes the shell
to save the command with embedded newlines instead of semicolons.
See the description of the shopt
builtin below under SHELL
BUILTIN COMMANDS
for information on setting and unsetting shell
options.