假设在bash中,您开始编写一个类似于以下命令的命令:
$ rm -rf /foo/bar/really/long/path/here
然后你意识到你并不想执行它。有没有一种方法可以用一个或两个按键清除输入内容?
我最近一直在使用的方法是在输入前添加echo并将输入内容用引号括起来(Ctrl+A,echo "
,Ctrl+E,"
),然后按回车。 有更快的方法吗?
假设在bash中,您开始编写一个类似于以下命令的命令:
$ rm -rf /foo/bar/really/long/path/here
然后你意识到你并不想执行它。有没有一种方法可以用一个或两个按键清除输入内容?
我最近一直在使用的方法是在输入前添加echo并将输入内容用引号括起来(Ctrl+A,echo "
,Ctrl+E,"
),然后按回车。 有更快的方法吗?
按下Ctrl-U删除光标前的所有内容。被删除的命令将会被存储到一个缓冲区中。按下Ctrl-Y来粘贴刚刚删除的命令。
(可选:先按下End或Ctrl-E跳到输入的末尾。)
或者,按下Ctrl-C取消正在输入的内容。
stty -a
进行检查。这将适用于任何未主动修改终端控件的程序。 - Jonathan Leffler尝试使用Ctrl+U。这将清除输入行。
我在搜索时,在http://www.ice2o.com/bash_quick_ref.html找到了一个简短的参考资料。
ctrl + e(如果不在行末)再加上ctrl + u就可以了。
Ctrl-U,Ctrl-K同样可以完成此操作。
Ctrl-U会删除光标前面的所有内容直到行首,Ctrl-K会删除光标后面的所有内容直到行尾。(使用其中之一有时很有用。)
有两种方式可以完成此操作
Ctrl+C- 这会清除整行文本,无论光标在哪里。
Ctrl+U - 这会清除从光标位置到行开头的文本。
#
字符(从而将该行变为注释),然后按回车键。如果你随后决定仍需要该命令,你仍可以在历史记录中找到它 :)在bash中,按下Esc和Backspace会清除光标位置之前的所有内容。
(在Cygwin中,这将清除输入直到下一个单词。单词由空格、下划线等字符分隔...)
使用以下快捷键之一:
一个井号字符#
将被添加到行的前面,从而将整行变成注释。 它还会返回一个新的提示,就像用户按下了enter键。 例如:
$ #rm -rf /foo/bar/really/long/path/here
$
要从控制台历史记录中恢复旧行,请使用以下快捷方式之一:
重复按键快捷方式,直到出现所需的行。
有几种不同的选项可用于去除行的哈希 #
前缀:
删除第一个字符并立即执行命令:
将光标移动到开头,并删除第一个字符,而不执行命令:
请注意,使用 Ctrl-U (或 Ctrl-E 然后 Ctrl-U)会将您清除的内容存储在缓冲区中,这样您就可以使用 Ctrl-Y 将其稍后粘贴。