環境変数が設定されている場所を見つける

環境変数が設定されている場所を見つける

http_proxy新しいターミナルを起動するたびに、が間違って設定されるという問題があります。

» echo $http_proxy 
http://http://127.0.0.1:1234/

これは...まずいですね。私の環境設定のどこかにバグがあります。それを探してみましょう。そのためには、の冒頭で変数の値を表示します.bashrc新しいターミナルで、間違った値がすでに表示されています。

http_proxy=http://http://127.0.0.1:1234/
» 

わかりました。次のいずれかが真実であるはずです:

  1. デスクトッププロセス(ターミナルを起動するプロセス)はすでに間違った値をエクスポートしています。
  2. 値はbash 前に .bashrc解析される

現在のシェルの親プロセスの環境を確認してみましょう。

» pstree -ahp myuser
...
  ├─gnome-terminal-,3807
  │   ├─bash,3814
  │   │   └─pstree,17329 -ahp myuser

親プロセスの環境を確認してみましょうgnome-terminal

» cat /proc/3807/environ | tr \\0 \\n | grep -i http_proxy

何もない、ゼロ、ゼロ!

についてはどうですかbash?

» cat /proc/3814/environ | tr \\0 \\n | grep -i http_proxy
HTTP_PROXY=http://http://127.0.0.1:1234/
http_proxy=http://http://127.0.0.1:1234/

予想通り、そこにあります(これは、echo $http_proxyもちろん を行うこと、または を行うことと同等ですcat /proc/self/environ

つまり、 ではなく にありますgnome-terminalbashをロードするときにはどこか別の場所に設定する必要がありますbash前に .bashrc私も確認してみました.profileが、運がありませんでした。

以前は何が起きていたのでしょうか.bashrc? 他にデバッグのアイデアはありますか?

関連情報