如何像在 Mac 上一样搜索以前的终端命令?(CTRL+R 的替代键)

如何像在 Mac 上一样搜索以前的终端命令?(CTRL+R 的替代键)

我有一台用于工作的 Mac 笔记本电脑,在终端上(在 iterm2 上),我可以开始输入命令(例如 ssh),然后按“向上”键浏览以我开始输入的内容开头的最近命令(例如 ssh ......)。

在 Ubuntu 终端上,我可以使用键盘快捷键“CTRL + R”看到类似的功能。但是,它并不完全相同。有没有办法模仿 Mac 的功能?

谢谢你!

为了清楚起见,请编辑示例:

下面是我在 Mac 上的例子。假设在过去在我的 Mac 终端中运行的 100 条命令中,有 2 条命令是:

ssh 1.2.3.4
ssh 127.0.0.1

然后,当我输入“ssh”并按下“up”键时,它会自动填充为ssh 127.0.0.1,如果我再次按下“up”键,它就会填充为ssh 1.2.3.4

然而,在 Ubuntu 终端上,如果我的 3 个最最近的命令是

ssh 1.2.3.4 
open .
echo "help me"

然后输入“ssh”并按下“向上”键,它就会带我到echo "help me"。再按一次“向上”键就会带我到open .

对我来说,采用这种模式比使用路线更直观CTRL+R

答案1

在文本编辑器(例如)中打开 $HOME/.inputrc 文件gedit ~/.inputrc并添加以下两行:

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

现在,保存并关闭文件并打开一个新终端。您知道按向上箭头键如何循环显示命令历史记录吗?现在有了这些行,如果您开始输入然后按向上箭头键,则只会显示以您输入的内容开头的命令。输入ping然后再次按向上箭头键将显示倒数第二个 ping 命令,并且每次您再次按向上箭头键时,它都会返回到前一个 ping 命令。这使得查找您要查找的特定命令变得非常容易。

例子

  1. 类型sudo

    sudo
    
  2. 按向上箭头键可自动完成 sudo 到最后一个以 sudo 开头的命令。

    sudo apt update && sudo apt upgrade
    
  3. 请注意,对于以 开头的命令,sudo在执行命令之前,您将被要求像往常一样使用用户密码进行身份验证。

相关内容