Linux程序员都需要知道的bash shell快捷键
GNU Readline Library提供的。这些库被许多其他*nix应用包括bash使用,所以学习这些快捷键不仅可以让你很容易地在bash命令中操作,还能让你在一系列使用Readline的*nix应用中更方便的操作,默认情况下,Readline使用emacs键映射,尽管可以设置成vi编辑模式,我还是倾向于学习默认的操作,因为大多数应用是这样的。
编辑命令
- Ctrl + a – 移到命令行首
- Ctrl + e – 移到命令行尾
- Ctrl + k – 从光标处删除至命令行尾
- Ctrl + u – 从光标处删除至命令行首
- Ctrl + w – 从光标处删除至字首(比如删除一个单词)
- Ctrl + y – 粘贴刚才上面使用过的删除快捷键删除的单词或文本到光标后面
- Ctrl + xx – 在命令行首和光标之间来回移动
- Alt + b -按单词后移(左向)
- Alt + f – 按单词前移(右向)
- Alt + d – 从光标处删除至字尾
- Alt + c – 从光标处更改为首字母大写的单词
- Alt + u -从光标处更改为全部大写的单词
- Alt + l – 从光标处更改为全部小写的单词
- Alt + t – 交换光标处和之前的单词
- Ctrl + f – 按字符前移(右向)
- Ctrl + b – 按字符后移(左向)
- Ctrl + d – 删除光标处的字符
- Ctrl + h – 删除光标前的字符
- Ctrl + t -交换光标处和之前的字符
重新执行命令
- Ctrl + r – 搜索之前的历史命令
- Ctrl + g – 退出搜索历史命令模式
- Ctrl + p – 历史命令中的上一条
- Ctrl + n – 历史命令中的下一条
- Alt + . – 使用上一条命令的最后一个单词
控制命令
- Ctrl + l – 清屏
- Ctrl + s – 阻止屏幕输出
- Ctrl + q – 允许屏幕输出,对应上一条命令使用
- Ctrl + c – 终止命令
- Ctrl + z – 挂起命令
Bang(!)命令
!!
– 执行上一条命令!blah
– 执行最近的以 blah 开头的命令,如 !ls!blah:p
– 仅打印输出,而不执行!$
– 上一条命令的最后一个参数,与 Alt + . 相同!$:p
– 打印输出 !$ 的内容!*
– 上一条命令的所有参数!*:p
– 打印输出 !* 的内容
还有一个语法糖,就是使用^^command
。如果你输入并运行了一条命令,你可以复用这条命令,但是将其中一个片段替换成另外一段文字,使用^^
举例:
$ ls -al
total 12
drwxrwxrwx+ 3 Administrator None 0 Jul 21 23:38 .
drwxrwxrwx+ 3 Administrator None 0 Jul 21 23:34 ..
-rwxr-xr-x 1 Administrator None 1150 Jul 21 23:34 .bash_profile
-rwxr-xr-x 1 Administrator None 3116 Jul 21 23:34 .bashrc
drwxr-xr-x+ 4 Administrator None 0 Jul 21 23:39 .gem
-rwxr-xr-x 1 Administrator None 1461 Jul 21 23:34 .inputrc
$ ^-al^-lash
ls -lash
total 12K
0 drwxrwxrwx+ 3 Administrator None 0 Jul 21 23:38 .
0 drwxrwxrwx+ 3 Administrator None 0 Jul 21 23:34 ..
4.0K -rwxr-xr-x 1 Administrator None 1.2K Jul 21 23:34 .bash_profile
4.0K -rwxr-xr-x 1 Administrator None 3.1K Jul 21 23:34 .bashrc
0 drwxr-xr-x+ 4 Administrator None 0 Jul 21 23:39 .gem
4.0K -rwxr-xr-x 1 Administrator None 1.5K Jul 21 23:34 .inputrc
上面的^-al^-lash就将上一条命令的-al命令参数替换成了-lash,并且重新执行了。
有许多可以使用的快捷键,但是上面基本覆盖了90%常用的,可以最大提高bash使用效率。如果你认为还错过了一些重要的bash命令,请在下面留言回复,我将更新到博客里面。