$PATH
私の環境変数(および$MANPATH
友達)の一部は、部分的に別のソースファイルに設定されています。
早く収集できるコマンドや方法があればいいと思います。どの部分、特定の環境変数でどんな文書。
.bashrc
たとえば、私の$ PATHは明らかに、、/etc/paths
...に設定(追加)されていますが、/etc/paths.d/X11
まだ私の$PATH
。
環境変数に影響を与えるファイルを手動で見つけるには時間がかかります。すべてのセッターを追跡するために不必要な努力をバイパスするための有用な方法があります...それとも私はそう思いますか?
答え1
通常、PATH
システム依存度の高い方法でログインしたプログラムによって初期値に設定されます(pam_env
共通の貢献者)、/etc/profile
含まれているファイルは~/.profile
その値を変更し続けます。
PATH
.bashrc
次のものではない環境設定に対する変更を削除します.bashrc
。以下を参照してください。.bashrcと.bash_profileの違い。
ssh localhost
セッションの開始はグラフィカルモードよりはるかに簡単なので、まずテキストモード(例えばを使用して)でログインしてみてください。
set -x
andの先頭に入れてください。シェルは、標準エラーストリームで実行された操作のトレースを印刷します。トレースで割り当てを探します。/etc/profile
~/.profile
PATH
環境変数の割り当てには優先順位の概念はありません。最後に割り当てた人が勝ちます。
答え2
PATHは.bashrcファイルだけでなく、どこでも設定できます。システムにはファイルがある可能性が /etc/profile
高く/etc/profile.local
、システム内のすべてのユーザーのデフォルトパスを設定します。ユーザー固有の変更や追加がファイルにない場合は、.profile
ファイルに設定する.bashrc
か、システムのデフォルト値を使用できます。
あなたにのみ影響を与える変更を適用するには、.profile
次のフォームを使用して入力してください。
export PATH=/new/directory:$PATH
したがって、現在のパスを完全に書き換えるのではなく編集します。
(man bash
またはここ.profile
).bashrc
では、などの違いと、ログイン時やシェルを起動するときにどのファイルをどの順序で読み取るかを説明します。
答え3
そのようなメカニズムが存在する可能性はほとんどありません。シェルでenv変数の値を変更する方法がどれほど多いかを考えてみましょう。
しかし、運が良いかもしれませんset -x
。