Bash是目前比较主流linux发行版本的shell解释器,今天我们就来说说它的一些快捷操作。这些操作包括一些快捷键,也包括一些操作符号。在开始之前,我们先确认下当前bash是那种模式:
set -o | grep 'emacs\|vi'
我的环境是如下结果:
因为bash的工作模式有两种分别是emacs和vi,而默认大部分是emacs,所以这里就以emacs为例。
编辑快捷键
-
我们先尝试下
Ctrl + a
和Ctrl + e
, 这两个快捷键就是移动到行首和行尾: -
Ctrl + f
和Ctrl + b
这两个快捷键是将光标向右移动和向左移动一个字母位置,类似方向键的左右移动: -
Alt + f
和Alt + b
这两个是将光标向右和向左移动一个单词位置: -
Ctrl + x + x
这是按住Ctrl后连续按两次x键,它可以将光标在当前位置和行首位置之间切换: -
Ctrl + u
和Ctrl + k
从光标位置删除到行首和行尾,注意这个是行首和行尾: -
Ctrl + w
和Alt + d
从光标位置删除到单词的首和尾,这个跟上一条的区别是只删除当前光标所处的单词,而且还有一个是Alt
按键: -
Ctrl + y
从光标位置开始粘贴,粘贴的内容就是上面删除的内容:
除了上面这些常用的编辑命令,还有一些不常用的这里就不一一列举了,有兴趣的可以自行Google。下面我们来说下历史命令和如何快速使用之前命令的参数。
查找历史命令
-
Ctrl + r
查找历史命令,输入关键字,当找到结果后直接回车即可。对于输入的关键字执行的是严格匹配,也就是不支持模糊查询。如果想退出,可以按Esc
是选中结果退出,而Ctrl + g
是直接退出。 -
Ctrl + p
和Ctrl + 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 + PageUp
和Shift + PageDown
在控制台向上和向下翻查屏幕输出
想知道更多快捷键信息查看可以用stty -a
命令查看,也可以用stty
去绑定自定义的快捷键。