Können Sie die Umgebungsvariablen festlegen, die jeder Prozess nach der Ausführung in Linux hat?

Können Sie die Umgebungsvariablen festlegen, die jeder Prozess nach der Ausführung in Linux hat?

Unter Windows können Sie das folgende Fenster verwenden, um die Umgebungsvariablen festzulegen, die jedem Prozess nach seiner Ausführung zur Verfügung stehen:

Bildbeschreibung hier eingeben

Können Sie dasselbe unter Linux tun?

Antwort1

Das Festlegen von Umgebungsvariablen für Benutzeranwendungen über die Benutzeroberfläche funktioniert unter Windows und Linux etwas anders. Die von Ihnen verwendete Windows-Oberfläche ändert sowohl die Werte der Variablen in der aktuellen Sitzung als auch die Werte für zukünftige Sitzungen.

Unter Linux funktionieren die herkömmlichen Methoden zum Festlegen von Umgebungsvariablen beim Anmelden. Es gibt mehrere Möglichkeiten, dies zu tun, aber dabei werden Dateien geändert, die nur beim Anmelden gelesen werden. Sie gelten also nicht für die aktuelle Sitzung. Die wichtigsten Dateien, die Sie hierfür verwenden können, sind .profileund .pam_environment, beide in Ihrem Home-Verzeichnis; sieheWas ist die beste Distributions-/Shell-unabhängige Methode zum Festlegen von Umgebungsvariablen?für eine ausführlichere Diskussion.

Um Umgebungsvariablen für die aktuelle Sitzung festzulegen, müssen Sie sie in dem Prozess festlegen, der die Anwendungen startet: der GUI-Shell. Unter Windows ist das einfach, da es keine echte Auswahlmöglichkeit für eine GUI-Shell gibt. (Es ist technisch möglich, die Standard-Shell zu ersetzen, aber nur sehr wenige Benutzer tun dies.) Unter Linux gibt es Hunderte von möglichen GUI-Shells – die GUI-Shell ist normalerweise dieFenstermanager, manchmal eine separate Komponente einesDesktopumgebung. Es gibt keine Standardmethode zum Festlegen von Umgebungsvariablen im Fenstermanager oder in der Desktopumgebung: Jeder WM/DE hat seine eigene Methode (und manche haben leider keine).

Eine WM/DE-agnostische Möglichkeit zum Ändern von Umgebungsvariablen ist edit ~/.profile. Eine grundlegende Syntax (es gibt auch andere Möglichkeiten) ist

export MYVAR='the value of the variable'

Starten Sie dann ein Terminal (auf dem eine Shell ausgeführt wird) und geben Sie in dieser Shell Folgendes ein:

. ~/.profile

Dadurch werden die neuen Werte der Umgebungsvariablen von geladen .profile. Wenn Sie danach ein Programm von dieser Shell aus ausführen, gelten die neuen Variablen für dieses Programm. Wenn Sie jedoch ein Programm direkt von einem GUI-Menü aus ausführen, übernimmt das Programm die Umgebung des Programms, das das GUI-Menü bereitstellt. Wenn Sie dies also ändern möchten, müssen Sie die von diesem Programm bereitgestellte Methode verwenden (oder ein Begleitprogramm als Teil der Desktopumgebung).

Antwort2

Sie können die Variable in /etc/environmentder Datei festlegen. Das Format muss wie folgt aussehen:

VARIABLE=value

Beachten Sie, dass die Variablenerweiterung nicht funktioniert /etc/environmentund Sie alle Prozesse neu starten müssen, die diese/jene Variable(n) verwenden/benötigen.

Antwort3

Umgebungsvariablen sind aufgrund ihrer Natur allen Prozessen verfügbar, die von dem Prozess/der Shell gestartet werden, der/die die Umgebungsvariablen festlegt.

Eine Umgebungsvariable in Unix ist eine Shell-Variable, die exportiert wird mit export, zB

MYVAR="my value"
export MYVAR

Normalerweise legen Sie Umgebungsvariablen in Ihrer Shell-Startdatei fest. Im Fall von bashist dies in ~/.bash_profile, und viele andere Shells verwenden ~/.profile.

/etcUnter (zB ) gibt es systemweite Shell-Initialisierungsskripte /etc/profile, die zum Anpassen der Umgebung für alle Benutzer verwendet werden können.

Umgebungsvariablen können auch global für alle Benutzer Shell-unabhängig festgelegt werden, dies geschieht jedoch je nach Unix-Variante unterschiedlich. Die meisten BSDs können dies durch Modifizierung tun, /etc/login.confwährend einige Linux-Versionen /etc/environmentoder andere Mechanismen verwenden.

verwandte Informationen