Umgebungsvariablen und Systemvariablen im Einsatz
Inhaltsverzeichnis:
- Umgebungsvariablen und Shell-Variablen
- Umgebungsvariablen auflisten
- Umgebungsvariablen setzen
- Persistente Umgebungsvariablen
- Fazit
In Linux- und Unix-basierten Systemen sind Umgebungsvariablen eine Reihe dynamischer benannter Werte, die im System gespeichert sind und von Anwendungen verwendet werden, die in Shells oder Subshells gestartet werden. In einfachen Worten ist eine Umgebungsvariable eine Variable mit einem Namen und einem zugehörigen Wert.
Mit Umgebungsvariablen können Sie die Funktionsweise des Systems und das Verhalten der Anwendungen auf dem System anpassen. Beispielsweise kann die Umgebungsvariable Informationen zum Standardtexteditor oder -browser, zum Pfad zu ausführbaren Dateien oder zu den Einstellungen für das Gebietsschema und das Tastaturlayout des Systems speichern.
In diesem Handbuch wird das Lesen und Festlegen von Umgebungs- und Shell-Variablen erläutert.
Umgebungsvariablen und Shell-Variablen
Variablen haben folgendes Format:
KEY=value KEY="Some other value" KEY=value1:value2
- Die Namen der Variablen unterscheiden zwischen Groß- und Kleinschreibung. Umgebungsvariablen sollten gemäß der Konvention UPPER CASE-Namen haben. Wenn Sie der Variablen mehrere Werte zuweisen, müssen diese durch den Doppelpunkt getrennt werden
:
character.There ist kein Leerzeichen um das Gleichheitszeichen=
.
Variablen können in zwei Hauptkategorien unterteilt werden: Umgebungsvariablen und Shell-Variablen.
Umgebungsvariablen sind Variablen, die systemweit verfügbar sind und von allen untergeordneten Prozessen und Shells geerbt werden.
Shell-Variablen sind Variablen, die nur für die aktuelle Shell-Instanz gelten. Jede Shell wie
zsh
und
bash
verfügt über einen eigenen Satz interner Shellvariablen.
Es gibt verschiedene Befehle, mit denen Sie Umgebungsvariablen in Linux auflisten und festlegen können:
-
env
- Mit diesem Befehl können Sie ein anderes Programm in einer benutzerdefinierten Umgebung ausführen, ohne das aktuelle zu ändern. Bei Verwendung ohne Argument wird eine Liste der aktuellen Umgebungsvariablen gedruckt.printenv
- Der Befehl druckt alle oder die angegebenen Umgebungsvariablen.set
- Der Befehl setzt oder deaktiviert Shell-Variablen. Bei Verwendung ohne Argument wird eine Liste aller Variablen gedruckt, einschließlich Umgebungs- und Shell-Variablen sowie Shell-Funktionen.unset
- Der Befehl löscht Shell- und Umgebungsvariablen.export
- Der Befehl legt Umgebungsvariablen fest.
Umgebungsvariablen auflisten
Der am häufigsten verwendete Befehl zum Anzeigen der Umgebungsvariablen ist
printenv
. Wenn der Name der Variablen als Argument an den Befehl übergeben wird, wird nur der Wert dieser Variablen angezeigt. Wenn kein Argument angegeben wird, druckt
printenv
eine Liste aller Umgebungsvariablen, eine Variable pro Zeile.
Um beispielsweise den Wert der Umgebungsvariablen
HOME
anzuzeigen, führen Sie Folgendes aus:
printenv HOME
Die Ausgabe gibt den Pfad des aktuell angemeldeten Benutzers aus:
/home/linuxize
Sie können dem Befehl
printenv
auch mehrere Argumente
printenv
:
printenv LANG PWD
en_US /home/linuxize
printenv
Die Ausgabe sieht ungefähr so aus:
LS_COLORS=rs=0:di=01;34:ln=01;36:mh=00:pi=40;33:so=01;35;… LESSCLOSE=/usr/bin/lesspipe %s %s LANG=en_US S_COLORS=auto XDG_SESSION_ID=5 USER=linuxize PWD=/home/linuxize HOME=/home/linuxize SSH_CLIENT=192.168.121.1 34422 22 XDG_DATA_DIRS=/usr/local/share:/usr/share:/var/lib/snapd/desktop SSH_TTY=/dev/pts/0 MAIL=/var/mail/linuxize TERM=xterm-256color SHELL=/bin/bash SHLVL=1 LANGUAGE=en_US: LOGNAME=linuxize XDG_RUNTIME_DIR=/run/user/1000 PATH=/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/games:/usr/local/games:/snap/bin LESSOPEN=| /usr/bin/lesspipe %s _=/usr/bin/printenv
Im Folgenden sind einige der häufigsten Umgebungsvariablen aufgeführt:
-
USER
- Der aktuell angemeldete Benutzer.HOME
- Das Home-Verzeichnis des aktuellen Benutzers.EDITOR
- Der zu verwendende Standard-Datei-Editor. Dies ist der Editor, der verwendet wird, wenn Sie in Ihrem Terminaledit
eingeben.SHELL
- Der Pfad der Shell des aktuellen Benutzers, z. B. bash oder zsh.LOGNAME
- Der Name des aktuellen Benutzers.PATH
- Eine Liste der Verzeichnisse, die beim Ausführen von Befehlen durchsucht werden sollen. Wenn Sie einen Befehl ausführen, durchsucht das System diese Verzeichnisse in dieser Reihenfolge und verwendet die erste gefundene ausführbare Datei.LANG
- Die aktuellen Gebietsschemaeinstellungen.TERM
- Die aktuelle Terminalemulation.MAIL
- Speicherort der E-Mails des aktuellen Benutzers.
Die Befehle
printenv
und
env
nur die Umgebungsvariablen aus. Wenn Sie eine Liste aller Variablen erhalten möchten, einschließlich der Umgebung, der Shell und der Variablen sowie der Shell-Funktionen, können Sie den Befehl
set
:
set
BASH=/bin/bash BASHOPTS=checkwinsize:cmdhist:complete_fullquote:expand_aliases:extglob:extquote:force_fignore:histappend:interactive_comments:login_shell:progcomp:promptvars:sourcepath BASH_ALIASES=() BASH_ARGC=() BASH_ARGV=()
Der Befehl zeigt eine große Liste aller Variablen an, sodass Sie die Ausgabe wahrscheinlich an den Befehl
less
weiterleiten möchten.
set | less
Sie können auch den Befehl echo verwenden, um eine Shell-Variable zu drucken. Um beispielsweise den Wert der Variablen
BASH_VERSION
zu drucken, würden Sie
BASH_VERSION
ausführen:
echo $BASH_VERSION
Umgebungsvariablen setzen
Um den Unterschied zwischen Shell- und Umgebungsvariablen besser zu veranschaulichen, beginnen wir mit dem Festlegen von Shell-Variablen und gehen dann zu den Umgebungsvariablen über.
Um eine neue Shell-Variable mit dem Namen
MY_VAR
und dem Wert
Linuxize
zu erstellen, geben
Linuxize
einfach
Linuxize
:
MY_VAR='Linuxize'
Sie können überprüfen, ob die Variable gesetzt ist, indem Sie entweder
echo $MY_VAR
zum Filtern der Ausgabe des Befehls set mit grep
set | grep MY_VAR
set | grep MY_VAR
:
echo $MY_VAR
Linuxize
Verwenden Sie den Befehl
printenv
um zu überprüfen, ob diese Variable eine Umgebungsvariable ist oder nicht:
printenv MY_VAR
Die Ausgabe ist leer, was uns sagt, dass die Variable keine Umgebungsvariable ist.
Sie können auch versuchen, die Variable in einer Unterschale zu drucken, und Sie erhalten eine leere Ausgabe.
bash -c 'echo $MY_VAR'
Mit dem Befehl
export
Umgebungsvariablen festgelegt.
Um eine Umgebungsvariable zu erstellen, exportieren Sie einfach die Shell-Variable als Umgebungsvariable:
export MY_VAR
Sie können dies überprüfen, indem Sie Folgendes ausführen:
printenv MY_VAR
Linuxize
bash -c 'echo $MY_VAR'
Linuxize
Sie können Umgebungsvariablen auch in einer einzelnen Zeile festlegen:
export MY_NEW_VAR="My New Var"
Auf diese Weise erstellte Umgebungsvariablen sind nur in der aktuellen Sitzung verfügbar. Wenn Sie eine neue Shell öffnen oder sich abmelden, gehen alle Variablen verloren.
Persistente Umgebungsvariablen
Um Umgebungsvariablen persistent zu machen, müssen Sie diese Variablen in den bash-Konfigurationsdateien definieren. In den meisten Linux-Distributionen werden beim Starten einer neuen Sitzung Umgebungsvariablen aus den folgenden Dateien gelesen:
-
/etc/environment
- Verwenden Sie diese Datei, um systemweite Umgebungsvariablen einzurichten. Variablen in dieser Datei werden im folgenden Format festgelegt:FOO=bar
VAR_TEST="Test Var"
/etc/profile
- In dieser Datei festgelegte Variablen werden geladen, wenn eine Bash-Anmeldeshell eingegeben wird. Wenn Sie Umgebungsvariablen in dieser Datei deklarieren, müssen Sie den Befehlexport
:export JAVA_HOME="/path/to/java/home"
export PATH=$PATH:$JAVA_HOME/bin
Shell-spezifische Konfigurationsdateien für jeden Benutzer. Wenn Sie beispielsweise Bash verwenden, können Sie die Variablen in
~/.bashrc
:export PATH="$HOME/bin:$PATH"
Verwenden Sie den Befehl
source
um die neuen Umgebungsvariablen in die aktuelle Shell-Sitzung zu laden:
Fazit
In diesem Handbuch haben wir Ihnen gezeigt, wie Sie Umgebungs- und Shell-Variablen festlegen und auflisten.
Fühlen Sie sich frei, einen Kommentar zu hinterlassen, wenn Sie Fragen haben.
TerminalSetzen Sie den Xirrus Wi-Fi Inspector auf den Fall des Wonky Wireless Hot Spot
Detaillierte Informationen über Wi-Fi erhalten Fi-Netzwerke und Hilfe bei der Fehlerbehebung.
Listen Sie Ihre Lieblingsunternehmen unter Windows 8 Finance App
Dieser Artikel zeigt Ihnen, wie Sie Ihre Lieblingsunternehmen unter Windows 8 Finance App Watchlist und Stecken Sie es in Ihren Startbildschirm.
So listen Sie installierte Pakete auf Centos auf
In diesem Tutorial zeigen wir Ihnen, wie Sie installierte Pakete unter CentOS auflisten und filtern. Zu wissen, wie installierte Pakete auf Ihrem CentOS-System aufgelistet werden, kann hilfreich sein, wenn Sie dieselben Pakete auf einem anderen Computer installieren müssen oder wenn Sie Ihr System neu installieren möchten.