デフォルトのシェルとしてcshからbashに変更する方法


34

csh示すように、デフォルトのシェルとして持っていますecho $SHELLbashデフォルトのシェルに切り替えたい。私は次のアプローチを試してみました:

  1. chsh私は取得します:

    chsh: can only change local entries; use ypchsh instead.
  2. ypchsh私は取得します:

    ypchsh: yppasswdd not running on NIS master host ("dcsun2").

.chsrcは自分のホームディレクトリにしかなく、で.profileファイルを見つけることができません/etc。デフォルトのシェルをどのように変更できますbashか?


4
どのタイプのUNIXであるかを知ることが役立つ場合があります。
エンゾチブ

回答:


43
  1. bashインストールされていることを確認してください。

  2. の場所を学ぶbash

    which bash

    または

    whereis bash

    以下では、場所がであると仮定します/bin/bash

    a)管理者権限がある場合は、rootとして実行します:

    usermod -s /bin/bash YOUR_USERNAME

    YOUR_USERNAMEユーザー名に置き換えます)。

    b)admがない場合。または、(ホームディレクトリ内の)の最後bash --login以下の行追加することにより、ログイン時に実行することができます:.cshrc.profile

    setenv SHELL /bin/bash
    exec /bin/bash --login

2b。が正しいパスでbash列挙され/etc/shellsているかどうかを確認します。
マナトワーク

@manatworkこれは、2bではなく2aに関連します。また、ソリューションが機能しなかった理由を特定するために、奇妙な/壊れたシステム設定でのみ有用です。
rozcietrzewiacz

1
1. SHELL = / bin / bashは、コマンドが見つからないというエラーを表示します。2.ソリューションからプロンプトとしてbashシェルが表示されます。ただし、ログインシェルは変更されません。助けてくれてありがとう。
スモッド

1
これは私がこれを解決するためにしたことです。1. .cshrcファイルで/ bin / bash --loginを実行します。2. SHELL = / bin / bashを設定し、/ etc / profileファイルでSHELLをエ​​クスポートします。ありがとう。
-Sumod

2
ああ、ごめんなさい-私は最初の行がであることを意味しましたexport SHELL=/bin/bash。実際、それよりも良い方法があります-更新を参照してください。
rozcietrzewiacz

13

システム管理者に連絡してください。彼は物事を間違って設定しています。場合は、あなたがあなたのシステム管理者で、その後、あなたはしまし間違っ最大のものを設定します。

エラーメッセージはかなり単純です。yppasswddcsun2で実行していません。そのはず。

しかし、Google検索をすばやく実行すると、クライアントとサーバーの両方で実行されている場合にこのエラーが発生することを示すこの結果が表示されyppasswdます。この場合、クライアントでオフにします。


ログインシェルとしてcshを使用している場合は、ログイン時にbashを起動させることができます。次のコマンドを入力します~/.loginchshまたは管理者権限なしでのデフォルトシェルの変更も参照)。

sleep 2
if (-x /usr/local/bin/bash) then
  exec /usr/local/bin/bash -l
endif

/usr/local/bin/bash必要に応じて適切なパスに置き換えます。すべてが機能する場合は、削除しますsleep 2Ctrl+C何かがうまくいかない場合に押すとcshプロンプトにドロップできる遅延が発生します)。

弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.