如何设置我的 BASH 历史滚动来过滤我已经输入的内容?

Nik*_*rez 9 linux bash history

给定命令的历史:

1 pwd
2 mysql -u root -p
3 ps -ef | more
4 top
5 mysql -h 192.168.1.101 -u root -p
Run Code Online (Sandbox Code Playgroud)

当您按向上箭头时,您可以滚动浏览所有这些命令。我之前在某处读过(并在我的工作 PC 上完成过)你可以设置 BASH,这样当我第一次输入p然后按向上箭头时,它只会滚动历史中以“p”开头的所有命令(pwdps -ef | more)。当我输入mysql然后按向上时,它只会滚动以“mysql”开头的所有命令。

我想设置我的笔记本电脑来使用它,但我又找不到说明了。

Joh*_*n T 11

您可以在/etc/inputrc(针对机器范围的更改)或~/.inputrc(仅针对您的用户帐户)中配置增量搜索。

添加这两行:

"\e[A": 历史搜索向后
"\e[B": 历史搜索向前

  • `/etc/inputrc` 需要 root 来编辑并进行机器范围的更改,`~/.inputrc` 可由普通用户编辑,并且只为该用户进行更改。 (5认同)

Jam*_*ley 7

或者,您可以按ctrl+R进入reverse-i-search模式。然后您可以开始输入,它会找到与您输入的字符串匹配的第一行(即,输入m,它将跳回mysql -h 192.168.1.101 -u root -p;然后输入o,它会跳回,ps -ef | more因为这是第一行mo

您可以ctrl+r再次点击以在此之前搜索匹配项(即,ctrl+r,my,ctrl+r将带您到以 开头的倒数第二个命令mysql

你可以阅读更多有关搜索的ReadLine的历史搜索命令与历史的互动,以及如何修改默认的按键绑定和品行man bash(或在线