Umgebungsvariablen sind benannte Werte, die Programme beim Start von der Shell erben — etwa Suchpfade, Editor oder Sprache. Die env-Befehle zeigen diese Variablen an, setzen sie für einzelne Aufrufe und helfen bei der Fehlersuche.

Variablen anzeigen

env                 # zeigt alle exportierten Umgebungsvariablen
env | sort          # sortierte Übersicht
printenv PATH       # zeigt den Wert einer einzelnen Variable
echo $PATH          # Alternative: Wert direkt ausgeben

Variablen setzen und exportieren

Eine Variable existiert zunächst nur in der aktuellen Shell. Erst export macht sie für Kindprozesse sichtbar:

EDITOR=nano                     # nur in der Shell, nicht vererbt
export EDITOR=nano              # wird an Kindprozesse vererbt
export PATH="$PATH:/opt/bin"    # Pfad erweitern (alten Wert mit $PATH übernehmen!)
env EDITOR=vim crontab -e       # Variable nur für diesen einen Aufruf

Wichtige Umgebungsvariablen

  • PATH — Verzeichnisse, in denen die Shell nach ausführbaren Dateien sucht (durch Doppelpunkte getrennt)
  • HOME — das eigene Home-Verzeichnis
  • USER / LOGNAME — aktueller Benutzername
  • SHELL — die aktive Shell (z.B. /bin/bash)
  • LANG / LC_ALL — Sprache und Locale
  • EDITOR — bevorzugter Texteditor für viele Programme

Variablen entfernen und prüfen

unset TEMP_VAR      # Variable entfernen
set | grep PATH     # alle Variablen der Shell anzeigen (auch nicht exportierte)
env -i bash         # Shell mit leerer Umgebung starten (Testumgebung)

Der Unterschied ist wichtig: set zeigt auch Shell-lokale Variablen, env und printenv nur exportierte. export -p listet alle aktuell exportierten Variablen im export-Format.

Praxis-Tipps

  • Beim Erweitern von PATH immer $PATH mit einschließen, sonst verlieren alle Programme ihren Suchpfad.
  • Dauerhafte Einstellungen gehören nach ~/.bashrc (interaktive Shells) oder ~/.profile (Login-Shells).
  • Wer die Umgebung eines Programms debuggen will, startet es mit env und prüft die Ausgabe — das deckt fehlende Variablen sofort auf.

Verwandte Grundlagen: Bash-Befehle, chmod, chown und ln, Shell, Variable, Alias, Pipeline, jobs-Befehle.