8.2.5 Searching for Commands in the History

Readline provides commands for searching through the command history
(see Bash History Facilities)
for lines containing a specified string.
There are two search modes: incremental and non-incremental.

Incremental searches begin before the user has finished typing the
search string.
As each character of the search string is typed, Readline displays
the next entry from the history matching the string typed so far.
An incremental search requires only as many characters as needed to
find the desired history entry.
To search backward in the history for a particular string, type
C-r. Typing C-s searches forward through the history.
The characters present in the value of the isearch-terminators variable
are used to terminate an incremental search.
If that variable has not been assigned a value, the ESC and
C-J characters will terminate an incremental search.
C-g will abort an incremental search and restore the original line.
When the search is terminated, the history entry containing the
search string becomes the current line.

To find other matching entries in the history list, type C-r or
C-s as appropriate.
This will search backward or forward in the history for the next
entry matching the search string typed so far.
Any other key sequence bound to a Readline command will terminate
the search and execute that command.
For instance, a RET will terminate the search and accept
the line, thereby executing the command from the history list.
A movement command will terminate the search, make the last line found
the current line, and begin editing.

Readline remembers the last incremental search string. If two
C-rs are typed without any intervening characters defining a new
search string, any remembered search string is used.

Non-incremental searches read the entire search string before starting
to search for matching history lines. The search string may be
typed by the user or be part of the contents of the current line.