GNU Readline is a software library that provides in-line editing and history capabilities for interactive programs with a command-line interface, such as Bash. It is currently maintained by Chet Ramey as part of the GNU Project. It allows users to move the text cursor, search the command history, control a kill ring (a more flexible version of a copy/paste clipboard) and use tab completion on a text terminal. As a cross-platform library, readline allows applications on various systems to exhibit identical line-editing behavior. Editing modes Readline supports both Emacs and vi editing modes, which determine how keyboard input is interpreted as editor commands. See . Emacs keyboard shortcuts Emacs editing mode key bindings are taken from the text editor Emacs. On some systems, must be used instead of , because the shortcut conflicts with another shortcut. For example, pressing in Xfce's terminal emulator window does not move the cursor forward one word, but activates "File" in the menu of the terminal window, unless that is disabled in the emulator's settings. : Autocompletes from the cursor position. : Moves the cursor to the line start (equivalent to the key ). : Moves the cursor back one character (equivalent to the key ). : Sends the signal SIGINT via pseudoterminal to the current task, which aborts and closes it. Sends an EOF marker, which (unless disabled by an option) closes the current shell (equivalent to the command exit). (Only if there is no text on the current line) If there is text on the current line, deletes the current character (then equivalent to the key ). : (end) moves the cursor to the line end (equivalent to the key ). : Moves the cursor forward one character (equivalent to the key ). : Abort the reverse search and restore the original line. : Deletes the previous character (same as backspace). : Equivalent to the tab key. : Equivalent to the enter key. : Clears the line content after the cursor and copies it into the clipboard. : Clears the screen content (equivalent to the command clear). : (next) recalls the next command (equivalent to the key ). : Executes the found command from history, and fetch the next line relative to the current line from the history for editing. : (previous) recalls the prior command (equivalent to the key ). : (reverse search) recalls the last command including the specified characters. A