chsh
コマンドを使用して、インストールされているシェル間でユーザーのログインシェルを切り替えることは知っていますが、ログイン元の場所(tty1、tty2、ssh、...)の関係なくで機能します。 。私が達成したいのは、例えばtty7からのログインでcsh
、例:他のすべてのログインソースではbash
。
これはまったく実行可能ですか?
いいえ、はい。
いいえ、ログインシェルは、ユーザーがログインするTTYではなく、ユーザーに関連付けられています。ユーザーは、特定のログインシェルを1つだけ持つことができます。
はい。ユーザーは、ログインシェルの初期化ファイルで、条件に応じて他のプログラムまたはユーティリティを起動できます。
たとえば、現在のログインシェルとしてbash
を使用しているユーザーは、仮想端末7にログインするときに、.bash_profile
ファイルに次のようなものを追加してcsh
を実行できます。
case $(tty) in
*/tty7) exec csh -l ;;
esac
exec csh -l
は、現在のシェルをログインシェルとして開始されたcsh
に置き換えます。