Übersicht

In diesem Tutorial lernen Sie, wie Sie Umgebungsvariablen in Ubuntu, CentOS, Red Hat, im Grunde jeder Linux-Distribution für einen einzelnen Benutzer und global für alle Benutzer setzen. Sie werden auch lernen, wie man alle Umgebungsvariablen auflistet und wie man bestehende Umgebungsvariablen löscht.

Umgebungsvariablen werden häufig innerhalb der Bash-Shell verwendet. Sie sind auch ein gängiges Mittel, um Dienste zu konfigurieren und mit Geheimnissen von Webanwendungen umzugehen.

Es ist nicht ungewöhnlich, dass umgebungsspezifische Informationen, wie z. B. Endpunkte und Passwörter, als Umgebungsvariablen auf einem Server gespeichert werden. Sie werden auch verwendet, um die wichtigen Verzeichnisse für viele populäre Pakete zu setzen, wie z. B. JAVA_HOME für Java.

Setzen einer Umgebungsvariablen

Um eine Umgebungsvariable zu setzen, wird der Befehl export verwendet. Wir geben der Variablen einen Namen, mit dem wir in Shell-Skripten und Konfigurationen darauf zugreifen können, und dann einen Wert, der die Daten enthält, die in der Variablen benötigt werden.

export NAME=VALUE

Um zum Beispiel die Umgebungsvariable für das Home-Verzeichnis einer manuellen OpenJDK 11-Installation zu setzen, würden wir etwas Ähnliches wie das Folgende verwenden.

export JAVA_HOME=/opt/openjdk11

Um den Wert der Umgebungsvariablen über die Shell auszugeben, verwenden wir den Befehl echo und stellen dem Variablennamen ein Dollarzeichen ($) voran.

echo $JAVA_HOME

Solange die Variable einen Wert hat, wird dieser ausgegeben. Wenn kein Wert gesetzt ist, wird stattdessen eine leere Zeile ausgegeben.

Entfernen einer Umgebungsvariablen

Um eine Umgebungsvariable zu entfernen, was ihre Existenz komplett aufhebt, verwenden wir den Befehl unset. Die Umgebungsvariable einfach durch eine leere Zeichenkette zu ersetzen, wird sie nicht entfernen und in den meisten Fällen wahrscheinlich zu Problemen mit Skripten oder Anwendungen führen, die einen gültigen Wert erwarten.

Die folgende Syntax wird verwendet, um eine Umgebungsvariable zurückzusetzen

unset VARIABLE_NAME

Beispielsweise würden wir den folgenden Befehl verwenden, um die Umgebungsvariable JAVA_HOME zurückzusetzen.

unset JAVA_HOME

Auflistung aller gesetzten Umgebungsvariablen

Um alle Umgebungsvariablen aufzulisten, verwenden wir einfach den set-Befehl ohne Argumente.

set

Ein Beispiel für die Ausgabe würde in etwa so aussehen wie das folgende, das der Kürze halber gekürzt wurde.

BASH=/bin/bashBASHOPTS=checkwinsize:cmdhist:complete_fullquote:expand_aliases:extglob:extquote:force_fignore:globasciiranges:histappend:interactive_comments:login_shell:progcomp:promptvars:sourcepath BASH_ALIASES=() BASH_ARGC=(="0") BASH_ARGV=() BASH_CMDS=() BASH_COMPLETION_VERSINFO=(="2" ="8") BASH_LINENO=() BASH_SOURCE=() BASH_VERSINFO=(="5" ="0" ="3" ="1" ="release" ="x86_64-pc-linux-gnu") BASH_VERSION='5.0.3(1)-release' COLUMNS=208 DIRSTACK=() EUID=1000 GROUPS=() HISTCONTROL=ignoreboth HISTFILE=/home/ubuntu/.bash_history HISTFILESIZE=2000 HISTSIZE=1000 HOME=/home/ubuntu HOSTNAME=ubuntu1904 HOSTTYPE=x86_64 IFS=$' \t\n' LANG=en_US.UTF-8 LESSCLOSE='/usr/bin/lesspipe %s %s' LESSOPEN='| /usr/bin/lesspipe %s' LINES=54

Bestehende Umgebungsvariablen für einen Benutzer

Wenn eine Umgebungsvariable von der Shell mit dem Befehl export gesetzt wird, endet ihre Existenz, wenn die Sitzung des Benutzers endet. Das ist problematisch, wenn die Variable über Sitzungen hinweg bestehen bleiben soll.

Um eine Umgebungsvariable für die Umgebung eines Benutzers beständig zu machen, exportieren wir die Variable aus dem Profilskript des Benutzers.

  1. Öffnen Sie das Profil des aktuellen Benutzers in einem Texteditor
    vi ~/.bash_profile
  2. Fügen Sie den Export-Befehl für jede Umgebungsvariable ein, die Sie persistent machen wollen.
    export JAVA_HOME=/opt/openjdk11
  3. Speichern Sie Ihre Änderungen.

Das Hinzufügen der Umgebungsvariablen zum Bash-Profil eines Benutzers allein exportiert sie nicht automatisch. Die Variable wird jedoch exportiert, wenn sich der Benutzer das nächste Mal anmeldet.

Um alle Änderungen an bash_profile sofort anzuwenden, verwenden Sie den Befehl source.

source ~/.bash_profile

Umgebungsvariable exportieren

Export ist ein eingebauter Shell-Befehl für die Bash, der verwendet wird, um eine Umgebungsvariable zu exportieren, damit neue Kindprozesse sie erben können.

Um eine Umgebungsvariable zu exportieren, führen Sie den Befehl export aus, während Sie die Variable setzen.

export MYVAR="my variable value"

Eine vollständige Liste der exportierten Umgebungsvariablen erhalten wir, indem wir den export-Befehl ohne Argumente ausführen.

export
SHELL=/bin/zshSHLVL=1SSH_AUTH_SOCK=/private/tmp/com.apple.launchd.1pB5Pry8Id/ListenersTERM=xterm-256colorTERM_PROGRAM=vscodeTERM_PROGRAM_VERSION=1.48.2

Um alle exportierten Variablen in der aktuellen Shell zu sehen, verwenden Sie das -p Flag mit export.

export -p

Dauerhafte globale Umgebungsvariablen für alle Benutzer setzen

Eine dauerhafte Umgebungsvariable, die nach einem Neustart bestehen bleibt, kann durch Hinzufügen zum Standardprofil erstellt werden. Dieses Profil wird von allen Benutzern auf dem System geladen, einschließlich der Dienstkonten.

Alle globalen Profileinstellungen werden unter /etc/profile gespeichert. Und obwohl diese Datei im Verzeichnis /etc/profile.d bearbeitet werden kann, wird tatsächlich empfohlen, globale Umgebungsvariablen in einem Verzeichnis namens /etc/profile.d zu speichern, in dem Sie eine Liste von Dateien finden, die zum Setzen von Umgebungsvariablen für das gesamte System verwendet werden.

  1. Erstellen Sie eine neue Datei unter /etc/profile.d, um die globale(n) Umgebungsvariable(n) zu speichern. Der Name der Datei sollte kontextabhängig sein, damit andere ihren Zweck verstehen können. Zur Demonstration werden wir eine permanente Umgebungsvariable für HTTP_PROXY anlegen.
    sudo touch /etc/profile.d/http_proxy.sh
  2. Öffnen Sie das Standardprofil in einem Texteditor.
    sudo vi /etc/profile.d/http_proxy.sh
  3. Fügen Sie neue Zeilen zum Exportieren der Umgebungsvariablen ein
    export HTTP_PROXY=http://my.proxy:8080

    export HTTPS_PROXY=https://my.proxy:8080

    export NO_PROXY=localhost,::1,.example.com
  4. Speichern Sie die Änderungen und beenden Sie den Texteditor

Abschluss

In dieser Anleitung wurde das Setzen und Entfernen von Umgebungsvariablen für alle Linux-Distributionen behandelt, von Debian bis Red Hat. Sie haben auch gelernt, wie Sie Umgebungsvariablen für einen einzelnen Benutzer sowie für alle Benutzer setzen können.

Schreibe einen Kommentar

Deine E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind mit * markiert.