在终端中,我可以输入Ctrl+R来搜索之前在 BASH 中输入的匹配命令。例如,如果我输入Ctrl+ Rthen grep,它会列出我的最后一个grep命令,我可以按回车键来使用它。不过,这只给出了一个建议。有什么办法可以循环浏览其他以前键入的匹配命令吗?
Run*_*ium 851
如果我正确理解了这个问题,您应该能够通过反复点击Ctrl+来循环选择其他选项R。
例如:
grep这会在您的历史记录中向后搜索。要向前搜索,请使用Ctrl+ S,但您可能需要在此之前设置:(stty -ixon通过.bash_profile或手动)以禁用接管Ctrl+的 XON/XOFF 功能S。(更多细节在这里。)
Sat*_*yam 299
如果你觉得这个命令会经常使用,你可以添加一个标签
command #useful
Run Code Online (Sandbox Code Playgroud)
然后
Ctrl + R #useful
这是有效的,因为它#是一个注释分隔符,即符号后面的所有内容都不会被解释为命令。但是,它会记录在历史中,因此可以搜索。
l0b*_*0b0 61
您还可以通过将这些行添加到 ~/.inputrc 来设置向上和向下箭头以进行稍微不同的搜索:
"\e[A": history-search-backward
"\e[B": history-search-forward
Run Code Online (Sandbox Code Playgroud)
它不会在命令中的任何位置搜索子字符串(如Ctrl-r),而是会搜索从光标左侧的文本开始的命令。例如,如果我运行这些命令:
$ ls bart
$ ls fools
Run Code Online (Sandbox Code Playgroud)
然后键入ls并按Up两次,它将ls bart在同一位置显示和光标。与Ctrl-比较r,它会ls在最后一行中找到两次,因此您必须再次按下它才能找到上一行。
这两种方式各有千秋,都可以节省不少时间。
小智 14
有一个Ctrl + R名为hstr 的内置替代品。它允许同时搜索与所有搜索标记匹配的命令历史记录(除其他外),并使用箭头键循环查看结果:

这是一个演示截屏视频。
它可以安装在 Debian 系列操作系统上,例如:
add-apt-repository ppa:ultradvorka/ppa
apt-get update
apt-get install hstr
hstr --show-configuration >> ~/.bashrc
Run Code Online (Sandbox Code Playgroud)
然后使用Ctrl + R(重新打开终端后)。
|   归档时间:  |  
           
  |  
        
|   查看次数:  |  
           415744 次  |  
        
|   最近记录:  |