各ユーザーシェルの独立した環境変数の設定

各ユーザーシェルの独立した環境変数の設定

使用するシェルに関係なく、各ユーザーに対して永続的な環境変数(bashおよび)zshをどのように設定できますかfish

答え1

編集:によると環境変数を設定するための最良の distro/shell 独立した方法は何ですか?、これに対する最良の解決策は次のとおりです。~/.pam_environment

~/.profile編集:すべてのシェルが読み込まれていないので、ハッキーソリューションに戻す:

すべてのシェルソースコード/etc/profile

つまり/etc/profile、次のような行を入れることができます。

. $HOME/.custom-profile

~/.custom-profileその後、各ユーザーに変数を追加できます。

答え2

すべてのシェルは異なるユーザー固有のプロファイルを読み取ります(zsh:〜/ .profile、bash:〜/ .bash_profile、cshには1つのrcファイルしかありません)。したがって、これらの潜在的な候補をすべて変更する必要があります。

しかし、ほとんどのシェルは少なくとも〜/.profileの読み取りに戻ります(これを指摘した@terdonに感謝します!)、エクスポートをここに入れることができます。

「ログイン」は通常、uidとgidを変更できるプロセス(通常はrootとして実行されるログインマネージャ)によって実行されるため、プログラムが生成される環境(シェルなど)を定義することはこれらのプログラムによって異なります。

ただし、ログインマネージャは複数(GDM / lightdm / KDM / ...ビジュアルログインマネージャ、getty、logind / loginct、ssh、getty ...)であり、異なるファイルから設定を読み取るため、一貫性はありません。向こうに近づいてみてください。

関連情報