Nếu tôi nhập vào một thiết bị đầu cuối,
export DISPLAY=:0.0
... shell lưu trữ biến môi trường đó ở đâu?
Tôi đang sử dụng Ubuntu 8.10. Tôi đã xem các tệp ~ / .profile và / etc / profile và không tìm thấy dấu vết của HIỂN THỊ.
Nếu tôi nhập vào một thiết bị đầu cuối,
export DISPLAY=:0.0
... shell lưu trữ biến môi trường đó ở đâu?
Tôi đang sử dụng Ubuntu 8.10. Tôi đã xem các tệp ~ / .profile và / etc / profile và không tìm thấy dấu vết của HIỂN THỊ.
Câu trả lời:
Các biến môi trường của một quy trình tồn tại trong thời gian chạy và không được lưu trữ trong một số tệp hoặc lâu hơn. Chúng được lưu trữ trong bộ nhớ riêng của quá trình (đó là nơi chúng được tìm thấy để truyền lại cho trẻ em). Nhưng có một tệp ảo trong
/ proc / pid / environ
Tệp này hiển thị tất cả các biến môi trường đã được chuyển khi gọi tiến trình (trừ khi tiến trình ghi đè lên phần bộ nhớ của nó - hầu hết các chương trình thì không). Kernel làm cho chúng hiển thị thông qua tệp ảo đó. Người ta có thể liệt kê chúng. Ví dụ: để xem các biến của quy trình 3940, người ta có thể làm
cat /proc/3940/environ | tr '\0' '\n'
Mỗi biến được phân định bằng số 0 nhị phân với biến tiếp theo. tr thay thế số 0 thành một dòng mới.
environ
tập tin đại diện cho các giá trị sai nếu một biến môi trường đã thay đổi một cách định nghĩa? Bạn có thể hiển thị một chương trình khai thác điều đó?
Nếu bạn muốn đặt môi trường để sử dụng trên toàn hệ thống, bạn có thể làm như vậy với /etc/environment
tệp.
Biến đó không được lưu trữ trong một số tập lệnh. Nó chỉ đơn giản được thiết lập bởi các tập lệnh máy chủ X. Bạn có thể kiểm tra các biến môi trường hiện được thiết lập bằng cách sử dụng set .