我使用终端执行几乎所有任务。假设我输入了这样一个巨大的命令:

sudo a-huge-command


用单个快捷键而不是继续按退格键来删除整个命令的最简单方法是什么?

我是Ubuntu的新手,希望以专业的方式使用Ubuntu。

评论

还值得一提的是,您可以设置bash(和其他几个shell)来理解vi键:set -o vi。然后,您可以进行esc,dd(或像在vi [m]中一样进行编辑/替换)。

主页,“#”,输入

这是一个便宜的技巧,但是对于它的价值,我通常只是按向上箭头,直到我得到一个非常短的命令(例如ls),然后再按退格键-这通常只是几个按键,所以它并不那么大达成协议。

CTRL <-轻按两次通常可以让我回到查询的开始..这是您的意思吗?

#1 楼

使用Ctrl + U将文本从光标位置剪切到命令行的开头。以后,如果需要,请使用Ctrl + Y粘贴剪切的文本。

如果只想放弃当前命令行并获得新的清除提示,请按Ctrl + C。

有关更多参考,请查看Ubuntu文档中有关使用终端的信息

评论


此答案适用于bash(Ubuntu默认)和tsch。

–尼克
2012年9月4日21:02

我以为破折号是Ubuntu的默认设置?

–克里斯
2012年9月5日,下午3:23

破折号是/ bin / sh命令的默认解释器。 bash是默认的登录名和TTY shell。

–user87602
2012年9月5日,下午3:29

我发现Ctrl + C是个坏习惯,因为我经常会不小心在自己的提示下向程序发送信号,杀死它们并失去进度和/或动力。

–user606723
2012年9月6日于20:26

#2 楼

Ctrl + U应该可以帮助您。

以下是可用的其余选项。
从这里获取

UNIX可以理解一些控制键命令,您输入的命令通过按住控制键(ctrl)的同时按下第二个键

CTRL + S-冻结屏幕并停止继续显示屏幕上的任何显示
(等同于无滚动键) )(有时需要一些时间才能工作)

CTRL + Q-取消冻结屏幕,让屏幕显示继续

CTRL + C-中断正在运行的程序

CTRL + \-与CTRL-C相同,但功能更强大(在终端不响应时使用)

CTRL + Z-挂起正在运行的程序(使用fg命令继续执行该程序,参见s $

CTRL + H-删除键入的最后一个字符

CTRL + W-删除键入的最后一个单词

CTRL + U-删除最后一个行类型

CTRL + R-从历史记录中搜索文本

CTRL + D-结束许多UNIX程序(包括inc)的文本输入邮寄邮件并写。

注意:

当我们使用CTRL + W或CTRL + U删除时,我们还将执行(编辑)“剪切”(拉入)操作(删除并存储在缓冲区/剪贴板中)。要将字符串粘贴(抽出)到缓冲区/剪贴板中,请使用CTRL +Y。

评论


实际上ctrl -r从历史记录中搜索文本。

–埃里克·卡瓦略(Eric Carvalho)
2012年9月4日在12:07

@EricCarvalho你是对的。从答案中删除该选项。

– devav2
2012年9月4日12:16

这些是通用的UNIX控制代码。默认的ubuntu终端是基于bash的,这是不同的。

–橙色狗
2012年9月5日上午10:19

Ctrl-U将从光标删除到行首。我经常通过将光标放在历史记录命令的参数之前来使用它。这样,我可以使用相同的参数键入新命令-例如将更少的文件更改为kate文件,以便在查看文件后查看是否需要进行任何编辑。

–乔
2012年9月5日于20:33

@OrangeDog-很好-我在Ubuntu bash终端中使用了所有这些,除了CTR- \以外。

– Belacqua
13年6月15日在1:05

#3 楼

我通常使用Alt + Backspace键。如果使用的是bash,这将使您删除直到前一个特殊字符(/;等)。如果使用zsh,它将同时删除斜线和分号。它比单击Backspace快得多。

bash中,这与Ctrl + w的不同之处在于Ctrl + w会删除前一个单词,而Alt + Backspace会删除直到前一个特殊字符被删除为止。找到了。在zsh中,两个键组合都执行相同的操作

评论


Ctrl + W执行相同的操作。

– Hymomo
2012年9月4日19:28

但是不适用于rxvt之类的终端。

–方形
2012年9月5日下午4:36

@lyrae对我来说,它在rxvt中可以完美运行,尽管在xterm中却不能。而且仅在设置了-o emacs的情况下才有效。

–马可
2012年9月6日上午9:55

我使用ALT + Backspace以及CTRL + C。这适用于任何Linux。 :)

–tftd
2012年9月8日在21:17

@hakermania:不,不同。 Ctrl + w删除一个单词,Alt + Backspace删除直到前一个特殊字符(/,;,``等)。

–jobin
2014年5月28日上午11:22

#4 楼

这是可以与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来实现的在该行的末尾。

评论


这是最完整的列表,尽管最佳答案是Ctrl + C或(Ctrl + E Ctrl + U)

–新亚历山大
2012年9月5日在16:24



我感兴趣的列表中有多少适用于tcsh?

–TCSGrad
2012年9月5日23:21

@ shan23阅读man tcsh的“编辑器命令”部分,或使用bindkey -l。看起来很不一样。

–橙色狗
2012年9月6日在18:12



请注意,如果您将vi绑定用于bash(或其他shell)的Readline,则其中某些操作将失败。这些也应该主要适用于tcsh。这些早熟的狂欢。 bash还从csh / tcsh合并了许多不错的历史记录快捷方式。

– Belacqua
13年6月15日在1:24

#5 楼

Alt +#(即Alt + Shift + 3)将注释掉当前命令并在下一行继续。

例如,如果键入t,e,s,t,Alt +#,则'll get:

you@computer$ #test
you@computer$ 


如果想找回旧命令,可以按向上箭头并删除哈希字符(向上,主页,删除或向上) ,Ctrl + A,Delete)。

我认为这是GNU Readline的功能,因为它可以在Bash,Python和MySQL中使用。

#6 楼

Ctrl + C-除了中断正在运行的命令外,它还可用于“中断”您的命令行输入。

与Ctrl + U相比,您仍然可以看到键入的内容,但是光标将跳至新行,并且将显示一个空的命令行提示符。

评论


我之所以喜欢这样做,完全是因为肌肉记忆力强,您仍然可以复制/粘贴任何重要内容,因为中止的命令行会保留在那里。

–ish
2012年9月4日15:28

#7 楼

在命令行上使用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联机帮助以获取更多信息。

#8 楼

我还使用Esc + Backspace删除所有以前的字符,直到删除特殊字符为止。这与Alt + Backspace相同。如果您一次只删除几个单词,则非常方便。

#9 楼

对于vi键绑定

当在vi键映射中使用时,例如在带有bashset -o vi或带有zshbindkey -v中:

插入模式

与默认/ emacs模式下的击键相同:

Ctrl + U

从当前位置删除到行首。因此,如果光标位于末尾,它将删除整行。

普通模式

有两种方法可以通过两次击键删除该行:

逐行删除dd,默认计数为一行:


,这是最简单的按键操作。

另一个方法是:转到^的行开头,然后使用D删除行的结尾:

^ D

这两个都删除整行,而不仅仅是删除像插入模式下的Ctrl + U或变体bleow一样向左移动。

如果当前位于行尾,则不需要删除右侧的任何内容,这也可以:

从这里删除d,到第^行开始:


您可以在插入模式下使用所有这些,通常需要首先逃脱进入正常模式。例如,要从插入模式中删除整行,请使用:

Escdd