Suppose in bash you start writing a command like:
$ rm -rf /foo/bar/really/long/path/here
and then realize you don't want to execute this after all. Is there a way to clear the input with one or two keystrokes?
What I have been doing lately is prepending echo and enclosing the input in quotes (Ctrl+A, echo "
, Ctrl+E, "
) then hitting enter. Is there a faster way?
Pressing Esc plus Backspace in bash will clear everything up to the cursor's position.
(In Cygwin, this will clear the input up to the next word. Words are separated by spaces, underscores, ...)
Found a short reference at http://www.ice2o.com/bash_quick_ref.html while searching.
ctrl + e (if not at the end of the line) plus ctrl + u will do it.
Try Ctrl+U. That clears the input line.
A nice shortcut is pressing Esc#. It will prepend a
#
character (thus making the line a comment) and then press enter. If you then decide that you still the need the command, you still have it in your history :)This is an expansion of knittl's answer that stores the line in the console history by prefixing with a hash. Overcoming drawbacks of the clipboard, such as accidental overwriting or being unable to view the cut line for reference.
Comment Line & Return New Prompt
Use either key shortcut:
A hash character
#
will be prepended to the line, thus turning the whole line into a comment. It will also return a new prompt, as if enter was pressed by the user. e.g.Retrieve Commented Line
To recover the old line from console history use one of the following shortcuts:
Repeat key shortcut until the desired line appears.
Quick Hash Prefix Removal
To remove the line's hash
#
prefix there are a few different options available:Remove first character and immediately execute command:
Move cursor to start and remove first character, without executing the command:
Consider that using Ctrl-U (or Ctrl-E and then Ctrl-U) will store what you clear in a buffer so that you can then paste it later using Ctrl-Y.