.profile ファイルを Solaris マシンで動作させるにはどうすればよいですか?

StackOverflow https://stackoverflow.com//questions/22078816

  •  24-12-2019
  •  | 
  •  

質問

これには 2 日間私はイライラしていましたが、これは非常に単純なことのように思えます。Solaris マシンでアカウントを作成したところです。Sun OS 5.10だと思います。

デフォルトは Bourne シェルですが、これは望ましくありません。私はやった cat /etc/shells その結果、次のような結果が得られます。

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

使えるのはKornシェルだけのようです。

私が作成したのは、 .profile ファイルを作成し、次のように書きました。

export SHELL=/usr/bin/ksh

それから私はやった env そしてそれは次のようになります /bin/sh はまだ私のシェルとしてリストされています。ログオフして再度ログオンすると、次のメッセージが表示されます。

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

追加してみました #!/usr/bin/ksh の初めに .profile. 。それはうまくいきませんでした。末尾にセミコロンを追加してみました export. 。それはうまくいきませんでした。私はもう試した: SHELL=/bin/ksh それもうまくいきませんでした。

私の最終目標は、この環境を生産的に運用できるレベルまで引き上げることです。私は、タブ補完や履歴の上矢印などがある BASH には慣れていますが、この Bourne シェルにはそのような機能がなく、果てしなくイライラします。

これは簡単なはずだとわかっていますが、グーグル検索はすべて役に立ちません。誰か助けてくれませんか?

役に立ちましたか?

解決

/etc/shells は標準の Solaris ファイルではないため、その内容に依存しないでください。

一方で、 bash は、デフォルトの Solaris 10 インストールの一部です。すでに次のように存在しているはずです /bin/bash (/usr/bin/bash 実際にはだけど /bin へのシンボリックリンクです /usr/bin ともかく)。

もし bash が存在しない場合は、管理者にインストールするように依頼してください。 SUNWbash からのパッケージ Solaris_10/Product インストールメディア内のディレクトリ。

次に、シェルを更新するには、アカウントに定義されているシェルを更新するのが通常の方法です。ローカルの場合は、それが最後のフィールドになります。 /etc/passwd エントリ。

あるいは、.profile の最後でそのハックを使用することもできます。

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

他のヒント

優先順位

の降順で

  1. SysadminにBashとUpdate / etc / Shellsをインストールして、ログインシェル
  2. を更新します。
  3. chshプログラムがインストールされているかどうかを確認してください。
  4. ログインシェルを/ usr / bin / ksh
  5. に変更するようにsysadminに尋ねてください。
  6. あなたの〜/ .profile:

    if type [[ >/dev/null; then
        : # this is ksh
    else
        # not ksh
        export SHELL; SHELL=/usr/bin/ksh
        exec $SHELL
    fi
    
ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top