使用するシェルに関係なく、各ユーザーに対して永続的な環境変数(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 ...)であり、異なるファイルから設定を読み取るため、一貫性はありません。向こうに近づいてみてください。