Android

So setzen und listen Sie Umgebungsvariablen unter Linux auf

Umgebungsvariablen und Systemvariablen im Einsatz

Umgebungsvariablen und Systemvariablen im Einsatz

Inhaltsverzeichnis:

Anonim

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 Terminal edit 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

4.4.19(1)-release

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 Befehl export :

    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:

source ~/.bashrc

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.

Terminal