Onde uma variável bash (proxy) é definida

1

Eu tenho um problema com wget e descobri que minhas configurações de proxy estão incorretas:

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

Por isso, quando tento fazer o download de algo com wget , ele tenta se conectar ao proxy e não tenta se conectar ao recurso da Web que preciso baixar.

Mas no modo de superusuário tudo está correto:

$ sudo su
$ env | grep "proxy"
$

(saída vazia, sem proxy)

Eu quero saber onde essas variáveis são configurações e encontrei muitos problemas. Eu adicionei a próxima linha ao início do meu /etc/profile :

env | grep "proxy"
echo "Hello"

E para mim, surpresa, ambas as variáveis são configurações com os mesmos valores antes de qualquer arquivo de configuração ser carregado (/ etc / bashrc, ~ / .bashrc, etc):

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

Além disso, trabalho com guake . Então, eu tentei o mesmo com um terminal comum, e para mim surpresa, (eu acho) o arquivo /etc/profile não está carregado, já que eu não vejo nem as linhas de proxy, mas nem a mensagem echo "Hello" .

Então, eu gostaria de saber como é possível que http_proxy e https_proxy sejam definidos antes de carregar /etc/profile e porque eu não vejo a mensagem "Olá" quando abro um terminal comum.

    
por Peregring-lk 14.04.2013 / 19:43

2 respostas

0

A mensagem não é exibida quando você abre um terminal "normal" porque /etc/profile é lido apenas para shells de login, um terminal "normal" inicia um shell interativo de não-login. Veja minha resposta aqui para mais informações.

Agora, não sei onde o seu http_proxy está definido. Dependendo do que é exatamente sua configuração, pode ser em vários lugares. Tente isto:

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

A variável deve ser definida em um desses arquivos.

    
por 14.04.2013 / 19:54
0

Algum arquivo que é executado na inicialização do shell está definindo as variáveis de ambiente, como ~ / .bashrc, ~ / .bash_profile ou /etc/bash.bashrc

Você não precisa alterar nenhum arquivo para remover a variável de proxy! Tudo o que você precisa fazer é usar o comando 'unset'!

$ unset http_proxy
$ unset https_proxy

Agora, essas variáveis de ambiente desapareceram! Se você não puder rastrear onde eles estão definidos, você pode adicioná-lo ao final do seu ~ / .bashrc e desmarcá-los para cada shell. Se você testar novamente:

$ env | grep proxy
[nothing]

Você verá que eles foram embora!

    
por 14.04.2013 / 20:00