Umgebungsvariablen
Zur Navigation springen
Zur Suche springen
Umgebungsvariablen
Grundprinzip
- Umgebungsvariablen sind Variablen, die nicht nur innerhalb der aktuellen Shell, sondern auch in von ihr gestarteten Prozessen (Kindprozessen) verfügbar sind.
- Sie dienen dazu, Laufzeitumgebungen und Einstellungen an Unterprozesse zu vererben.
- Im Gegensatz zu Shell-Variablen werden Umgebungsvariablen beim Start eines neuen Prozesses automatisch weitergegeben.
Anzeige von Umgebungsvariablen
- Die aktuell gesetzten Umgebungsvariablen können mit folgenden Kommandos angezeigt werden:
- env – listet alle Umgebungsvariablen auf.
- printenv – zeigt einzelne oder alle Umgebungsvariablen an.
- echo $VARIABLENNAME – zeigt den Wert einer bestimmten Variablen.
- Beispiele
- env
- printenv PATH
- echo $HOME
Setzen und Exportieren
- Eine normale Shell-Variable wird mit export zu einer Umgebungsvariablen gemacht.
- Damit steht sie auch in Subshells oder aufgerufenen Programmen zur Verfügung.
- Beispiel
- NAME="Thomas"
- export NAME
- bash # neue Subshell starten
- echo $NAME
Thomas
- Nicht exportierte Variablen
- Variablen, die ohne export definiert werden, sind nur in der aktuellen Shell sichtbar.
- Starte eine neue Shell, um den Unterschied zu testen:
- bash
- echo $NAME
(keine Ausgabe – nicht exportiert)
Temporäre Umgebungsvariablen
- Eine Variable kann auch nur für die Ausführung eines einzelnen Befehls gesetzt werden.
- Diese gilt nur während der Befehlsausführung und wird danach verworfen.
- Beispiel
- LANG=C date
Fri Oct 17 18:45:12 2025
Entfernen von Umgebungsvariablen
- Mit dem Befehl unset können auch Umgebungsvariablen entfernt werden.
- Beispiel
- unset LANG
- echo $LANG
(keine Ausgabe – Variable gelöscht)
Permanente Umgebungsvariablen
- Damit Variablen bei jeder Anmeldung gesetzt werden, können sie in Shell-Startdateien definiert werden.
- Je nach Shell und System unterscheiden sich die Dateien:
- Benutzerabhängig: ~/.bashrc oder ~/.profile
- Systemweit: /etc/environment oder /etc/profile
- Beispiel
- echo 'export EDITOR=vim' >> ~/.bashrc
- source ~/.bashrc
Zusammenfassung
- Shell-Variablen sind lokal – sie gelten nur in der aktuellen Sitzung.
- Umgebungsvariablen sind global – sie werden an Unterprozesse weitergegeben.
- Mit export wird eine Shell-Variable in eine Umgebungsvariable umgewandelt.
- Mit env oder printenv können die aktuellen Umgebungsvariablen angezeigt werden.
Aufgaben
- Erstellen Sie eine Shell-Variable TRAINER und exportieren Sie sie.
- Starten Sie eine neue Bash-Sitzung und prüfen Sie, ob die Variable sichtbar ist.
- Erstellen Sie eine temporäre Umgebungsvariable TESTVAR für den Befehl date.
- Löschen Sie eine bestehende Umgebungsvariable mit unset.
- Tragen Sie eine eigene Variable in ~/.bashrc ein, die bei jedem Login automatisch verfügbar ist.