因为看到同事操作终端的速度比我快很多,我发现我之前调用终端历史命令的方式一直有点笨笨的……
方式一:用方向键 ↑ ↓
最开始使用的方式,如果想要用的命令输入的比较久了,找起来就比较累了
方式二:history命令
1 | magicdian@MacBook-Pro-14 ~ % history |
history命令也是我之前使用比较久的,有需要历史命令的时候,就先敲个history,再复制粘贴一下,效率还是比较低。
方式三:反向查找
默认状态下,终端是这样的
1 | magicdian@MacBook-Pro-14 ~ % |
这时通过快捷键 Ctrl + r
,终端会变成这个样子
1 | magicdian@MacBook-Pro-14 ~ % |
这个时候如果我想用之前的scp命令重新传一下文件,我直接输入scp,就会弹出之前输入过的命令
1 | magicdian@MacBook-Pro-14 ~ % scp /Users/magicdian/Downloads/cert.zip magicdian@192.168.4.20:/tmp |
如果要找的是这个命令,按下 ←
或者 →
退出搜索模式,然后按回车就可以执行了,当然不退出,直接按回车,也是可以顺利运行的。
那如果我运行过比较多相似的命令,但第一个搜出来的并不是我需要的命令怎么办呢? 比如我ping过很多ip地址
1 | magicdian@MacBook-Pro-14 ~ % ping vpn.meizu.com |
但这条命令可能不是我现在想要的命令,我们可以继续往前找,这个时候再一次按Ctrl + r
快捷键,就会显示上一条跟ping相关的命令
1 | magicdian@MacBook-Pro-14 ~ % ping 172.16.215.49 |
如果不小心多按了 Ctrl + r
快捷键,可以按 Ctrl + s
快捷键正向查找,但是可能会遇到Ctrl + s
快捷键被占用的情况,比如在Linux shell环境里 Ctrl + s
的意思可能是暂停的意思,暂停后要Ctrl + q
退出暂停模式
可以用命令stty -ixon
关闭暂停模式,这样按下 Ctrl + s
就可以正向查找了。也可以自行配置shell的配置,修改对应的快捷键
在我的Ubuntu Shell中(i-search) ping:
是正向查找(reverse-i-search) ping:
是反向查找
啥也不是,散会