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命令 。
要获取箭头键的转义码,您可以执行以下操作:
- 在终端中启动
cat
(只是cat
,没有进一步的参数)。 - 在键盘上键入键,你会得到
^[[A
代表向上箭头和^[[B
代表向下箭头。 - 替换
^[
与\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