¿Dónde se establece esta variable de entorno?

10

Cada vez que abro un terminal tengo esta variable establecida:

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

¿Dónde se establece esta variable? He comprobado .bashrc, .bash_profile, /etc/bash.bashrcy /etc/environmenty es la nada allí ?!

También he visto Configuración del sistema en la sección de red y el proxy está vacío.

klarki
fuente

Respuestas:

17

Para bashcorrer:

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

luego usa

grep "http_proxy=" /tmp/mylog

para buscarlo.

También puede limitar la búsqueda /homey /etcpara un mejor resultado:

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

lo que significa que se ha configurado en mi ~/.bashrc.

fuente

Ravexina
fuente
6

De acuerdo con el duplicado de lo que solicitó en el sitio Unix y Linux , hay dos formas de abordar este problema:

  1. use el envcomando y observe el orden en que se crearon las variables, y use las variables anteriores y siguientes para tener una idea aproximada de dónde puede haber venido la variable
  2. ajusta los archivos que intentas investigar con el set -xcomando al principio y al final del archivo para ver qué hace cada archivo; potencialmente esos archivos están obteniendo otros archivos, y set -xdeberían indicar explícitamente dónde ocurre el suministro
  3. Considere revisar algunos de los archivos que pueda tener en su carpeta de inicio mediante find -type f -exec grep 'VARIABLE_NAME' {} \;o simplemente grep -rI 'VARIABLE'. Esto lleva mucho tiempo, por lo que podría no ser el mejor resultado, pero bueno, si no hay métodos fáciles, uno no debería dejar de lado los difíciles.
  4. Ejecute strace -v -s 10000 -e execve,open,read bashy observe lo que se está leyendo y cuál es la open()llamada anterior . Esto podría ser útil con la 2&>1 > output_trace.txtredirección para leer más tarde y tal vez grep. Fuente
  5. Usted mencionó .bashrc, .bash_profile, /etc/bash.bashrc y / etc / environment. También debe verificar:

    • /etc/profile
    • /etc/profile.d/*
    • ~/.profile(solo si no tienes un ~/.bash_profile)
    • ~/.bash_login
  6. Según Arch Wiki , algunos programas como wgetusan esta variable. Compruebe si puede tener .wgetrco /etc/wgetrcarchivo. Esto podría establecerse allí, aunque donde se obtiene bashes otro misterio

Sergiy Kolodyazhnyy
fuente
2
sudo grep -r http_proxy /etc

debería hacer el truco

byteborg
fuente
0

gnome-terminal en sí mismo (es decir, este comportamiento está codificado en el binario) establece algunas de estas variables en función de los valores de configuración de GNOME.

egmont
fuente