问题描述
几乎所有的任务都使用终端。比方说,我已经进入了这样一个巨大的命令:
sudo a-huge-command
使用单个快捷方式删除整个命令的最简单方法是什么,而不是继续按backspace
键?
我是一位Ubuntu新手,希望以专业的方式使用Ubuntu。
最佳解决方法
使用Ctrl
+ U
从光标位置切换到命令行开头的文本。稍后,如果需要,请使用Ctrl
+ Y
粘贴剪切文本。
如果您只想放弃当前的命令行并获得新的清除提示符Ctrl
+ C
。
有关更多参考,请查看Using The Terminal的Ubuntu文档
次佳解决方法
Ctrl
+ U
应该可以帮到你。
以下是其他可用选项。从here中抓取
UNIX可以理解几个control-key命令,通过按住控制键(ctrl)并按下第二个键来输入命令
CTRL
+ S
– 冻结屏幕并停止屏幕上的任何显示(等同于no-scroll键)(有时需要片刻才能工作)
CTRL
+ Q
– un-freezes屏幕并让屏幕继续显示
CTRL
+ C
– 中断正在运行的程序
CTRL
+ \
– 与CTRL – C相同,但较强(用于终端不响应时)
CTRL
+ Z
– 暂停正在运行的程序(使用fg命令继续执行程序,请参阅s $
CTRL
+ H
– 删除最后输入的字符
CTRL
+ W
– 删除最后输入的单词
CTRL
+ U
– 删除最后一行输入的内容
CTRL
+ R
– 从历史记录中搜索文字
CTRL
+ D
– 结束许多UNIX程序的文本输入,包括邮件和写入。
注意:
当我们使用CTRL
+ W
或CTRL
+ U
删除时,我们还执行(编辑)”cut”(插入)操作(删除并存储在缓冲区/剪贴板中)。要在缓冲区/剪贴板中粘贴(取出)字符串,请使用CTRL
+ Y
。
第三种解决方法
我通常使用Alt
+ Backspace
。如果您使用的是bash
,则可以删除以前的特殊字符(/
,;
,等)。如果您使用
zsh
,它也会删除斜线和分号。这比打Backspace
要快得多。
在bash
中,与Ctrl
+ w
+ w
的不同之处在于,Ctrl
+ w
删除了前一个词Alt
+ Backspace
删除,直到找到前一个特殊字符。在zsh
中,两个组合键都执行相同的操作
第四种方法
这是一个listing键盘快捷键,可用于bash
shell 。
Ctrl + A Go to the beginning of the line you are currently typing on
Ctrl + E Go to the end of the line you are currently typing on
Ctrl + L Clears the Screen, similar to the clear command
Ctrl + U Clears the line before the cursor position. If you are at the end of the line, clears the entire line.
Ctrl + H Same as backspace
Ctrl + R Lets you search through previously used commands
Ctrl + C Kill whatever you are running or start a new prompt
Ctrl + D Exit the current shell
Ctrl + Z Puts whatever you are running into a suspended background process. fg restores it.
Ctrl + W Delete the word before the cursor
Ctrl + K Clear the line after the cursor
Ctrl + T Swap the last two characters before the cursor
Esc + T Swap the last two words before the cursor
Alt + F Move cursor forward one word on the current line
Alt + B Move cursor backward one word on the current line
Tab Auto-complete files and folder names
你想要做的是通过Ctrl
+ C
或Ctrl
+ U
在行尾完成。
第五种方法
Alt
+ #
(即Alt
+ Shift
+ 3
)将注释掉当前命令并继续下一行。
例如,如果您键入t
,e
,s
,t
,Alt
+ #
,您将获得:
you@computer$ #test
you@computer$
如果您想恢复旧命令,可以按向上箭头并删除散列字符(Up
,Home
,Delete
或Up
,Ctrl
+ A
,Delete
)。
我认为这是GNU Readline的一个特性,因为它可以在Bash,Python和MySQL中使用。
第六种方法
Ctrl
+ C
– 除了中断运行命令外,它还可用于”interrupt”您的命令行输入。
与 Ctrl
+ U
相反,您仍然可以看到您键入的内容,但是您的光标将跳到新行,您将得到一个空的命令行提示符。
第七种方法
当您在使用命令行时,Bash readline
快捷键Ctrl
+ X
+ E
非常有用。如果您正在输入长命令并决定要在默认文本编辑器中打开它,则只需使用快捷方式即可。
它使用Bash的readline
库,这个特定的快捷方式称为edit-and-execute-command
。您可以通过将export EDITOR="/usr/bin/vi"
放置在~/.bashrc
或~/.bash_aliases
中来设置您的默认编辑器。
输入bind -P
以查看当前的readline
绑定,并参阅man readline
或Ubuntu manpages online以获取更多信息。
第八种方法
我也使用Esc
+ Backspace
删除所有以前的字符,直到一个特殊的字符。这也是Alt
+ Backspace
。如果您一次只删除几个字,方便使用。
第九种方法
对于vi
密钥绑定
当使用vi
键映射时,如使用set -o vi
的bash
或使用bindkey -v
的zsh
使用:
插入模式
它与default /emacs模式下的按键操作相同:
Ctrl
+ U
从当前位置删除到行首。所以如果光标在最后,它会删除整行。
正常模式
有两种方法可以在两个按键中删除该行:
删除行式dd
,默认计数为一行:
d
d
这是按键触摸最简单的。
另一种方法是:转到^
的行首,并用D
删除到行尾:
^
D
这些都删除整条线,不仅在左侧,如插入模式下的Ctrl
+ U
,或者变体自动删除。
如果你现在在行末,所以你不需要删除任何东西,这也可以做到:
从这里删除d
,以开始行^
:
d
^
你可以在插入模式下使用这些,你首先需要通常的转义才能进入正常模式。例如,要从插入模式中删除整行,请使用:
Esc
d
d