如何在 SunOS 中启用 bash 自动完成功能?

如何在 SunOS 中启用 bash 自动完成功能?

在 SunOS 5.10 中,我无法让 bash 自动完成功能(当按下 TAB 时)起作用。箭头键也不会浏览历史。此外,即使PS1设置为\u@\h:\w\$,在命令提示符下它也会显示u@h:w$。有什么想法可以解决吗?

这是命令的结果pkginfo -l SUNWbash

   PKGINST:  SUNWbash
   NAME:  GNU Bourne-Again shell (bash)
   CATEGORY:  system
   ARCH:  i386
   VERSION:  11.10.0,REV=2005.01.08.01.09
   BASEDIR:  /
   VENDOR:  Sun Microsystems, Inc.
   DESC:  GNU Bourne-Again shell (bash) version 3.0
   PSTAMP:  sfw10-patch-x20070430084427
   INSTDATE:  Aug 28 2012 15:01
   HOTLINE:  Please contact your local service provider
   STATUS:  completely installed
   FILES:        3 installed pathnames
               2 shared pathnames
               2 directories
               1 executables
            1194 blocks used (approx)

顺便说一句,我是ssh从 Max OSX 进行连接的。

我什至无法了解 bash 的版本:bash --version命令创建一个子 shell。

答案1

在 Solaris 10 中,普通的 Bourne Shell 仍然是默认 shell,而不是 Bash。随着 2011 年 Solaris 11 的发布,这种情况发生了变化。

对于 Solaris 10,假设您的用户是“john”,请执行以下操作。

  1. 更改为根:su - root
  2. 执行 :usermod -s /usr/bin/bash john

您需要完全从“john”注销并再次登录。

答案2

要使用箭头键恢复自动完成和历史导航(无需像 peterh 建议的那样更改交互式 shell,尽管这完全没问题),请尝试以下命令:

$ set -o emacs

如果这不起作用,请尝试:

$ export EDITOR=emacs

复制任何适合您的命令,~/.profile只要您打开终端,就会自动设置它。

答案3

这修复了我的 Solaris 10:

tcsh
set autolist

TAB应该从那里开始在您的终端中工作。

相关内容