如何在 Linux 中使用 ctrl+R 搜索所有匹配的先前命令

How to search all matching previous commands using ctrl+R in Linux

我正在寻找列出与特定输入匹配的所有先前命令的方法。例如我在以下工作目录

[root@kayan /home]#

现在我正在寻找以前的命令,例如

less /home/kayan/scripts/ave.sh

所以当我按下 ctrl+R 并输入 ave.sh 时,它只显示我最后使用的命令,即

(reverse-i-search)`ave.sh': vi ave.sh

我需要方法来查看与 ave.sh

匹配的所有先前命令

不确定您是否可以使用 Ctrl+R 执行此操作,但您可以利用 history 命令并获得类似的结果:

man history:

NAME
       history - GNU History Library

向您的 ~/.bashrc 添加一个检查历史记录的功能。

例如:

h() { history | grep "" | grep "" | grep "" | head -10 | sed 's/[^ ]*  //'; }

然后您需要复制并粘贴结果。 (您可能还需要调整 sed 命令以更准确地去除数字和空格)

如果您按 Ctrl+R 并键入您的搜索,您将获得与该搜索匹配的最后一条记录。

如果你再按一次Ctrl+R,你会得到之前的记录。您可以重复按 Ctlr+R 以获取较旧的匹配项。

虽然这不提供列表。