在我使用的 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 中应该有一个适用于它的软件包(请咨询您的软件包管理器)。
答案4
- 按照@flokra 提到的安装 tcsh。
将 .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