如何在 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 以获取较旧的匹配项。
虽然这不提供列表。
我正在寻找列出与特定输入匹配的所有先前命令的方法。例如我在以下工作目录
[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 以获取较旧的匹配项。
虽然这不提供列表。