Bash历史搜索,部分+向上箭头

我搜索过,但没有找到任何关于此的内容。 我正在使用终端在bash中寻找function。

回过头来的时候,我在debian系统上有一个用户,而且一位朋友为我设置了一个方便的历史搜索function(我相信我之后使用了tcsh),在那里我输入上一个命令的开头,点击向上箭头,它会根据部分字符串进行搜索。

例如,如果我的历史是:

./script.pl ./script.pl arg1 cat output cat output | grep yada 

我输入. ,按向上箭头,它会显示: ./script.pl arg1 。 再次按下它会显示./script.pl等。

非常像它会在.bash_history上执行grep 。 有没有办法获得这个function?

将以~/.inputrc放在~/.inputrc

 ## arrow up "\e[A":history-search-backward ## arrow down "\e[B":history-search-forward 

#开头的行是注释。 我不记得什么是落后的,什么是前进的。 试验它。 也许你必须前后切换。


一点背景资料:

Bash使用readline来处理提示。 ~/.inputrc是readline的配置文件。 请注意,这也将在使用readline库的其他软件中生效,例如IPython 。

有关readline的更多信息,请阅读bash手册 。 在那里,您还可以找到更多与历史相关的readline命令 。

要获取箭头键的转义码,您可以执行以下操作:

  1. 在终端中启动cat (只是cat ,没有进一步的参数)。
  2. 在键盘上键入键,你会得到^[[A代表向上箭头和^[[B代表向下箭头。
  3. 替换^[\e

在/etc/profile.d/中使用模式644创建一个名为setup_readline.sh的文件,其中包含以下内容,登录并检查您的首选键:

 bind '"\e[A": history-search-backward' bind '"\e[B": history-search-forward' 

我认为这是最好的方法。 大多数情况下,如果您使用配置管理系统,如厨师,木偶等

并且系统配置仍然没有改变!

Ctrl + R将为您提供此类function。 开始输入部分命令,它将显示旧的命令,您可以使用向上和向下箭头进行导航。 更多信息: http : //www.nuxified.org/blog/ctrl_r_in_the_bash_shell

要完成lesmana关于我应该在我的Trusty 14.04下创建的“〜/ .inputrc”的答案,请validation/添加“〜/ .bashrc”(第一行已存在于我的“〜/ .bashrc”中):

 shopt -s histappend PROMPT_COMMAND='history -a' 

它已在法语中用https://doc.ubuntu-fr.org/terminal?&#pour_completer_les_commandes_a_partir_de_l_historique进行了解释。

也许您可能想尝试https://github.com/dvorka/hstr ,它提供简单和多行简单过滤Bash历史记录,根据指标(命令的时间,频率和长度重要) – 您可以使用箭头键可以轻松浏览历史记录:

在此处输入图像描述

它可以很容易地绑定到Ctrl-r和/或Ctrl-s