Wenn ich in ein Terminal tippe,
export DISPLAY=:0.0
... wo speichert die Shell diese Umgebungsvariable?
Ich benutze Ubuntu 8.10. Ich habe in den Dateien ~ / .profile und / etc / profile nachgesehen und kann keine Spur von DISPLAY finden.
Wenn ich in ein Terminal tippe,
export DISPLAY=:0.0
... wo speichert die Shell diese Umgebungsvariable?
Ich benutze Ubuntu 8.10. Ich habe in den Dateien ~ / .profile und / etc / profile nachgesehen und kann keine Spur von DISPLAY finden.
Antworten:
Die Umgebungsvariablen eines Prozesses sind zur Laufzeit vorhanden und werden in keiner Datei oder so gespeichert. Sie werden im eigenen Speicher des Prozesses gespeichert (dort werden sie an Kinder weitergegeben). Es befindet sich jedoch eine virtuelle Datei in
/ proc / pid / environ
Diese Datei zeigt alle Umgebungsvariablen an, die beim Aufrufen des Prozesses übergeben wurden (es sei denn, der Prozess hat diesen Teil seines Speichers überschrieben - die meisten Programme tun dies nicht). Der Kernel macht sie durch diese virtuelle Datei sichtbar. Man kann sie auflisten. Zum Beispiel kann man die Variablen des Prozesses 3940 anzeigen
cat /proc/3940/environ | tr '\0' '\n'
Jede Variable wird durch eine binäre Null von der nächsten begrenzt. tr ersetzt die Null in eine neue Zeile.
environ
Datei die falschen Werte dar, wenn eine Umgebungsvariable auf definierte Weise geändert wurde? Können Sie vielleicht ein Programm zeigen, das das ausnutzt?
Wenn Sie die Umgebung systemweit nutzen möchten, können Sie dies mit /etc/environment
Datei tun .
Diese Variable ist in keinem Skript gespeichert. Es wird einfach durch die X-Server-Skripte festgelegt. Sie können die aktuell eingestellten Umgebungsvariablen mit set überprüfen .