Каждый раз, когда я открываю терминал, у меня есть этот переменный набор:
$ echo $http_proxy
http://127.0.0.1:8888/
Где это является переменным быть установленным? Я проверил .bashrc
, .bash_profile
, /etc/bash.bashrc
и /etc/environment
и это нигде не там?!
Я также посмотрел на Параметры настройки системы в сегменте сети, и прокси пуст.
Для 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
.
Согласно по существу дубликату того, что Вы спросили относительно сайта Unix & Linux, существует несколько способов приблизиться к этой проблеме:
env
управляйте и наблюдайте порядок, в котором переменные были созданы и используют предыдущие и следующие переменные для получения общего представления о том, куда переменная, возможно, прибыла изset -x
команда в начале и конце файла для наблюдения то, что делает каждый файл; потенциально те файлы получают другие файлы, и set -x
должен явно указать, где определение источника происходитfind -type f -exec grep 'VARIABLE_NAME' {} \;
или просто grep -rI 'VARIABLE'
. Это является трудоемким, так не мог бы быть лучший результат, но эй - при отсутствии легких методов, не нужно откладывать твердые.strace -v -s 10000 -e execve,open,read bash
и наблюдатель, что читается и что является предыдущим open()
звонить. Это могло бы быть полезно с 2&>1 > output_trace.txt
перенаправление для чтения позже и возможно grep
. ИсточникВы упомянули .bashrc, .bash_profile,/etc/bash.bashrc и/etc/environment. Также необходимо проверить:
/etc/profile
/etc/profile.d/*
~/.profile
(только если у Вас нет a ~/.bash_profile
)~/.bash_login
Согласно Дуге Wiki, некоторые программы как wget
используйте эту переменную. Проверьте, могли ли Вы иметь .wgetrc
или /etc/wgetrc
файл. Это могло бы быть установлено там, хотя, где это получено в bash
другая тайна
sudo grep -r http_proxy /etc
должен добиться цели
gnome-terminal
самостоятельно (то есть, это поведение является hardcoded к двоичному файлу) устанавливает некоторые из этих переменных на основе значений gsetting всего GNOME.