当我输入 ctrl+r 并然后开始输入我可以看到历史记录中的哪些命令匹配,这很棒。
现在有没有办法搜索我所拥有的命令的历史记录已经在终端中输入?
例如,如果我输入 ctrl+r,然后输入 ping,我可以循环浏览已 ping 通的服务器。但是,如果我先输入“ping”,然后按 ctrl+r,它会忽略我已经输入的“ping”。
有时,当我输入一串命令到一半时,我会想“哦,我已经输入过了,如果能搜索一下我已经输入的历史记录就好了,而不是从头开始”。
我的要求有意义吗?
答案1
如果您开始输入命令,然后在输入一些命令后,记得进行历史搜索,您只需要:
- CTRL+A
- CTRL+R
- CTRL+Y
- CTRL+R ...(继续搜索或)
- CTRL+S ...(向另一个方向搜索*)
注意:CTRL+S将暂停您的终端,除非您使用以下命令明确撤销此行为
[[ $- == *i* ]] && stty -ixon
在你的.bashrc
编辑:在这个有点重复的问题中可以看到一个快捷方式https://superuser.com/questions/384051/is-there-a-way-of-using-ctrl-r-after-typing-part-of-command-in-bash/1271740#1271740
答案2
答案位于右侧栏中 stackexchange 自动列出的“相关”问题之一。实验类型
bind '"\e[A": history-search-backward'
然后输入部分命令并使用向上箭头键(应生成escape [ A
)在历史记录中搜索此部分输入。请参阅完整答案了解更多。