如何配置向上箭头来搜索历史记录?

Tri*_*rim 18 command-line bash gnome-terminal

如何配置密钥以从历史记录中获取命令?

示例:如果我输入p并按下,那么它应该只显示历史记录中以“p”开头的命令,如 python、php、perl 等。

请问谁能帮我配置这个功能?

我已经编辑了.bashrc,但它对我不起作用。

kir*_*iri 28

下面的两种方法几乎是等效的,这取决于您要编辑的文件。我推荐.bashrc自己,因为它不涉及编辑系统文件的本地副本。

如果您遇到任何问题,请在下面发表评论,以便修复。

使用 ~/.bashrc

  1. ~/.bashrc使用以下命令编辑:

    gedit ~/.bashrc
    
    Run Code Online (Sandbox Code Playgroud)
  2. 添加以下几行:

    bind '"\e[A": history-search-backward'
    bind '"\e[B": history-search-forward'
    
    Run Code Online (Sandbox Code Playgroud)
  3. 保存然后关闭文件。
  4. 在终端中执行此命令:

    source ~/.bashrc
    
    Run Code Online (Sandbox Code Playgroud)

使用 ~/.inputrc

  1. 在终端中执行此命令:

    cp /etc/inputrc ~/.inputrc
    
    Run Code Online (Sandbox Code Playgroud)
  2. ~/.inputrc使用以下命令编辑新文件:

    gedit ~/.inputrc
    
    Run Code Online (Sandbox Code Playgroud)
  3. 将这些行附加到文件中:

    "\e[A": history-search-backward
    "\e[B": history-search-forward
    
    Run Code Online (Sandbox Code Playgroud)

参考:


Rad*_*anu 4

或者,您可以按Ctrl+ R,然后开始键入您要查找的命令或命令的任何部分。您将在提示符下看到过去命令的自动完成。如果您继续输入,将会出现更多具体选项。您还可以根据需要再次按Ctrl+多次,这会在您的历史记录中每次返回到上一个匹配的命令(来源:使用 Ctrl+R 导航 Bash 历史记录)。R

另一个建议,例如,如果您想查找历史记录中以“p”开头的最后 5 个命令,您可以使用以下命令:

grep "^p" ~/.bash_history | tail -n 5
Run Code Online (Sandbox Code Playgroud)