假设您在bash中开始编写如下命令:
$ rm -rf /foo/bar/really/long/path/here
然后意识到您根本不想执行此操作。有没有一种方法可以通过一次或两次击键清除输入?
我最近一直在做的事情是在echo之前加上输入,并用引号(Ctrl + A echo "
,Ctrl + E,"
)括起来,然后按Enter。有没有更快的方法?
假设您在bash中开始编写如下命令:
$ rm -rf /foo/bar/really/long/path/here
然后意识到您根本不想执行此操作。有没有一种方法可以通过一次或两次击键清除输入?
我最近一直在做的事情是在echo之前加上输入,并用引号(Ctrl + A echo "
,Ctrl + E,"
)括起来,然后按Enter。有没有更快的方法?
Answers:
按Ctrl- U删除光标之前的所有内容。删除的命令将存储在缓冲区中。按Ctrl- Y粘贴已删除的命令。
(可选:按End或Ctrl- E首先跳至输入的末尾。)
或者,按Ctrl- C放弃您输入的内容。
stty -a
。它将与任何未主动修改终端控件的程序一起使用。
在搜索时,可以通过http://www.ice2o.com/bash_quick_ref.html找到简短参考。
ctrl+ e(如果不在行尾)加号ctrl+ u可以做到。
有两种方法可以做到这一点
ctrl+ c-不管光标在哪里,这都会清除整行。
ctrl+ u-清除从光标位置到起点的直线。
这是knittl答案的扩展通过在前缀加上哈希将行存储在控制台历史记录中。克服剪贴板的缺点,例如意外覆盖或无法查看剪切线以供参考。
使用任一快捷键:
哈希字符#
将添加到该行的前面,从而将整行变成注释。它还将返回新的提示,就像用户按下Enter一样。例如
$ #rm -rf /foo/bar/really/long/path/here
$
要从控制台历史记录中恢复旧行,请使用以下快捷方式之一:
重复按键快捷方式,直到出现所需的行。
要删除该行的哈希#
前缀,可以使用一些不同的选项:
删除第一个字符并立即执行命令:
移动光标以开始和删除第一个字符,而无需执行以下命令:
要删除当前行,请尝试:
Ctrl- X,Ctrl-U
或者,您可以使用:
Esc--D
这需要在〜/ .inputrc中:
"\ed": kill-whole-line
"\e\e": kill-whole-line
(必须是ESC键虽然双压机)