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

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

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が実行されるかどうかはわかりません。

答え2

chsh

ログインシェルを切り替えることができます(制限が適用されます。参照/etc/shells)。

答え3

はい、可能です。 1つの方法は、端末を適切に構成することです。これは端末エミュレータによって異なります。

GNOME端末では、必要な設定ファイルのコマンドを編集できます。

コマンドタブを表示するGNOME端末設定

これにより、デフォルトのシェルの代わりに必要なコマンドで端末を開くことができます。

IPythonを実行するGNOME端末

これは以下より侵襲的ではありません。デフォルトのシェルを完全に変更します。(シェルのいずれかを使用しない場合は、管理サポートも必要です/etc/shells)。

関連情報