이 환경 변수는 어디에 설정되어 있습니까?


10

터미널을 열 때 마다이 변수 세트가 있습니다.

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

이 변수는 어디에 설정되어 있습니까? 나는 확인했다 .bashrc, .bash_profile, /etc/bash.bashrc그리고 /etc/environment그것은 어디있어?!

네트워크 섹션에서 시스템 설정을 보았는데 프록시가 비어 있습니다.

답변:


17

대한 bash실행 :

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

그런 다음 사용

grep "http_proxy=" /tmp/mylog

그것을 찾기 위해.

당신은 또한에 대한 검색을 제한 할 수 있습니다 /home/etc더 나은 결과를 들어 :

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

내에 설정되었음을 의미합니다 ~/.bashrc.

출처


6

본질적에 따르면 당신이 무엇을 요구의 중복유닉스 및 리눅스 사이트 ,이 문제를 접근하는 방법은 몇 가지가 있습니다 :

  1. env명령을 사용 하고 변수가 작성된 순서를 관찰하고 선행 및 다음 변수를 사용하여 변수의 출처를 대략적으로 알 수 있습니다.
  2. 파일 set -x의 시작과 끝에서 명령 으로 조사하려고하는 파일을 랩 하여 각 파일의 기능을 확인하십시오. 잠재적으로 해당 파일은 다른 파일을 소싱하고 set -x있으며 소싱 발생 위치를 명시 적으로 명시해야합니다.
  3. find -type f -exec grep 'VARIABLE_NAME' {} \;또는 홈 폴더를 통해 홈 폴더에있는 일부 파일을 살펴보십시오 grep -rI 'VARIABLE'. 이것은 시간이 걸리므로 최상의 결과는 아닐 수 있습니다. 그러나 쉬운 방법이 없다면 어려운 방법을 버려서는 안됩니다.
  4. strace -v -s 10000 -e execve,open,read bash읽고있는 내용과 이전 open()호출 이 무엇인지 관찰하고 관찰 하십시오 . 이것은 2&>1 > output_trace.txt나중에 읽을 수있는 리디렉션에 유용 할 수 있습니다 grep. 출처
  5. .bashrc, .bash_profile, /etc/bash.bashrc 및 / etc / environment를 언급했습니다. 또한 확인해야합니다 :

    • /etc/profile
    • /etc/profile.d/*
    • ~/.profile(가없는 경우에만 ~/.bash_profile)
    • ~/.bash_login
  6. Arch Wiki 에 따르면 일부 프로그램은 wget이 변수를 사용합니다. .wgetrc또는 /etc/wgetrc파일 이 있는지 확인하십시오 . 소스가있는 곳 bash은 또 다른 미스터리 이지만, 이것은 거기에 설정 될 수 있습니다.



0

gnome-terminal 그 자체 (즉,이 동작은 이진에 하드 코딩되어 있음)는 그놈 전체 gsetting 값을 기반으로 이러한 변수 중 일부를 설정합니다.

당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.