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.