Umgebungsvariablen setzen

Umgebungsvariablen sind äußerst hilfreich, um Pfade zu Programmen, Dateien und Konfigurationen in einem einzigen Schlüsselwort zu verpacken. Man denke nur an die PATH-Variable. Wer hätte schon Lust, jedesmal die gesamten Dateipfade abzutippen, geschweige denn könnte sich diese merken.
Ohne Probleme lassen sich zudem eigene im laufenden Betrieb definieren. Praktisch wäre es da, wenn uns diese auch dauerhaft erhalten bleiben würden.

Der folgende Beitrag nutzt die Bash als Shell.
Es kann also sein, dass Syntax und die vorgestellten Dateien, Ordner und Pfade je nach Shell variieren können.

Einführung

Bevor auf die eigentlichen Lösungsansätze eingegangen wird, möchte ich einen kurzen Überblick verschaffen, wie Variablen gesetzt und ausgelesen werden.
Eine Variable lässt sich wie folgt setzen:

variablenname=wert

So wird die Variable variablenname erstellt und mit dem Inhalt wert gefüllt. Wichtig zu beachten ist hierbei, dass diese Variable lediglich für die aktuelle Shell-Sitzung Gültigkeit hat und verschwindet, sobald diese beendet wird. Möchten wir Programmen, die innerhalb unserer derzeitigen Shell aufgerufen wurden, auch diese Variable zur Verfügung stellen, stellen wir noch das export-Kommando vorne dran:

export variablenname

Auch lässt sich alles in einem einzigen Kommando kombinieren:

export variablenname=wert

Möchten wir uns den Inhalt der eben erstellten Variable ausgeben lassen, können wir heirzu den echo-Befehl nutzen:

echo $variablenname

Um dem System zu verstehen zu geben, dass wir auf die Variable variablenname zugreifen möchten, müssen wir ein $-Zeichen vorne dran fügen.

Umgebungsvariablen setzen

Kommen wir nun zum Kernpunkt dieses Beitrags. Um die gewünschten Variablen zu definieren, stehen uns mehrere Dateien und Pfade zur Wahl, die im folgenden nacheinander vorgestellt werden.

/etc/profile bzw. ~/.profile

Beginnen wir mit der /etc/profile (für die Systemweite …) bzw. die ~/.profile im Home-Verzeichnis (… für die Benutzerspezifische Sitzung). Egal für welche der beiden Variante man sich entscheidet, die Syntax bleibt dieselbe. Am unteren Ende der Datei wenden wir einfach die eben gezeigte Schreibweise zur Definition von Variablen an, z.B.:

variablenname=wert

Bedenkt jedoch, dass die Nutzung von /etc/profile Administrator-Berechtigungen voraussetzt.
Wir können hier übrigens auch die PATH-Variable erweitern:

$PATH="$PATH:/ein/weiterer/pfad/"

Ein kleiner Hinweis hier am Rande. Erweitern wir die PATH-Variable, macht es einen Unterschied ob wir diese entweder so
$PATH:/ein/weiterer/pfad/
oder so
/ein/weiterer/pfad/:$PATH
erweitern. Die Einträge werden in ihrer Priorität von links (höchste Priorität) nach rechts (niedrigste Priorität) abgearbeitet.

Innerhalb von /etc/profile.d/ lassen sich im übrigen auch Shell-Skripte ablegen, die dieselbe Funktion erfüllen und mit derselben Syntax arbeiten.

/etc/bash.bashrc bzw. ~/.bashrc

Eine weitere Möglichkeit ist die Nutzung der Datei /etc/bash.bashrc (systemweit) bzw. ~/.bashrc (im jeweiligen Home-Verzeichnis). Die Syntax ist dieselbe wie im oberen Beispiel. Auch hier gilt, dass für die Nutzung der systemweiten Datei /etc/bash.bashrc Administrator-Berechtigungen benötigt werden.

/etc/environment

Die Datei /etc/environment operiert ebenfalls systemweit und lässt uns (wie in den vorangegangenen Beispielen) Variablen setzen. Die einzige Zeile die dort ab Werkseinstellungen zugrunde liegen sollte, ist die PATH-Variable.
Auch hier gilt (wie bei allen anderen Dateien die systemweite Änderungen durchsetzen): Erst Administrator werden, dann editieren!

Fazit

Die Erstellung eigener Systemvariablen ist ein mächtiges Werkzeug um das Betriebssystem auf die eigenen Bedürfnisse anzupassen und beispielsweise Konfigurationen und Workarounds zu etablieren. Doch Vorsicht ist gerade bei systemweiten Änderungen geboten, da sich diese negativ auf die Stabilität des Systems auswirken können. Auch kann die Fehlersuche bei falsch gesetzten Variablen eklatant erschwert werden.

Kommentar verfassen

Deine E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind mit * markiert

Nach oben scrollen