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.