Umgebungsvariablen

Aus Xinux Wiki
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.