Linux 在反向搜索(Ctrl+;R)中,在历史记录中的类似命令之间切换的任何方法

Linux 在反向搜索(Ctrl+;R)中,在历史记录中的类似命令之间切换的任何方法,linux,bash,command-line,Linux,Bash,Command Line,我想用一个例子来理解我的问题会很好 ... 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”

我想用一个例子来理解我的问题会很好

...
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”结尾的行)


但是我想找到以“重要”结尾的scp命令。因此,在这个
反向i-search
中是否有任何方法可以查看以scp开头的所有命令,以选择合适的命令?

继续按Ctrl-R,它将遍历您的历史记录。

如果您的搜索词有点复杂/不连续,另一个选项是在
历史记录
结果中grep,例如:

history 300 | grep scp | grep important$
这将返回历史记录中匹配的命令列表,例如:

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才能返回到确切的命令。

除了Ctrl+R之外,还有其他很好的选择

安装

使用
hh

它显示最后执行的所有命令的列表(包含./bash\u历史记录的内容)

如果您开始键入,列表将根据您键入的内容进行筛选


您可以使用上/下箭头选择所需的命令,然后用Enter键选择它。我发现这个很棒的工具可以取代传统的Ctrl+R,它工作得非常好。基本上,您可以在键入时看到所有结果,并且可以选择要查找的命令。你也可以自定义布局等。我真的推荐它


您是否再次尝试按CTRL-R键?搜索时使用唯一的单词,这会使搜索非常精确。可能重复感谢,是否有可能向后使用CTRL-R键?因此,如果我“ctrl-R”一段时间,我会看到结果,但我想倒转。“Shift-Ctrl-R”不起作用。编辑:解决方案已启用,请参阅“相关”。正向搜索:Ctrl-S。是否在mac中使用它?不,我在Linux上使用它,但据我所知,mac也支持它。