...
The GNU Readline library provides a set of functions for use by applicationsthat applications that allow users to edit command lines as they are typed in. Both Emacs andvi and vi editing modes are available. The Readline library includes additionalfunctions additional functions to maintain a list of previously-entered command lines, to recalland recall and perhaps reedit those lines, and perform csh-like history expansion onprevious on previous commands.
More information
...