Bash 快捷键大全
快捷键的一些说明:
- CTRL=C:这个键是指PC键盘上的Ctrl键
- ALT=M:这个键是PC键盘上的ALT键,如果你键盘上没有这个键,可以尝试使用ESC键代替
- SHIFT=S:此键是PC上的Shift键
- ESC=E:这个键是PC键盘上的ESC键,此键一般在键盘的左上角
- BACKSPACE=DEL:此键是是PC键盘上的Backspace键,一般位于主键盘区的右上角
- 文中”[]“括住的为快捷键内容,”-”两边的内容是按住左边键,再按右边键获得,”,”逗号两边的内容是先按左边键,松开后再按右边键。如:[CTRL-v]是表示按下Ctrl键之后,不要松开,再按下v键。
- 默认的情况下,快捷键的组成格式是:<CTRL | ALT | ESC >-[SHIFT-]<char>。即由Ctrl、Alt、Esc之一开头,中划线,Shift,中划线,和一个字符组成。其中,中括号内的Shift和”-”有时可省略。
- 默认情况下,快捷键只有最后一个为字符,其他的键值均为功能键
- 出现[CTRL-?]这类快捷键,由于”?”是需要使用Shift按键才能获得的字符,因此此类快捷键默认使用的是[CTRL-SHIFT-?]
要注意,在Bash里面,快捷键可能会被写成八进制或者十六进制的形式(跟在转义符后面); 脚本文件中的快捷键并不是总能起作用的。另外快捷键有个规律,Ctrl开头的快捷键一般是针对字符的,而Alt开头的快捷键一般是针对词的。
Bash下,如果使用的是shell脚本文件,快捷键不一定是一样的,有的时候会出现同一个快捷键有不同的表现,这种情况一般是由于Bash所处的模式不同而引起的,你可以通过set命令来调整模式:
|
1
2
3
4
5
6
|
set -o emacs##切到emacs模式set -o vi##切到vi模式set -o## 查看当前选项的设置状态 |
这个是Bash的option选项,你可以根据具体情况进行设置,本文使用的是emacs模式。
| 快捷键 | 快捷键说明 | ||
|---|---|---|---|
CTRL-A |
将光标移到行首(在命令行下) | ||
CTRL-B |
退格 (非破坏性的),这个只是将光标位置往回移动一个位置。 | ||
CTRL-C |
中断,终结一个前台作业。 | ||
CTRL-D |
“EOF” (文件结尾:end of file)。它用于表示标准输入(stdin)的结束。在控制台或xterm 窗口输入文本时,CTRL-D 删除在光标下的字符。
从一个shell中退出 (类似于exit)。如果没有字符存在, |
||
CTRL-E |
将光标移动到行尾(在命令行下) | ||
CTRL-F |
将光标向前移动一个字符(在命令行下) | ||
CTRL-G |
BEL。在一些老式打印机终端上,这会引发一个响铃。在xterm终端上可能是哔的一声。 | ||
CTRL-H |
擦除(Rubout)(破坏性的退格)。在光标往回移动的时候,同时擦除光标前的一个字符。 | ||
CTRL-I |
水平制表符。 | ||
CTRL-J |
新行(换行[line feed]并到行首)。在脚本中,也可能表示为八进制形式(’12′)或十六进制形式(‘\x0a’)。 | ||
CTRL-K |
垂直制表符(Vertical tab)。在控制台或 xterm 窗口输入文本时,CTRL-K会删除从光标所在处到行尾的所有字符。
在脚本中,也可能表示为八进制形式(’13′)或十六进制形式(‘\x0b’)。在脚本中,
|
||
CTRL-L |
跳纸,换页(Formfeed),清屏。
清空终端屏幕。在终端上,这个命令的作用和 |
||
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-V><CTRL-J>;这两种效果一样。这点功能在文本编辑器内非常有效。 |
||
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 <ALT-T>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可以使用。 |
在Bash下,如果能够妥善的使用快捷键,在Linux系统的操作会变得非常快捷,比如我们在使用cat创建一个文件时,我们可以使用快捷键[CTRL-D]:
|
1
2
3
4
5
6
7
8
9
10
|
## 不用快捷键cat >>/tmp/test<<_EOF##这里是内容##最后我们要在新行里面输入_EOF##cat见到_EOF才会将内容写到文件中##使用快捷键cat >>/tmp/test##这里输入内容##输入完毕之后,直接[CTRL-D]结束 |
有的时候我们需要创建一个文件,而后对这个文件进行操作:
|
1
2
3
4
5
6
7
8
|
touch /tmp/a-test-file-from-blog.useasp.net## 不使用快捷键,文件名要重新输入chmod u+x /tmp/a-test-file-from-blog.useasp.net##使用快捷键chmod u+x <ALT-.>## 快捷键[M-.]自动会将上面的最后一个参数附加 |
怎么样,有没有更有效率?
当然,Bash的快捷键只有在不断的使用中,才能达到真正的高效,在开始连要用那个快捷键都要思考半天的情况下,高效是很难的——但磨刀不误砍材工,前期的投入是值得的。
如果你想自己的Bash有那么一些不同,你也可以自己自定义快捷键,使用bind命令即可,Bash中的快捷键其实是Readline来提供的,因此,这里快捷键的设置其实就是配置Readline,Readline中分两种快捷键,一种是Readline内部的函数快捷键,另外一种是执行Shell命令,设置的时候稍有不同:
|
1
2
3
4
5
6
7
8
9
10
11
12
13
14
|
##查看Readline中可以使用的函数名称bind -l##查看当前绑定的案件配置与其对应的功能bind -v##已经绑定的快捷键bind -p##绑定自定义执行命令shell命令的快捷键bind -x '"\C-x\C-l":ls -al'## 绑定后,按[C-x,C-L]就能执行ls -al## 绑定内置函数功能bind "\C-x":backword-delte-char##这个是这行Readline库中的函数backword-delte-char |
这种设置只是针对当前的会话有效,一旦会话丢失,这样设置的快捷键就会丢失,为了能够让设置的快捷键永久有效,我们就需要将快捷键的配置写入文件。在Linux系统中,能永久保存快捷键的地方有两个,全局和用户的配置文件,全局的是/etc/inputrc,而用户的是在用户的根目录下~/.inputrc,全局的会影响所有的用户,而用户根目录下的只会对相应的用户产生影响。inputrc文件的大概样子像下面这样:
|
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
|
## 本例来自CentOS6.4的默认配置文件$if mode=emacs# for linux console and RH/Debian xterm"\e[1~": beginning-of-line"\e[4~": end-of-line# commented out keymappings for pgup/pgdown to reach begin/end of history#"\e[5~": beginning-of-history#"\e[6~": end-of-history"\e[5~": history-search-backward"\e[6~": history-search-forward"\e[3~": delete-char"\e[2~": quoted-insert"\e[5C": forward-word"\e[5D": backward-word"\e[1;5C": forward-word"\e[1;5D": backward-word# for rxvt"\e[8~": end-of-line"\eOc": forward-word"\eOd": backward-word# for non RH/Debian xterm, can't hurt for RH/DEbian xterm"\eOH": beginning-of-line"\eOF": end-of-line# for freebsd console"\e[H": beginning-of-line"\e[F": end-of-line$endif |
说明:
1.在配置文件中,\C代表CTRL,\M代表ALT,\e代表ESC,\\是反斜杠\,\'是单引号,\"是双引号;
|
1
2
3
4
5
6
|
\C- control prefix\M- meta prefix\e an escape character\\ backslash\" literal ", a double quote\’ literal ’, a single quote |
2.如果要查看某一个功能键的字符序列可以通过[CTRL-V]来实现,或者输入cat后回车,进入编辑中,直接按快捷键
3.配置文件中可能会使用八进制或者十六进制来表示字符。
如果我们针对常用的操作设置成适当的快捷键,也许以前需要巴拉巴拉敲上半天的命令,你一个快捷键就能搞定,这无疑将会大大的提高我们的工作效率!快捷键吧,骚年!
Bash 快捷键大全的更多相关文章
- [No00009B]win10快捷键大全
微软为Win10命令行(Command Prompt)加入了Ctrl + V的支持 Win10新增功能快捷键大全: 贴靠窗口:Win + 左/右 > Win + 上/下 > 窗口可以变为 ...
- bash快捷键
https://linuxtoy.org/archives/bash-shortcuts.html 编辑命令 Ctrl + a :移到命令行首 Ctrl + e :移到命令行尾 Ctrl + f :按 ...
- IntelliJ IDEA 快捷键大全
IntelliJ IDEA 快捷键大全 (2012-03-27 20:33:44) 转载▼ 标签: ide intellij快捷键 杂谈 分类: IDE工具 最近刚接触IntelliJ这个工具,用了几 ...
- 【转】PHOTOSHOP常用快捷键大全
PHOTOSHOP常用快捷键大全 一.文件新建 CTRL+N打开 CTRL+O 打开为 ALT+CTRL+O关闭 CTRL+W保存 CTRL+S 另存为 CTRL+SHIFT+S另存为网页格式 CTR ...
- [转]bash快捷键
生活在 Bash shell 中,熟记以下快捷键,将极大的提高你的命令行操作效率. 编辑命令 Ctrl + a :移到命令行首 Ctrl + e :移到命令行尾 Ctrl + f :按字符前移(右向) ...
- Source Insight 常用设置和快捷键大全
Source Insight 常用设置和快捷键大全 退出程序 : Alt+F4 重画屏幕 : Ctrl+Alt+Space 完成语法 : Ctrl+E 复制一行 : Ctrl+K 恰好复制该位置右边的 ...
- PHOTOSHOP(PS)快捷键大全
PHOTOSHOP常用快捷键大全一.文件新建 CTRL+N打开 CTRL+O 打开为 ALT+CTRL+O关闭 CTRL+W保存 CTRL+S 另存为 CTRL+SHIFT+S另存为网页格式 CTRL ...
- [No00000F]Excel快捷键大全 Excel2013/2010/2007/2003常用快捷键大全
一个软件最大的用处是提高工作效率,衡量一个软件的好坏,除了是否出名之外,最主就是能否让一个新手更快的学会这个软件和提高工作速度.就拿Excel表格来说吧,平常办公中我们经常会用它来制作表格,统计数据或 ...
- [No00000E]PPT快捷键大全 PowerPoint2013/2010/2007/2003常用快捷
熟练掌握PowerPoint快捷键可以让我们更快速的制作PPT模板,大大的节约时间成本.想提高工作效率吗?请熟悉PowerPoint快捷键吧!想成为高手吗?请先了解PPT快捷键吧!想制作出一个优秀的P ...
随机推荐
- LoadRunner中web_custom_request 和 web_submit_data的差别
- JVM的栈内存
每当启动一个新线程时,Java虚拟机都会为它分配一个Java栈.Java栈以帧为单位保存线程的运行状态.虚拟机只会直接对Java栈执行两种操作:以帧为单位的压栈和出栈. 某个线程正在执行的方法被称为该 ...
- SU suphasevel命令学习
- Google地图接口API之申请免费API Key(一)
使用谷歌地图API V3创建交互式地图,首先需要拥有一个免费的 Google 地图 API key. 如果想调用Google地图的接口,首先需要拥有一个免费的 Google 地图 API key.想要 ...
- Eclipse启动Tomcat时45秒超时的解决方法
Eclipse启动Tomcat时,默认配置的启动超时时长为45秒.假若项目需要加载的东西比较多,启动时间会比较久,如果启动超过45秒将会报错.有两种解决途径,方法只有一个,就是修改启动时间. 1. 修 ...
- HazelCast 的内存管理原理
As it is said in the recent article "Google: Taming the Long Latency Tail - When More Machines ...
- ubuntu中的Wine详解
什么是wine?(转自百度百科,具体看百科) wine,是一款优秀的Linux系统平台下的模拟器软件,用来将Windows系统下的软件在Linux系统下稳定运行,该软件更新频繁,日臻完善,可以运行许多 ...
- Repeater控件中的三目运算
<asp:Repeater ID="rptimg" runat="server"> <ItemTemplate> ...
- CreateFeatureClass 异常,尝试读取或写入受保护的内存 Access
在创建要素时出现如下异常,百思不得其解. 后经过多次试验,发现文件名改为其他的就可以了.自出的文件名为"第3条",后将文件名改为"A3"等,则可正常创建. 后再 ...
- 使用javascript打开链接的多种方法
在页面中的链接除了常规的方式以外,如果使用javascript,还有很多种方式,下面是一些使用javascript,打开链接的几种方式: 1.使用window的open方法打开链接,这里可是在制定页面 ...