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
$ envAusgabe:
PWD=/home/user
HOME=/home/user
USER=user
PATH=/usr/local/bin:/usr/bin:/bin:/usr/local/games:/usr/gamesAlternativ 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 $USERNach einer bestimmten Variable suchen
Um eine bestimmte Variable im Schlüssel-Wert-Format anzuzeigen, kannst du grep verwenden:
$ env | grep USERDasselbe Ergebnis erhältst du auch mit printenv | grep USER.
Passende Infrastruktur bei centron
Zum Ausprobieren braucht es keine eigene Hardware: ccloud³ VMs mit vollem Root-Zugriff gibt es ab 3,12 € im Monat, stundengenau abgerechnet und in Sekunden bereit. Cloud Server mieten →
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=HelloWenn 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 GREETINGVariable überprüfen
$ echo $GREETINGAusgabe:
HelloTemporä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 ~/.bashrcVariable hinzufügen
$ export GREETING=HelloSpeichere die Datei und schließe den Editor.
Änderungen anwenden
$ source ~/.bashrcDauerhafte Variable prüfen
$ echo $GREETINGAusgabe:
HelloÖffne ein neues Terminalfenster und überprüfe, ob die Variable weiterhin vorhanden ist:
$ echo $GREETINGUmgebungsvariablen ä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 $GREETINGAusgabe:
HiVariable 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=HiLade die Datei neu, um die Änderungen zu übernehmen:
$ source ~/.bashrcUmgebungsvariablen 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 GREETINGLöschung überprüfen
$ echo $GREETINGWenn 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/environmentNur 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=HelloFü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
$ envAusgabe:
GLOBAL_GREETING=HelloGlobale Variable mit neuem Benutzer testen
Erstelle ein neues Benutzerkonto:
$ sudo adduser newuserWechsle zum neuen Benutzer:
$ su - newuserGib das Passwort ein und überprüfe anschließend, ob die globale Variable verfügbar ist:
$ echo $GLOBAL_GREETINGAusgabe:
HelloUm 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.shSkriptinhalt 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.shSkript ausführen
$ ./greeting.shAusgabe:
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.
Testen Sie Ihr Setup auf ccloud³
Registrieren Sie sich in der ccloud³ und erhalten Sie 200 € Startguthaben für Ihr Projekt – z. B. für eine PostgreSQL-VM mit automatischen Backups.