Dove è impostata questa variabile d'ambiente?


10

Ogni volta che apro un terminale ho questa variabile impostata:

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

Dove viene impostata questa variabile? Ho controllato .bashrc, .bash_profile, /etc/bash.bashrce /etc/environmented è in nessun posto lì ?!

Ho anche visto Impostazioni di sistema nella sezione rete e il proxy è vuoto.

Risposte:


17

Per bashcorrere:

PS4='+$BASH_SOURCE> ' BASH_XTRACEFD=7 bash -xl 7> /tmp/mylog

quindi utilizzare

grep "http_proxy=" /tmp/mylog

per cercarlo.

È inoltre possibile limitare la ricerca a /homee /etcper un risultato migliore:

$ grep "http_proxy=" /tmp/mylog | grep -e /home -e /etc
++/home/ravexina/.bashrc> http_proxy=http://test:80

il che significa che è stato impostato nel mio ~/.bashrc.

fonte


6

Secondo essenzialmente il duplicato di ciò che hai chiesto sul sito Unix e Linux , ci sono un paio di modi per affrontare questo problema:

  1. usa il envcomando e osserva l'ordine in cui sono state create le variabili e usa le variabili precedenti e successive per avere un'idea approssimativa di dove potrebbe provenire la variabile
  2. avvolgere i file che si tenta di esaminare con il set -xcomando all'inizio e alla fine del file per vedere cosa fa ogni file; potenzialmente quei file provengono da altri file e set -xdovrebbero indicare esplicitamente dove si verifica la fonte
  3. Considera di esaminare alcuni dei file che potresti avere nella cartella principale tramite find -type f -exec grep 'VARIABLE_NAME' {} \;o solo grep -rI 'VARIABLE'. Questo richiede molto tempo, quindi potrebbe non essere il risultato migliore, ma ehi - se non ci sono metodi facili, non si dovrebbero mettere da parte quelli difficili.
  4. Esegui strace -v -s 10000 -e execve,open,read bashe osserva ciò che viene letto e qual è la open()chiamata precedente . Questo potrebbe essere utile con il 2&>1 > output_trace.txtreindirizzamento da leggere in seguito e forse grep. fonte
  5. Hai citato .bashrc, .bash_profile, /etc/bash.bashrc e / etc / environment. Devi anche controllare:

    • /etc/profile
    • /etc/profile.d/*
    • ~/.profile(solo se non hai un ~/.bash_profile)
    • ~/.bash_login
  6. Secondo Arch Wiki , ad alcuni programmi piace wgetusare questa variabile. Controlla se potresti avere .wgetrco /etc/wgetrcfile. Questo potrebbe essere impostato lì, anche se da dove proviene bashè un altro mistero


2
sudo grep -r http_proxy /etc

dovrebbe fare il trucco


0

gnome-terminal stesso (ovvero, questo comportamento è codificato sul binario) imposta alcune di queste variabili in base ai valori di getting di GNOME.

Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.