bash快捷键
习惯使用编辑的快捷键可以大大提高效率,记忆学习过程要有意识的忽略功能键、方向键和数字小键盘。以下快捷键适用在bash处于默认的Emacs模式下,是由一个名为Readline的库实现的,用户可以通过命令bind添加新快捷键,或者修改系统中已经存在的快捷键。(如果你有set -o vi,就处于 vi 模式就不适用了)
另外下面的内容并不包含所有快捷键,只是我个人适用频率最高的几种,但相信已经可以大大提高工作效率了。以下所有 Alt 键可以以 Esc 键代替。
- Ctrl + l:清除屏幕,同clear
- Ctrl + a:将光标定位到命令的开头
- Ctrl + e:与上一个快捷键相反,将光标定位到命令的结尾
- Ctrl + u:剪切光标之前的内容,在输错命令或密码
- Ctrl + k:与上一个快捷键相反,剪切光标之后的内容
- Ctrl + y:粘贴以上两个快捷键所剪切的内容。Alt+y粘贴更早的内容
- Ctrl + w:删除光标左边的参数(选项)或内容(实际是以空格为单位向前剪切一个word)
- Ctrl + /:撤销,同- Ctrl+x+- Ctrl+u
- Ctrl + f:按字符前移(右向),同→
- Ctrl + b:按字符后移(左向),同←
- Alt + f:按单词前移,标点等特殊字符与空格一样分隔单词(右向),同Ctrl+→
- Alt + b:按单词后移(左向),同Ctrl+←
- Alt + d:从光标处删除至字尾。可以Ctrl+y粘贴回来
- Alt + \:删除当前光标前面所有的空白字符
- Ctrl + d:删除光标处的字符,同Del键。没有命令是表示注销用户
- Ctrl + h:删除光标前的字符
- Ctrl + r:逆向搜索命令历史,比history好用
- Ctrl + g:从历史搜索模式退出,同ESC
- Ctrl + p:历史中的上一条命令,同↑
- Ctrl + n:历史中的下一条命令,同↓
- Alt + .:同!$,输出上一个命令的最后一个参数(选项or单词)。
 还有如Alt+0 Alt+. Alt+.,表示输出上上一条命令的的第一个单词(即命令)。
 另外有一种写法- !:n,表示上一命令的第n个参数,如你刚备份一个配置文件,马上编辑它:- cp nginx.conf nginx.conf,- vi !:1,同- vi !^。- !^表示命令的第一个参数,- !$最后一个参数(一般是使用- Alt + .代替)。
这里提一下按字符或字符串,向左向后搜索字符串的命令:
- Ctrl + ]c :从当前光标处向右定位到- 字符c 处
- Esc- Ctrl + ]c :从当前光标向左定位到- 字符c 处。( bind -P 可以看到绑定信息)
- Ctrl + rstr :可以搜索历史,也可以当前光标处向左定位到- 字符串str,- Esc后可定位继续编辑
- Ctrl -sstr :从当前光标处向右定位到- 字符串str 处,Esc 退出。注意,- Ctrl + S默认被用户控制 XON/XOFF ,需要在终端里执行- stty -ixon或加入profile。
注意上述所有涉及Alt键的实际是Meta键,在xshell中默认是没有勾选“Use Alt key as Meta key”,要充分体验这些键带来的快捷,请在对应的terminal设置。
参考:高效操作Bash ,Bash (Unix shell) Keyboard shortcuts ,bash中的命令基本操作。
常用alias
以下bash中别名设置我还并没有完全使用,也是个人觉得非常有用的(多了记起来也麻烦),所以收集在一起,习惯就好。
/etc/profile.d/alias.sh:
要去掉别名,请用unalias aliasname,或者临时执行不用别名,执行原始命令\alias 。