Biến môi trường này được đặt ở đâu?


10

Bất cứ khi nào tôi mở một thiết bị đầu cuối, tôi có bộ biến này:

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

Biến này được đặt ở đâu? Tôi đã kiểm tra .bashrc, .bash_profile, /etc/bash.bashrc/etc/environmentvà đó là nơi nào có ?!

Tôi cũng đã xem Cài đặt hệ thống trong phần mạng và proxy trống.

Câu trả lời:


17

Để bashchạy:

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

sau đó sử dụng

grep "http_proxy=" /tmp/mylog

để tìm kiếm nó

Bạn cũng có thể giới hạn tìm kiếm /home/etccho kết quả tốt hơn:

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

có nghĩa là nó đã được thiết lập trong của tôi ~/.bashrc.

nguồn


6

Theo bản chất là trùng lặp với những gì bạn đã hỏi trên trang web Unix & Linux , có một số cách để tiếp cận vấn đề này:

  1. sử dụng envlệnh và quan sát thứ tự các biến được tạo và sử dụng các biến trước và biến tiếp theo để có ý tưởng sơ bộ về việc biến có thể đến từ đâu
  2. bọc các tệp mà bạn cố gắng điều tra bằng set -xlệnh ở đầu và cuối tệp để xem mỗi tệp làm gì; có khả năng các tệp đó đang tìm nguồn cung ứng các tệp khác và set -xphải nêu rõ nơi xảy ra tìm nguồn cung ứng
  3. Xem xét đi qua một số tệp bạn có thể có trong thư mục nhà của bạn thông qua find -type f -exec grep 'VARIABLE_NAME' {} \;hoặc chỉ grep -rI 'VARIABLE'. Điều này rất tốn thời gian, vì vậy có thể không phải là kết quả tốt nhất, nhưng này - nếu không có phương pháp dễ dàng, người ta không nên bỏ qua những phương pháp khó.
  4. Chạy strace -v -s 10000 -e execve,open,read bashvà quan sát những gì đang được đọc và open()cuộc gọi trước đó là gì . Điều này có thể hữu ích với 2&>1 > output_trace.txtchuyển hướng để đọc sau và có thể grep. Nguồn
  5. Bạn đã đề cập đến .bashrc, .bash_profile, /etc/bash.bashrc và / etc / môi trường. Bạn cũng cần kiểm tra:

    • /etc/profile
    • /etc/profile.d/*
    • ~/.profile(chỉ khi bạn không có ~/.bash_profile)
    • ~/.bash_login
  6. Theo Arch Wiki , một số chương trình thích wgetsử dụng biến này. Kiểm tra nếu bạn có thể có .wgetrchoặc /etc/wgetrctập tin. Điều này có thể được đặt ở đó, mặc dù nơi nó có nguồn gốc bashlà một bí ẩn khác



0

gnome-terminal chính nó (nghĩa là, hành vi này được mã hóa cứng thành nhị phân) đặt một số biến này dựa trên các giá trị đặt cược trên toàn bộ Gnome.

Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.