Bash 终端命令常用快捷键

Bash (GNU Bourne-Again Shell) 是许多Linux发行版的默认Shell [1] 。还有许多传统UNIX上用的Shell,例如tcsh、csh、ash、bsh、ksh等等,Shell Script大致都类同。本文主要介绍Bash 终端命令容器常用快捷键。

快捷键

快捷键说明

CTRL+A

将光标移到行首(在命令行下)

CTRL+B

退格 (非破坏性的),

这个只是将光标位置往回移动一个位置。

CTRL+C

中断,终结一个前台作业。

CTRL+D

“EOF” (文件结尾:end of file)。

它用于表示标准输入(stdin)的结束。

在控制台或xterm 窗口输入文本时,

CTRL+D 删除在光标下的字符。

从一个shell中退出 (类似于exit)。

如果没有字符存在,

CTRL+D 则会登出该会话。

在一个xterm窗口中,

则会产生关闭此窗口的效果。

CTRL+E

将光标移动到行尾(在命令行下)

CTRL+F

将光标向前移动一个字符(在命令行下)

CTRL+G

在一些老式打印机终端上,

这会引发一个响铃。

在xterm终端上可能是哔的一声。

CTRL+H

擦除(Rubout)(破坏性的退格)。

在光标往回移动的时候,

同时擦除光标前的一个字符。

CTRL+I

水平制表符。

CTRL+J

新行(换行[line feed]并到行首)。

在脚本中,

也可能表示为八进制形式(‘/012′)或十六进制形式(‘/x0a’)。

CTRL+K

垂直制表符(Vertical tab)。

在控制台或 xterm 窗口输入文本时,

CTRL+K会删除从光标所在处到行尾的所有字符。

在脚本中,

也可能表示为八进制形式(‘/013′)或十六进制形式(‘/x0b’)。

在脚本中,CTRL+K可能会有不一样的行为,

下面的例子给出其不一样的行为:

#!/bin/bash 
## 一个CTRL+K垂直制表符的例子
var=$'/x0aBottom Line/x0bTop line/x0a' 
## 直接输出 
echo "$var" 
## 使用col来过滤控制字符 
echo "$var" | col 
## 上面的显示将会不一样 
exit 0

CTRL+L

跳纸,换页(Formfeed),清屏。

清空终端屏幕。在终端上,

这个命令的作用和clear命令一样。

但当这个命令发送到打印机时,

Ctrl+L会直接跳到纸张(Paper sheet)的末尾。

CTRL+M

回车(Carriage return)。

CTRL+N

擦除从history缓冲区召回的一行文本(在命令行下)。

如果当前输入是历史记录中选择的时候,

这个是从这个历史记录开始,

每按一次,是更接近的一条命令。

CTRL+O

产生一个新行(在命令行下)。

CTRL+P

从history缓冲区召回上一次的命令(在命令行下)。

此快捷键召回的顺序是由近及远的召回,

即按一次,召回的是前一次的命令,

再按一次,是召回上一次之前的命令,

这和CTRL+N都是以当前的输入为起点,

但是两个命令操作刚好相反,

CTRL+N是从起点开始由远及近

(如果起点是历史命令的话)。

CTRL+Q

Resume (XON)。恢复,

这个命令是恢复终端的stdin用的,

可参见CTRL+S。

CTRL+R

回溯搜索(Backwards search)history缓冲区内的文本(在命令行下)。

注意:

按下之后,

提示符会变成(reverse-i-search)”:

输入的搜索内容出现在单引号内,

同时冒号后面出现最近最匹配的历史命令。

CTRL+S

Suspend(XOFF),挂起。

这个是冻结终端的stdin。

要恢复可以按CTRL+Q。

CTRL+T

交换光标位置与光标的

前一个位置的字符内容(在命令行下)。

比如:echo $var;,

假设光标在a上,

那么,按下C+T之后,

v和a将会交换位置:echo $avr;。

CTRL+U

擦除从光标位置开始到行首的所有字符内容。

在某些设置下,

CTRL+U会不以光标位置为参考而删除整行的输入。

CTRL+V

在输入文本的时候,

按下C+V之后,

可以插入控制字符。

比如:echo +e '/x0a’;

和echo ;这两种效果一样。

这点功能在文本编辑器内非常有效。

CTRL+W

当在控制台或一个xterm窗口敲入文本时,

 CTRL+W 会删除从在光标处

往后(回)的第一个空白符之间的内容。

在某些设置里, CTRL+W 删除光标往后(回)

到第一个非文字和数字之间的字符。

CTRL+X

在某些文字处理程序中,

这个控制字符将会剪切

高亮的文本并且将它复制到剪贴板中。

CTRL+Y

将之前已经清除的文本粘贴回来

(主要针对CTRL+U或CTRL+W)。

CTRL+Z

暂停一个前台的作业;

在某些文本处理程序中也作为替换操作;

在MSDOS文件系统中作为EOF(End-of-file)字符。

CTRL+/

退出。和CTRL+C差不多,

也可能dump一个”core”文件

到工作目录下。

CTRL+/

撤消操作,Undo。

CTRL+_

撤消操作。

CTRL+xx

在行首和光标两个位置间进行切换,

此处是两个”x”字符。

ALT+B

光标往回跳一个词,

词以非字母为界(跳动到当前光标所在词的开头)。

ALT+F

光标往前跳一个词(移动到光标所在词的末尾)。

ALT+D

删除光标所在位置到光标所在词的结尾

位置的所有内容(如果光标是在词开头,则删除整个词)。

ALT+BASKSPACE

删除光标所在位置到词开头的所有内容。

ALT+C

将光标所在位置的字母转为大写

(如果光标在一个词的起始位置或之前,则词首字母大写)。

ALT+U

将光标所在位置到词尾的所有字母转为大写。

ALT+L

将光标位置到词尾的所有字母转为小写。

ALT+R

取消所有变更,

并将当前行恢复到在历史记录中的原始状态

(前提是当前命令是从历史记录中来的,

如果是手动输入,则会清空行)。

ALT+T

当光标两侧都存在词的时候,

交换光标两侧词的位置。

如:abc bcd -> bcd abc

ALT+.

使用前一次命令的最后一个词

(命令本身也是一个词,

参见后一篇的Bang命令中的词指示符概念)。

ALT+_

同ALT+.

ALT+数值

这个数值可以是正或者是负,

这个键单独没有作用,

必须后面再接其他内容,

如果后面是字符,

则表示重复次数。

如:[ALT+10,k]则光标位置会插入10个k字符

(负值在这种情况下无效);

如果后面接的是命令,

则数字会影响后面命令的执行结果,

如:[ALT++10,CTRL+D]

则向CTRL+D

默认方向相反(负数)的方向执行10次操作。

ALT+<

移动到历史记录中的第一行命令。

ALT+>

移动到历史的最后一行,

即当前正在输入的行

(没有输入的情况下为空)。

ALT+P

从当前行开始向前搜索,

有必要则向”上”移动,

移动时,

使用非增量搜索查找用户提供的字符串。

ALT+N

从当前行开始向后搜索,

如果有必要向”下”移动,

移动时,

使用非增量搜索查找用户提供的字符串。

ALT+CTRL+Y

在标志点上插入前一个命令的第一个参数

(一般是前一行的第二个词)。

如果有参数n,

则插入前一个命令的第n个词

(前一行的词编号从0开始,见历史扩展)。

负的参数将插入冲前一个命令的结尾开始的第n个词。

参数n通过M+No.的方式传递,

如:[ALT+0,ALT+CTRL+Y]插入

前一个命令的第0个词(命令本身)。

ALT+Y

轮询到删除环,

并复制新的顶端文本。

只能在yank[CTRL+Y]

或者yank+pop[M+Y]之后

使用这个命令。

ALT+?

列出能够补全标志点前的条目。

ALT+*

把能够补全[ALT+?]命令

能生成的所有文本条目插入到标志点前。

ALT+/

试图对标志点前的文本进行文件名补全。

[CTRL+X,/]把标志点前的文本

当成文件名并列出可以补全的条目。

ALT+~

把标志点前的文本当成用户名并试图进行补全。

[CTRL+X,~]列出可以作为用户名补全标志点前的条目。

ALT+$

把标志点前的文本当成Shell变量并试图进行补全。

[CTRL+X,$]列出可以作为变量补全标志点前的条目。

ALT+@

把标志点前的文本当成主机名并试图进行补全。

[CTRL+X,@]列出可以作为主机补全标志点前的条目。

ALT+!

把标志点前的文本当成命令名并试图进行补全。

进行命令名补全时

会依次使用别名、保留字、Shell函数、shell内部命令,

最后是可执行文件名。

[CTRL+X,!]把标志点前的文本

当成命令名并列出可补全的条目。

ALT+TAB

把标志点前的文本与历史记录中的文本

进行比较以寻找匹配的并试图进行补全。

ALT+{

进行文件名补全,

把可以补全的条目列表放在大括号之间,

让shell可以使用。

注意:

1)CTRL是是指PC键盘上的Ctrl键

2)ALT是PC键盘上的ALT键,如果你键盘上没有这个键,可以尝试使用ESC键代替

3)SHIFT是PC上的Shift键

4)ESC是PC键盘上的ESC键,此键一般在键盘的左上角

5)BACKSPACE是是PC键盘上的Backspace键,一般位于主键盘区的右上角

 Bash 中有非常多的快捷键,如果可以熟练地使用这些快捷键,可有效地提高我们的工作效率。

推荐阅读
cjavapy编程之路首页