Де встановлена ​​ця змінна середовище?


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

Відповідно до дубліката того, що ви запитували на сайті Unix & Linux , існує кілька способів вирішити цю проблему:

  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/profile
    • /etc/profile.d/*
    • ~/.profile(лише якщо у вас немає ~/.bash_profile)
    • ~/.bash_login
  6. За даними Arch Wiki , деякі програми, як-от, wgetвикористовують цю змінну. Перевірте, чи є у вас файл .wgetrcчи /etc/wgetrcфайл. Це може бути встановлено там, хоча там, де він потрапляє, bash- ще одна таємниця



0

gnome-terminal Сам (тобто така поведінка жорстко кодується до двійкових) встановлює деякі з цих змінних на основі значень загального GNOME.

Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.