使用不连续关键字搜索历史命令

Tim*_*Tim 17 bash command-history search

我想知道如何在不知道命令的前几个字母的情况下搜索历史命令?

使用Ctrl+ Rin搜索时bash,必须给出命令的前几个字母。如果我只知道中间的一些字符,或者一些在开头而一些在中间怎么办?

例如,要搜索cat myfile,我只知道其中有at,或者cmy某处的开头和中间。关键字必须连续定位。例如,在 中cat myfile,我想同时搜索cmy,但Ctrl+R不允许同时指定两者。

jas*_*yan 14

如果您只是想找到该行(以唤起您的记忆),您可以只对您记得的命令部分进行 grep:

history | grep "substring"
Run Code Online (Sandbox Code Playgroud)

  • 我已经使用 *nix 系统超过 5 年了,直到现在才知道 `history` 命令,这是怎么回事?谢谢! (3认同)

Gil*_*il' 10

据我所知,Bash 只有一个简单的字符串搜索。

考虑切换到zsh,它具有历史通配符搜索。history-incremental-pattern-search-backward并且history-incremental-pattern-search-forward默认情况下不绑定到键,但您可以绑定它们:

bindkey '^X^R' history-incremental-pattern-search-backward
bindkey '^X^S' history-incremental-pattern-search-forward
Run Code Online (Sandbox Code Playgroud)

然后键入Ctrl+X Ctrl+R ^c*my