CentOS 向上箭头 上一个命令

CentOS 向上箭头 上一个命令

在我使用的 FreeBSD 机器上,向上箭头键会根据已输入的字母调出上一个命令。然而,在我使用的 CentOS 机器上,向上箭头键只会调出紧接着的上一个命令。

有人知道是否有办法将其设置为像 CentOS 的 FreeBSD 的向上箭头键那样吗?

多谢。

答案1

您所描述的行为基于您的 shell。

CentOS 中的默认 shell 是 bash:您可以通过输入以下内容来确认这一点:

$ 回显 $SHELL
/bin/bash

如果是,那么您可以通过按 CTRL-r 获得与 FreeBSD shell(最有可能是 ksh)类似的功能。您将看到类似以下内容:

(反向搜索)`': 

只需开始输入,您就会根据输入的内容获得之前运行的命令。

例如,在这个终端中,当我输入 CTRL-r s 时,我得到如下结果:

(反向搜索)`s':sudo port install ruby

然后,您可以使用箭头键向上或向下滚动以浏览符合您的搜索条件(在本例中为“s”)的所有命令。

答案2

您还可以像这样配置~/.inputrc您的私人文件:bash

"\e[5~": history-search-backward
"\e[6~": history-search-forward

现在,向上翻页键可在历史记录中向后搜索,向下翻页键可在历史记录中向前搜索。这是我使用的。(您需要重新启动 shell 才能使其生效。)

如果要将 shell 命令绑定到另一个 KEY(而不是向上翻页/向下翻页),请按 CTRL+V,然后按 KEY 来确定按键顺序。

答案3

FreeBSD 下的默认 shell 是 CSH。CentOS 中应该有一个适用于它的软件包(请咨询您的软件包管理器)。

如何:在 Linux 上下载并安装 csh/tcsh shell

答案4

  1. 按照@flokra 提到的安装 tcsh。
  2. 将 .cshrc 文件放在您的主目录中。在该文件内配置 tcsh,以便在您按向上或向下箭头时显示与部分输入的命令匹配的列表。使用http://svnweb.freebsd.org/base/stable/9/share/skel/dot.cshrc?revision=244007&view=co&pathrev=244007作为指南,但您要寻找的是:

    bindkey -k up history-search-backward
    bindkey -k down history-search-forward
    

相关内容