我正在寻找一种方法来删除当前输入的命令行,而无需在Backspace按键上浪费几秒钟。
例如,我滚动了 bash 历史记录,并看到一条很长的命令行,当我按下时它将执行Enter:
~$ aptitude search openssl | grep dev
但现在我决定不执行此命令。我能否快速获得一个空提示符而不使用 删除整行Backspace?在 Windows 上命令只需按一下Escape,它就会消失。这种行为正是我想要的。
答案1
按Ctrl+U将清空当前行。
这是默认设置杀字符,它会删除当前行(从光标到行首)。斯特蒂命令可用于获取或设置其值。
[dave@hal9000 ~]$ stty -a
speed 38400 baud; rows 23; columns 75; line = 0;
intr = ^C; quit = ^\; erase = ^?; kill = ^U; eof = ^D; eol = M-^?;
eol2 = M-^?; swtch = M-^?; start = ^Q; stop = ^S; susp = ^Z; rprnt = ^R;
werase = ^W; lnext = ^V; flush = ^O; min = 1; time = 0;
...
[dave@hal9000 ~]$ stty kill ^T # Set it to Ctrl-T
就是这样,werase
代表单词擦除,因此Ctrl+W会擦除光标左边的单词。
答案2
按Ctrl+C取消您正在输入的命令并返回到裸提示。
这是 Unix 文本模式应用程序中的常用键:
- 在非交互式程序中,Ctrl+C通常会完全停止程序并返回到 shell 提示符;
- 在一次执行一个命令的交互式程序(如 shell)中,Ctrl+C通常返回到主命令提示符。