Bash是目前比较主流linux发行版本的shell解释器,今天我们就来说说它的一些快捷操作。这些操作包括一些快捷键,也包括一些操作符号。在开始之前,我们先确认下当前bash是那种模式:
set -o | grep 'emacs\|vi'
我的环境是如下结果:
编辑模式

因为bash的工作模式有两种分别是emacs和vi,而默认大部分是emacs,所以这里就以emacs为例。

编辑快捷键

  • 我们先尝试下Ctrl + aCtrl + e, 这两个快捷键就是移动到行首和行尾:
    行首和行尾

  • Ctrl + fCtrl + b 这两个快捷键是将光标向右移动和向左移动一个字母位置,类似方向键的左右移动:
    左右移动字母

  • Alt + fAlt + b 这两个是将光标向右和向左移动一个单词位置:
    左右移动单词

  • Ctrl + x + x 这是按住Ctrl后连续按两次x键,它可以将光标在当前位置和行首位置之间切换:
    切换位置为行首或切换为原位置

  • Ctrl + uCtrl + k 从光标位置删除到行首和行尾,注意这个是行首和行尾:
    删除到行首行尾

  • Ctrl + wAlt + d 从光标位置删除到单词的首和尾,这个跟上一条的区别是只删除当前光标所处的单词,而且还有一个是Alt按键:
    删除到词首词尾

  • Ctrl + y 从光标位置开始粘贴,粘贴的内容就是上面删除的内容:
    粘贴

除了上面这些常用的编辑命令,还有一些不常用的这里就不一一列举了,有兴趣的可以自行Google。下面我们来说下历史命令和如何快速使用之前命令的参数。

查找历史命令

  • Ctrl + r 查找历史命令,输入关键字,当找到结果后直接回车即可。对于输入的关键字执行的是严格匹配,也就是不支持模糊查询。如果想退出,可以按Esc是选中结果退出,而Ctrl + g 是直接退出。
    搜索退出

  • Ctrl + pCtrl + n两个和方向键向上和向下类似,都是取上一条和下一条历史命令。
    上下翻历史命令

  • history|grep '关键字' 用这种方式也可以查找历史命令。当查出结果后,记住之前的数字(如:10),然后用!10即可执行此命令。
    查找历史命令

特殊的!

!惊叹号在bash解释器比较方便操作的特殊符号,它的用法比较多,所以单独列出来说下常用的。

  • !!执行上一条命令。
    上一条命令

  • !echo执行最近的以echo开始的命令。
    执行匹配字符开始命令

  • 如果你不知道!echo的匹配的结果是不是你想要的,那么你可以用!echo:p只打印不执行。
    打印匹配字符开始命令

  • !$上一条命令的最后一个参数,除此也可以用快捷键Alt + .
    上一条命令最后一个参数

上面这几个上我常用的,还有些不常用的,只简单列出来:

  • !*上一个命令的所有参数,
  • ^blah删除上一条命令中的 blah
  • ^blah^foo将上一条命令中的 blah 替换为 foo
  • ^blah^foo^将上一条命令中所有的 blah 都替换为 foo

控制台快捷键

还有一些是控制台的快捷键

  • Ctrl + l 清空屏幕
    清屏

  • Ctrl + c 给当前进程发送中断信号SIGINT。
    中断程序

  • Ctrl + s 停止当屏幕的输出,查log
    停止滚屏

  • Ctrl + q 开始当前屏幕的输出
    开始滚屏

  • Shift + PageUpShift + PageDown 在控制台向上和向下翻查屏幕输出
    上下翻屏

想知道更多快捷键信息查看可以用stty -a命令查看,也可以用stty去绑定自定义的快捷键。