Chaque fois que j'ouvre un terminal, j'ai cette variable définie:
$ echo $http_proxy
http://127.0.0.1:8888/
Où cette variable est-elle définie? J'ai vérifié .bashrc
, .bash_profile
, /etc/bash.bashrc
et /etc/environment
et c'est nulle part là-bas?!
J'ai également examiné les paramètres système dans la section réseau et le proxy est vide.
Pour bash
, exécutez:
PS4='+$BASH_SOURCE> ' BASH_XTRACEFD=7 bash -xl 7> /tmp/mylog
puis utiliser
grep "http_proxy=" /tmp/mylog
pour le chercher.
Vous pouvez également limiter la recherche à /home
et /etc
pour un meilleur résultat:
$ grep "http_proxy=" /tmp/mylog | grep -e /home -e /etc
++/home/ravexina/.bashrc> http_proxy=http://test:80
ce qui signifie qu'il a été défini dans mon ~/.bashrc
.
Selon essentiellement le duplicata de ce que vous avez demandé sur site Unix et Linux , il existe deux façons de résoudre ce problème:
env
et observez l'ordre dans lequel les variables ont été créées. Utilisez les variables précédentes et suivantes pour avoir une idée approximative de l'origine de la variable.set -x
au début et à la fin du fichier pour voir ce que fait chaque fichier; potentiellement, ces fichiers sont en train d’approvisionner d’autres fichiers et set -x
devrait indiquer explicitement où l’approvisionnement a lieufind -type f -exec grep 'VARIABLE_NAME' {} \;
ou simplement grep -rI 'VARIABLE'
. Cela prend beaucoup de temps, donc ce n’est peut-être pas le meilleur résultat, mais bon - s’il n’ya pas de méthodes faciles, il ne faut pas laisser de côté les plus difficiles.strace -v -s 10000 -e execve,open,read bash
et observez ce qui est lu et ce qui est l'appel précédent open()
. Cela pourrait être utile avec la redirection 2&>1 > output_trace.txt
à lire plus tard et peut-être grep
name__. SourceVous avez mentionné .bashrc, .bash_profile, /etc/bash.bashrc et/etc/environment. Vous devez également vérifier:
/etc/profile
/etc/profile.d/*
~/.profile
(seulement si vous n'avez pas un ~/.bash_profile
)~/.bash_login
Selon Arch Wiki , certains programmes comme wget
utilisent cette variable. Vérifiez si vous avez un fichier .wgetrc
ou /etc/wgetrc
. Ceci peut être défini ici, bien que la source de bash
est un autre mystère
Sudo grep -r http_proxy /etc
devrait faire l'affaire
gnome-terminal
lui-même (c'est-à-dire que ce comportement est codé en dur en binaire) définit certaines de ces variables en fonction des valeurs de gsetting à l'échelle de GNOME.