Umgebungsvariablen in Linux verwalten
Umgebungsvariablen bieten eine flexible Möglichkeit, das Verhalten von Software zu beeinflussen, ohne den Quellcode anpassen zu müssen. Die meisten Linux-Distributionen enthalten bereits eine Reihe vordefinierter Variablen. Zusätzlich kannst du eigene Variablen anlegen, um Konfigurationsdaten zu speichern, das Verhalten von Anwendungen zu steuern oder Werte zwischen Prozessen und Shell-Skripten auszutauschen.
In dieser Anleitung erfährst du, wie du Umgebungsvariablen in Linux anzeigen, erstellen, bearbeiten und löschen kannst. Außerdem lernst du, wie du Variablen dauerhaft speicherst, systemweit gültige Variablen definierst und sie in Shell-Skripten nutzt.
Vorhandene Umgebungsvariablen anzeigen
Linux-Systeme legen automatisch mehrere Umgebungsvariablen an, beispielsweise HOME, USER, PWD und PATH. Befolge die folgenden Schritte, um sie direkt im Terminal einzusehen.
Alle aktuellen Umgebungsvariablen auflisten
$ env
Ausgabe:
PWD=/home/user
HOME=/home/user
USER=user
PATH=/usr/local/bin:/usr/bin:/bin:/usr/local/games:/usr/games
Alternativ kannst du auch den Befehl printenv ausführen, um alle aktuell gesetzten Umgebungsvariablen anzuzeigen.
Eine einzelne Umgebungsvariable anzeigen
Mit folgendem Befehl gibst du deinen aktuellen Benutzernamen aus:
$ echo $USER
Nach einer bestimmten Variable suchen
Um eine bestimmte Variable im Schlüssel-Wert-Format anzuzeigen, kannst du grep verwenden:
$ env | grep USER
Dasselbe Ergebnis erhältst du auch mit printenv | grep USER.
Temporäre Umgebungsvariablen erstellen
Um eine temporäre Umgebungsvariable in Linux zu erstellen, gib den Variablennamen (in Großbuchstaben) gefolgt von einem Gleichheitszeichen und dem gewünschten Wert an. Solche Variablen gelten nur für die aktuelle Terminalsitzung und werden gelöscht, sobald du die Shell schließt.
Eine neue temporäre Variable definieren
$ GREETING=Hello
Wenn der Wert Leerzeichen enthält, setze ihn in Anführungszeichen:
$ GREETING="Hello World"
Variable exportieren
Damit die Variable auch in untergeordneten Prozessen verfügbar ist, exportiere sie:
$ export GREETING
Variable überprüfen
$ echo $GREETING
Ausgabe:
Hello
Temporäre Umgebungsvariablen bleiben nur während der aktuellen Shell-Sitzung aktiv. Nach dem Schließen des Terminals werden sie automatisch gelöscht.
Umgebungsvariablen dauerhaft speichern
Damit Variablen auch nach dem Schließen des Terminals erhalten bleiben, definiere sie in der Konfigurationsdatei deiner Shell, beispielsweise ~/.bashrc oder ~/.bash_profile (bei Bash). So wird die Variable bei jedem Start einer neuen Sitzung automatisch geladen.
Die Konfigurationsdatei bearbeiten
$ nano ~/.bashrc
Variable hinzufügen
$ export GREETING=Hello
Speichere die Datei und schließe den Editor.
Änderungen anwenden
$ source ~/.bashrc
Dauerhafte Variable prüfen
$ echo $GREETING
Ausgabe:
Hello
Öffne ein neues Terminalfenster und überprüfe, ob die Variable weiterhin vorhanden ist:
$ echo $GREETING
Umgebungsvariablen ändern
Du kannst Umgebungsvariablen entweder temporär oder dauerhaft anpassen. Sei dabei vorsichtig: Manche systeminternen Variablen sind entscheidend für die Stabilität des Systems und sollten nur geändert werden, wenn du genau weißt, was du tust. Stelle außerdem sicher, dass du über die notwendigen Rechte verfügst und die Auswirkungen deiner Änderungen verstehst.
Variable temporär aktualisieren
So änderst du den Wert der GREETING-Variable innerhalb der aktuellen Sitzung:
$ export GREETING=Hi
Überprüfe den neuen Wert:
$ echo $GREETING
Ausgabe:
Hi
Variable dauerhaft anpassen
Um die Änderung permanent zu speichern, öffne erneut die Konfigurationsdatei deiner Shell:
$ nano ~/.bashrc
Ändere die Definition der Variablen folgendermaßen:
$ export GREETING=Hi
Lade die Datei neu, um die Änderungen zu übernehmen:
$ source ~/.bashrc
Umgebungsvariablen löschen
Um eine Umgebungsvariable zu entfernen, verwende den Befehl unset. Wenn die Variable in deiner Shell-Konfigurationsdatei definiert ist, musst du den Eintrag dort ebenfalls löschen, um zu verhindern, dass sie bei zukünftigen Sitzungen erneut geladen wird.
Variable in der aktuellen Sitzung löschen
$ unset GREETING
Löschung überprüfen
$ echo $GREETING
Wenn keine Ausgabe erscheint, wurde die Variable erfolgreich gelöscht.
Beachte, dass unset Variablen nur in der aktuellen Sitzung entfernt. Ist die Variable in einer Konfigurationsdatei (z. B. ~/.bashrc) hinterlegt, wird sie bei einem Neustart der Shell erneut geladen, sofern der Eintrag nicht entfernt wurde.
Globale Umgebungsvariablen erstellen
Standardmäßig gelten Umgebungsvariablen nur für den Benutzer, der sie erstellt hat. Möchtest du Variablen systemweit – also für alle Benutzer und Prozesse – verfügbar machen, füge sie in die Datei /etc/environment ein. Diese Datei wird beim Anmelden eingelesen und verwendet ein einfaches Schlüssel-Wert-Format ohne Shell-spezifische Syntax.
Globale Umgebungsdatei bearbeiten
$ sudo nano /etc/environment
Nur Benutzer mit Administratorrechten dürfen /etc/environment bearbeiten, da Änderungen alle Benutzer betreffen. Speichere keine Passwörter oder sensiblen Daten in dieser Datei, da sie für alle lesbar ist.
Globale Variable hinzufügen
$ GLOBAL_GREETING=Hello
Füge kein export hinzu – die Datei wird vom Modul pam_env verarbeitet, das keine Shell-Befehle oder Schlüsselwörter wie export unterstützt.
Speichere und schließe die Datei, melde dich anschließend ab und wieder an. Die Datei /etc/environment wird nur beim Anmeldevorgang (über SSH, Terminal oder grafische Oberfläche) eingelesen.
Globale Variable prüfen
$ env
Ausgabe:
GLOBAL_GREETING=Hello
Globale Variable mit neuem Benutzer testen
Erstelle ein neues Benutzerkonto:
$ sudo adduser newuser
Wechsle zum neuen Benutzer:
$ su - newuser
Gib das Passwort ein und überprüfe anschließend, ob die globale Variable verfügbar ist:
$ echo $GLOBAL_GREETING
Ausgabe:
Hello
Um die Variable zu entfernen, lösche den entsprechenden Eintrag aus /etc/environment und melde dich erneut ab und an, damit die Änderung übernommen wird.
Umgebungsvariablen in Bash-Skripten verwenden
Du kannst sowohl benutzerdefinierte als auch globale Umgebungsvariablen innerhalb von Bash-Skripten nutzen. Das folgende Beispiel zeigt, wie du die Variable GLOBAL_GREETING in einem einfachen Skript einbindest.
Skript erstellen
$ nano greeting.sh
Skriptinhalt hinzufügen
#!/bin/bash
echo "${GLOBAL_GREETING}! Welcome to centron!"
Setze geschweifte Klammern {} um den Variablennamen, wenn du Sonderzeichen oder Text anhängst. Dadurch wird die Variable klar abgegrenzt – im Beispiel folgt das Ausrufezeichen direkt nach dem Namen ohne Verwechslungsgefahr.
Skript ausführbar machen
$ chmod +x greeting.sh
Skript ausführen
$ ./greeting.sh
Ausgabe:
Hello! Welcome to centron!
Du kannst auch Variablenverschachtelungen innerhalb von Zuweisungen nutzen, zum Beispiel:
GREETING="Hi! $USER"
Bei der Ausführung wird $USER aufgelöst. Solche Erweiterungen funktionieren jedoch nur bei Variablen, die in einer Shell-Konfigurationsdatei wie .bashrc definiert sind – in /etc/environment werden sie nicht ausgewertet.
Fazit
In dieser Anleitung hast du gelernt, wie du Umgebungsvariablen in Linux effizient verwaltest. Du hast gesehen, wie man sie anzeigt, erstellt, ändert und löscht, sie dauerhaft speichert und globale Variablen für alle Benutzer einrichtet. Außerdem weißt du nun, wie man sie in Bash-Skripten nutzt. Mit diesem Wissen kannst du deine Systemkonfiguration besser steuern und Arbeitsabläufe optimieren.


