回答:
デフォルトのシェルを変更できるかどうか、システム管理者に尋ねてみてください。彼らができないかできない場合(私が大学にいたときのように)、私が使用した回避策は追加することでした
# Exec bash if using an interactive shell.
if ($?prompt) then
setenv SHELL /path/to/bash
exec $SHELL
endif
に.cshrc
。(/path/to/bash
もちろん、実際のパスに置き換えてください。bash
システム提供のバージョンが古すぎて好みに合わない場合は、ホームディレクトリの下にあるバージョンである可能性もあります。)効率のために、.cshrc
可能な限り早い段階でこれ.cshrc
を行うとbash
、csh
プロセスを置き換えると無効になる追加の処理を回避できます。
あなたは単に接続することができます
ssh -t yourhost bash
ログイン時にBashシェルを自動的に実行します。
以下のコメントから、あなたは代替案を見ることができます
ssh -t yourhost exec bash
exec
新しいプロセスを実行して古いcsh
プロセスを終了するため、プロセスは直接終了します。
-l
コマンドの最後にBashの引数として追加すると、ログインシェルとして扱われますが、おそらくそれは必要ありません。
ssh -t yourhost exec -a bash -l bash
最初のシェル内でプロセスとして実行するのではなく、元のシェルを完全に置き換える。
ssh -t host bash
も同じような状況で自分で簡単な解決策を使っていますが、あなたのやり方はより良いです。まったく考えていませんexec
、ありがとう!私はあなたの提案で投稿を更新します。
bash
組み込みのコマンドに引数を使用することで、少しおかしくなりましたexec
。
-a
して-l
。回答の例を変更します。
私が見つけた最良の解決策は、stackexchangeの1つです。ここにリンクstackexchangeがあり、ここに解決策があります:
ホームディレクトリに.profileファイルを作成して次の場所に貼り付けます。既にある場合は、.profileの末尾に追加します。
case $- in
*i*)
# Interactive session. Try switching to bash.
if [ -z "$BASH" ]; then # do nothing if running under bash already
bash=$(command -v bash)
if [ -x "$bash" ]; then
export SHELL="$bash"
exec "$bash"
fi
fi
esac
PAM経由のLADP認証を使用しているとき、私はたくさん検索しました。ユーザーのホームディレクトリの.profileファイルにSHELL = / bin / bash exec / bin / bashを置くことが最善の解決策だと思います
ldapmodify
うまくいくかもしれません。