代码之家  ›  专栏  ›  技术社区  ›  Kay

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

  •  4
  • Kay  · 技术社区  · 9 年前

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

    [root@kayan /home]#
    

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

    less /home/kayan/scripts/ave.sh
    

    因此,当我按下ctrl+R并键入ave.sh时,它只显示我上次使用的命令,即。

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

    我需要该方法来查看之前所有与ave.sh匹配的命令

    2 回复  |  直到 9 年前
        1
  •  3
  •   Céline Aussourd    9 年前

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

    如果再次按Ctrl+R,将获得上一条记录。您可以重复按Ctlr+R以获取较旧的匹配。

    但这并没有提供列表。

        2
  •  2
  •   Vor    9 年前

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

    man history:
    
    NAME
           history - GNU History Library
    

    将函数添加到 ~/.bashrc 检查历史记录。

    例如:

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

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