The ‘history’ command shows all commands kept in the history ring
as numbered list. If the history ring contains
eshell-history-size commands, those numbers change after every
command invocation, therefore the ‘history’ command shall be
applied before using the expansion mechanism with history numbers.
The n-th entry of the history ring can be applied with the ‘!n’
n is negative, the entry is counted from the end
of the history ring.
‘!foo’ expands to the last command beginning with
‘!?foo’ to the last command containing
foo. The n-th
argument of the last command beginning with
foo is accessible
The history ring is loaded from a file at the start of every session, and written back to the file at the end of every session. The file path is specified in eshell-history-file-name. Unlike other shells, such as Bash, Eshell can not be configured to keep a history ring of a different size than that of the history file.
Since the default buffer navigation and searching key-bindings are still present in the Eshell buffer, the commands for history navigation and searching are bound to different keys: