如何使.profile文件在Solaris计算机上工作



这已经让我沮丧了两天,似乎这应该是一件非常简单的事情。我刚刚在Solaris计算机上创建了一个帐户。我相信Sun OS 5.10。

默认值是Bourne shell,我不想要它。我做了一个cat /etc/shells,结果是:

/bin/sh
/sbin/sh
/bin/ksh
/usr/bin/ksh

看来我只能用Korn shell了。

我创建了一个.profile文件,并写道:

export SHELL=/usr/bin/ksh

然后我做了一个env,看起来/bin/sh仍然被列为我的外壳。我注销,重新登录,现在我得到:

-sh: SHELL=/usr/bin/ksh: is not an identifier

我尝试在.profile的开头添加#!/usr/bin/ksh。那没用。我试着在export的末尾添加一个分号。那没用。我试过:SHELL=/bin/ksh,但也没用。

我的最终目标是让这个环境达到我可以高效运作的地步。我习惯于BASH,我有制表符完成,历史上的向上箭头,等等,而这个Bourne shell没有这些,这让我沮丧不已。

我知道这一定很简单,但我所有的谷歌搜索都无济于事。有人能帮我吗?

/etc/shells不是标准的Solaris文件,您可能不应该依赖它的内容。

另一方面,bash是默认Solaris 10安装的一部分。它应该已经作为/bin/bash存在(实际上是/usr/bin/bash,但/bin无论如何都是到/usr/bin的符号链接)。

如果没有bash,您可能需要要求管理员从安装介质中的Solaris_10/Product目录安装SUNWbash软件包。

然后,要更新您的shell,通常的方法是更新为您的帐户定义的shell。如果它是本地的,那就是/etc/passwd条目中的最后一个字段。

或者,你可以在你的个人资料末尾使用该破解:

[ ! "$BASH_VERSION" -a -x /bin/bash ] && SHELL=/bin/bash exec /bin/bash 

按偏好的降序排列

  1. 要求系统管理员安装bash并更新/etc/shell并更新登录shell
  2. 查看是否安装了允许您更改自己的登录shell的chsh程序
  3. 要求系统管理员将登录shell更改为/usr/bin/ksh
  4. 修改你的~/.档案:

    if type [[ >/dev/null; then
    : # this is ksh
    else
    # not ksh
    export SHELL; SHELL=/usr/bin/ksh
    exec $SHELL
    fi
    

相关内容

最新更新