回答:
デフォルトのシェルを変更できるかどうか、システム管理者に尋ねてみてください。彼らができないかできない場合(私が大学にいたときのように)、私が使用した回避策は追加することでした
# 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うまくいくかもしれません。