Где эта переменная среды задана?

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

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

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

Я также посмотрел на «Системные настройки» в сетевом разделе, а прокси-сервер пуст.

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

12 ответов

Для запуска 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.

source

16
ответ дан 22 May 2018 в 20:05

Для запуска 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.

source

16
ответ дан 18 July 2018 в 09:31

Для запуска 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.

source

16
ответ дан 24 July 2018 в 19:21

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

использовать команду env и наблюдать порядок, в котором были созданы переменные, и использовать предыдущие и следующие переменные, чтобы получить приблизительное представление о том, где переменная может взяты из файлов wrap, которые вы пытаетесь исследовать с помощью команды 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 (только если у вас нет ~/.bash_profile) ~/.bash_login Согласно Arch Wiki, некоторые программы, такие как wget, используют эту переменную. Проверьте, есть ли у вас файл .wgetrc или /etc/wgetrc. Это может быть установлено там, хотя там, где он попадает в bash, это еще одна тайна
6
ответ дан 22 May 2018 в 20:05
sudo grep -r http_proxy /etc

должен сделать трюк

2
ответ дан 22 May 2018 в 20:05

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

0
ответ дан 22 May 2018 в 20:05
sudo grep -r http_proxy /etc

должен сделать трюк

2
ответ дан 18 July 2018 в 09:31

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

0
ответ дан 18 July 2018 в 09:31

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

использовать команду env и наблюдать порядок, в котором были созданы переменные, и использовать предыдущие и следующие переменные, чтобы получить приблизительное представление о том, где переменная может взяты из файлов wrap, которые вы пытаетесь исследовать с помощью команды 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 (только если у вас нет ~/.bash_profile) ~/.bash_login Согласно Arch Wiki, некоторые программы, такие как wget, используют эту переменную. Проверьте, есть ли у вас файл .wgetrc или /etc/wgetrc. Это может быть установлено там, хотя там, где он попадает в bash, это еще одна тайна
6
ответ дан 18 July 2018 в 09:31
sudo grep -r http_proxy /etc

должен сделать трюк

2
ответ дан 24 July 2018 в 19:21

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

0
ответ дан 24 July 2018 в 19:21

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

использовать команду env и наблюдать порядок, в котором были созданы переменные, и использовать предыдущие и следующие переменные, чтобы получить приблизительное представление о том, где переменная может взяты из файлов wrap, которые вы пытаетесь исследовать с помощью команды 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 (только если у вас нет ~/.bash_profile) ~/.bash_login Согласно Arch Wiki, некоторые программы, такие как wget, используют эту переменную. Проверьте, есть ли у вас файл .wgetrc или /etc/wgetrc. Это может быть установлено там, хотя там, где он попадает в bash, это еще одна тайна
6
ответ дан 24 July 2018 в 19:21

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

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