50

我认为一个例子可以很好地理解我的问题。

...
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 命令。那么有什么办法reverse-i-search可以查看所有以 scp 开头的命令,来选择合适的呢?

4

4 回答 4

102

继续按下Ctrl-R它会遍历你的历史。

于 2013-01-09T09:10:58.620 回答
17

如果您的搜索词有点复杂/不连续,另一种选择是在history结果中进行 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才能返回确切的命令。

于 2013-01-10T02:31:54.033 回答
4

有一个很好的选择Ctrl+R

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

运行它hh

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

如果您开始输入,列表将根据您输入的内容进行过滤

您可以使用Up/Down箭头选择所需的命令并使用Enter

于 2017-01-19T19:46:50.950 回答
1

我发现这个很棒的工具mcfly可以替代传统的 Ctrl+R,而且效果非常好。基本上,您可以在键入时看到所有结果,并且可以选择要查找的命令。您还可以自定义布局等。我真的推荐它。

https://github.com/cantino/mcfly

mcfly 会话示例

于 2020-11-18T14:54:54.933 回答