私が見るにはよさそうです。environment.d
~/.config/environment.d/*.conf
これ以上の環境変数を宣言する必要がなくなり、~/.bashrc
環境~/.profile
変数がソースとして提供されるようになりました。それ以外の理由がなければ、これらの宣言はシェル固有の構文で書くことができます。
この仮定は正しいですか?シェルに固有の環境変数をシェルrc
ファイルまたは環境変数を含むシステムに入れる理由はありますか~/.profile
?
答え1
これらのファイルはさまざまな用途に使用されますが、依然として補完的です。
environment.d
定義システムユーザーサービス変数;.bashrc
、変数を定義する場合は、Bashのログインではなく対話型インスタンスの変数を定義します。.profile
、変数を定義すると、Bash(および他のシェル)の対話型ログインインスタンスに対して定義されます。
.bashrc
したがって、変数を設定すると、.profile
そのシェルインスタンスにその変数が設定されることが保証されます。ファイルに変数を設定すると、シェルがenvironment.d
含まれているか含まれない可能性がある、対応するユーザーサービスインスタンスに変数が設定されることを保証します(他の仲介者がある可能性がある、参考資料を参照sshd
)。
私が見たもう1つの違いは、変更が後で実行されるすべてのシェルに適用されること.bashrc
です.profile
。変更は、ユーザーセッションと関連サービスが再ロードまたは再起動されたときにのみ適用されますenvironment.d
。
〜のようにムルenvironment.d
ファイルの機能がシェル初期化スクリプトよりも制限的であることが注釈に記載されています。