2012-02-14 6 views
1

こんにちは.bashをデフォルトにするために.cshrcファイルを変更しようとしています。学校のアカウントにありますので、私はメインの設定を変更することはできませんが、プロフィールを変更することができます。問題は、次のコマンドを使用すると、私が.cshrcにログインしたときに動作します。デフォルトのc-shell、bashに変更しますが、scpを許可します

bash 

しかし、いつでもscpファイルにしようとすると、.cshrcを起動し、scashがbash端末に変わったときにscpが混乱するので、動作しません。

これを回避する方法を知っている人はいますか?静かなモードでbashを起動する可能性があります...

+3

あなたは 'chsh'を試しましたが、うまくいきませんでしたか?それとも、シェルを変更できないと仮定していますか? – kdgregory

+0

'ypchsh'がうまくいきませんでしたか?そうした場合は、ログアウトして再度ログインして有効にする必要があります。そうでない場合は、システム管理者に連絡してください。あなたのログインシェルを変更することができます。それまでは、私が答えたところで提案したように、 'bash -l'を手動で(おそらくエイリアス経由で)呼び出すことを提案します。 –

答えて

4

一般に、対話型アプリケーションを起動するものや、可視出力を生成するものは、.cshrcで行うべきです。問題は、非対話型シェルでは.cshrcがソースになっていることです。デフォルトのシェルはcshなので、scpで見たように、多くの場合非対話的にcshを起動させることになります。

代わりに、私はちょうどbashを呼び出すか、より良い方法として、bash -lをcshプロンプトから手動で呼び出します。エイリアスは、たとえばalias b bash -lのように設定できます。

ログイン時に新しいシェルを自動的に起動する場合は(これはまだ良いことではありません)、.cshrcではなく.loginに入れてください。

これは、chshが動作しないと仮定していますが、試してください。

+1

.bash'コマンドを.loginに置くと動作しています。プロンプトでコマンドを使用する代わりに.loginに 'bash'を置くと、どのような潜在的な問題が発生しますか? @KevinThompson – trev9065

+2

良い質問。私は実際にそれが問題を引き起こすとは確信していませんが、あなたがしたい場合は、デフォルトのシェルを実行するオプションを削除しません。 (そして、やはり 'bash'ではなく' bash -l'が必要です;ログインシェルでなければなりません) –

関連する問題