Где эта переменная среды установлена?

Каждый раз, когда я открываю терминал, у меня есть этот переменный набор:

$ echo $http_proxy
http://127.0.0.1:8888/

Где это является переменным быть установленным? Я проверил .bashrc, .bash_profile, /etc/bash.bashrc и /etc/environment и это нигде не там?!

Я также посмотрел на Параметры настройки системы в сегменте сети, и прокси пуст.

9
задан 6 August 2017 в 10:00

4 ответа

Для bash выполненный:

PS4='+$BASH_SOURCE> ' BASH_XTRACEFD=7 bash -xl 7> /tmp/mylog

затем используйте

grep "http_proxy=" /tmp/mylog

искать его.

Можно также ограничить поиск /home и /etc для лучшего результата:

$ grep "http_proxy=" /tmp/mylog | grep -e /home -e /etc
++/home/ravexina/.bashrc> http_proxy=http://test:80

что означает, что это было установлено в моем ~/.bashrc.

источник

16
ответ дан 23 November 2019 в 04:47

Согласно по существу дубликату того, что Вы спросили относительно сайта Unix & Linux, существует несколько способов приблизиться к этой проблеме:

  1. использовать env управляйте и наблюдайте порядок, в котором переменные были созданы и используют предыдущие и следующие переменные для получения общего представления о том, куда переменная, возможно, прибыла из
  2. перенесите файлы, с которыми Вы пытаетесь заняться расследованиями set -x команда в начале и конце файла для наблюдения то, что делает каждый файл; потенциально те файлы получают другие файлы, и set -x должен явно указать, где определение источника происходит
  3. Рассмотрите прохождение через некоторых файлов, через которые Вы можете иметь в своей домашней папке find -type f -exec grep 'VARIABLE_NAME' {} \; или просто grep -rI 'VARIABLE'. Это является трудоемким, так не мог бы быть лучший результат, но эй - при отсутствии легких методов, не нужно откладывать твердые.
  4. Выполненный strace -v -s 10000 -e execve,open,read bash и наблюдатель, что читается и что является предыдущим open() звонить. Это могло бы быть полезно с 2&>1 > output_trace.txt перенаправление для чтения позже и возможно grep. Источник
  5. Вы упомянули .bashrc, .bash_profile,/etc/bash.bashrc и/etc/environment. Также необходимо проверить:

    • /etc/profile
    • /etc/profile.d/*
    • ~/.profile (только если у Вас нет a ~/.bash_profile)
    • ~/.bash_login
  6. Согласно Дуге Wiki, некоторые программы как wget используйте эту переменную. Проверьте, могли ли Вы иметь .wgetrc или /etc/wgetrc файл. Это могло бы быть установлено там, хотя, где это получено в bash другая тайна

6
ответ дан 23 November 2019 в 04:47
sudo grep -r http_proxy /etc

должен добиться цели

2
ответ дан 23 November 2019 в 04:47

gnome-terminal самостоятельно (то есть, это поведение является hardcoded к двоичному файлу) устанавливает некоторые из этих переменных на основе значений gsetting всего GNOME.

0
ответ дан 23 November 2019 в 04:47

Другие вопросы по тегам:

Похожие вопросы: