最近、ターミナルプロンプトログイン(getty?)からGNOME DisplayManagerに切り替えました。 そうです ユーザーのログインシェル(私の場合はZsh)の設定に関係なく、GDMは常に.profile
を読み取ります。何故ですか? ソース にハードコードされていると思いますが、見つかりません。なぜ彼らはそれをしたのですか?ソフトウェアはBourneシェルの一部の機能に依存していますか?
GDMとgettyの両方を(フォールバックとして)使用する場合、これはあまり良くありません。.profile
と.zprofile
の同期を維持する必要があるためです。 .profile
で.zprofile
を調達することに自信がありません(以前、.bashrc
で.zshrc
を調達しようとしたときに、いくつかの互換性の問題が発生しました)。 /bin/sh
と呼ばれるBashはPOSIXモードで動作すると思いますが、すべての落とし穴を回避できるかどうかはわかりません。
重要な場合は、私は最新のArch Linuxを使用しており、WaylandでGNOMEを実行しています(したがって、Xsession
スクリプトは必要ありません)。
.bashrc
に関する問題は無関係です。 .profile
はすべてのsh
互換シェルと互換性がある必要がありますが、もちろん.bashrc
はBashに固有であり、通常は他のシェルから供給されるべきではありません。
一般に、シェル間で共有したいものを.profile
に入れ、他のスタートアップファイルからdoソースを作成するようにしますシェル(もちろん、デフォルトですでにそれを行っている場合を除く)。
明らかに、異なるシェルで異なる動作をするコードを避けるようにする必要があります(たとえば、Zshでは引用符の欠如は問題ありませんが、適切にBourne互換のシェルでは問題があります)。
質問の「理由」の部分については、これは、シェル内から実行するプログラムだけでなく、GUIセッションから実行するプログラムでも.profile
の設定を利用できるようにするためです(または、そうする必要があります)。 「従来の」シェルと言い、GUIセッションを「非従来の」シェルと見なします)。