Перейти к содержимому

Где определяется переменная bash (прокси)

1

У меня проблема с, wgetи я обнаружил, что мои настройки прокси-сервера неверны:

$ env | grep "proxy" http_proxy=http://213.181.73.145:80 https_proxy=http://213.181.73.145:80 

Поэтому, когда я пытаюсь загрузить что-либо с помощью wget, он не пытается подключиться к прокси-серверу и не пытается подключиться к веб-ресурсу, который мне нужно загрузить.

Но в режиме суперпользователя все правильно:

$ sudo su $ env | grep "proxy" $ 

(пустой вывод, без прокси)

Я хочу знать, где эти переменные настройки, и я обнаружил много проблем. Я добавил следующую строку в начало моего /etc/profile:

env | grep "proxy" echo "Hello" 

И, к моему удивлению, обе переменные являются настройками с одинаковыми значениями до загрузки любого файла конфигурации (/ etc / bashrc, ~ / .bashrc и т. Д.):

(new terminal) http_proxy=http://213.181.73.145:80 https_proxy=http://213.181.73.145:80 Hello $ 

Более того, я работаю с guake. Итак, я попробовал то же самое с общим терминалом, и для меня, к моему удивлению, (я думаю) файл /etc/profileне загружен, так как я не вижу ни строки прокси, но ни echo "Hello"сообщения.

Итак, я хотел бы знать, как это возможно http_proxyи https_proxyопределяются перед загрузкой /etc/profileи почему я не вижу сообщение «Hello», когда открываю общий терминал.

260 просмотров
Peregring-lk спросил 13 лет назад
P 155

2 ответа

0

The message is not displayed when you open a "normal" terminal because /etc/profile is only read for login shells, a "normal" terminal starts an interactive, non-login shell. See my answer here for more information.

Now, I don't know where your http_proxy is set. Depending on what exactly your setup is, it could be in various places. Try this:

grep http_proxy /etc/bash.bashrc /etc/profile ~/.bashrc ~/.bash_login ~/.profile ~/bash_profile 

The variable should be set in one of those files.

terdon ответил 13 лет назад
T 40 923
0

Some file that is run on shell startup is setting the environment variables, such as ~/.bashrc, ~/.bash_profile, or /etc/bash.bashrc

You don't have to change any file to take off the proxy variable, though! All you have to do is use the 'unset' command!

$ unset http_proxy $ unset https_proxy 

Now those environment variables are gone! If you can't track down where they are set, you can add that to the end of your ~/.bashrc, and unset them for every shell. If you test it out again:

$ env | grep proxy [nothing] 

You'll see they've gone!

Но ключевой вопрос в том, что эта переменная устанавливается перед загрузкой любого файла конфигурации. Вопрос в том, где можно установить переменную перед / etc / profile.

Peregring-lk · 13 лет назад · 0
KebertX ответил 13 лет назад
K 11