The line editor in shells and other command line programs
Interactive shells such as bash, ksh, csh, tcsh, zsh and fish provide a command line editor, which allows the user to edit the line before it is executed. Many other command-line programs provide a line editor as well, often based on the readline library, which is the one used by bash.
If you have a program that executes lines of input and doesn't provide a line editor, you can use the readline-based
rlwrap utility to edit each line before sending it to the program.