他のインタプリタによる基本シェルの切り替え

他のインタプリタによる基本シェルの切り替え

pythonだから私はLinuxの経験があり、デフォルトのシェルインタプリタ(またはsh)の代わりに他のインタプリタ(たとえば)を実行するように端末を変更することができるかどうか常に疑問に思いましたbash

(これはただ」ケースの交換はどこですか?「または」cshからbashにデフォルトシェルを変更する方法「所属していない人の運営に関することです。シェル、それ自体だが通訳者。私は仕事をより明確にするためにPythonを例として使用していますが、簡単にphpや他のインタプリタと言うことができます。 )

可能ですか?それではどうすればいいですか?

ベストアンサー1

コメントと最初の答えで述べたようにchsh/etc/shells他のシェル/etc/passwd(または他のユーザーデータベース)を手動で強制的loginに実行しても(試してみたことはありません)、問題は解決されませんpython。に記載されています/etc/shells

ログインシェルには、主にユーザーエクスペリエンスを設定する特定のタスクがあります。したがって、ログインシェルのみを読み取ることができます/etc/profile

可能な妥協

通常のシェルへのリンクを作成できます(シンボルリンクまたはハードリンク、現在はどちらが良いかについてのコメントはありません)。

cd /bin
ln -s bash bash-python

そして、ユーザーのデフォルトシェル/bin/bash-pythonに追加してデフォルトシェルに設定します。 (または)/etc/shellsで、その名前でシェルが起動して実行されていることを確認できます。/etc/profile/etc/bash.bashrcpython

[[ $0 =~ bash-python ]] && exec python
# or
[[ $0 =~ bash-python ]] && python

どちらが良いかはまだ確信できません。おそらくexecログインなしのバリエーションかもしれませんが、wtmpログインシェルが存在した後にPAMが実行されるかどうかはわかりません。

おすすめ記事