在反向search(Ctrl + R)中,任何方法都可以在历史中的类似命令之间切换

我认为一个例子会很好的理解我的问题。

... scp file1 user10@192.168.10.1:/home/user1/linuxfiles/samplecode/important ... ... scp file1 user10@192.168.10.1:/home/user1/linuxfiles/samplecode/important/tested ... ... 

假设这是历史命令的顺序。 如果我正在做Ctrl + R并键入scp ,它将显示最后执行的scp命令(即以'tested'结尾的行)。

但是我想find以'important'结尾的scp命令。 那么在这个reverse-i-search有没有办法查看所有以scp开头的命令,select合适的命令呢?

继续按CtrlR ,它会遍历你的历史。

如果您的search条件更复杂/不连续,另一个选项是grep history结果之间,例如:

 history 300 | grep scp | grep important$ 

这将返回匹配历史logging中的命令列表,例如:

 3323 scp file1 user10@192.168.10.1:/home/user1/linuxfiles/samplecode/important 3325 scp file1 user10@192.168.10.1:/home/user1/winfiles/samplecode/important 

然后你可以用!3325执行相关命令。

我有时会发现在运行很多类似的命令时很有用,而且可能需要多次按Ctrl + R才能返回到确切的命令。

有很好的selectCtrl + R

安装https://github.com/dvorka/hstr

用它来运行它

它显示了所有最后执行的命令(./bash_history的内容)

如果您开始input,则会根据您input的内容来过滤列表

您可以使用向上 / 向下箭头来select所需的命令并使用回车select它