私は大学のリモートLinuxアカウントで作業しています。デフォルトのシェルは残念ながらcsh
で、タブ補完はありません。アカウントのデフォルトのシェルをbash
に変更するにはどうすればよいですか? chsh
は利用できません。
おそらく、システム管理者にデフォルトのシェルを変更できるかどうかを尋ねてみてください。 (私が大学にいたときのように)彼らができない、またはできない場合、私が使用した回避策は追加することでした
# Exec bash if using an interactive Shell.
if ($?prompt) then
setenv Shell /path/to/bash
exec $Shell
endif
.cshrc
に。 (もちろん、/path/to/bash
を実際のパスに置き換えるようにしてください。システムが提供するバージョンが古すぎて好みに合わない場合は、ホームディレクトリの下にあるbash
のバージョンである可能性もあります。 。)効率を上げるには、.cshrc
のできるだけ早い段階でこれを実行することをお勧めします。これにより、bash
がcsh
プロセスを置き換えると無効になる追加の.cshrc
処理を回避できます。
あなたは単に接続することができます
ssh -t yourhost bash
ログイン時にBashシェルを自動的に実行します。
以下のコメントから、あなたは代替案を見ることができます
ssh -t yourhost exec bash
exec
は新しいプロセスを実行して古いプロセスを終了するため、csh
プロセスは直接終了します。
追加する場合-l
Bashへの引数としてのコマンドの最後では、ログインシェルとして扱われますが、おそらくそれは必要ありません。
私が見つけた最良の解決策は、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経由でLDAP認証を使用しているときによく検索しましたが、最善の解決策は、ユーザーのホームディレクトリの.profileファイルにShell =/bin/bash exec/bin/bashを配置することだと思います。