GNU/Linux >> LINUX-Kenntnisse >  >> Linux

So setzen und listen Sie Umgebungsvariablen in Linux auf

In Linux- und Unix-basierten Systemen sind Umgebungsvariablen ein Satz dynamisch benannter Werte, die im System gespeichert sind und von Anwendungen verwendet werden, die in Shells oder Subshells gestartet werden. Einfach ausgedrückt ist eine Umgebungsvariable eine Variable mit einem Namen und einem zugeordneten Wert.

Mit Umgebungsvariablen können Sie die Funktionsweise des Systems und das Verhalten der Anwendungen auf dem System anpassen. Beispielsweise kann die Umgebungsvariable Informationen über den Standard-Texteditor oder -Browser, den Pfad zu ausführbaren Dateien oder die Gebietsschema- und Tastaturlayouteinstellungen des Systems speichern.

In dieser Anleitung erklären wir das Lesen und Setzen von Umgebungs- und Shell-Variablen.

Umgebungsvariablen und Shellvariablen #

Variablen haben das folgende Format:

KEY=value
KEY="Some other value"
KEY=value1:value2
  • Bei den Namen der Variablen wird zwischen Groß- und Kleinschreibung unterschieden. Per Konvention sollten Umgebungsvariablen Namen in GROSSBUCHSTABEN haben.
  • Wenn Sie der Variablen mehrere Werte zuweisen, müssen diese durch den Doppelpunkt : getrennt werden Charakter.
  • Es gibt kein Leerzeichen um die Gleichheit = Symbol.

Variablen können in zwei Hauptkategorien eingeteilt werden, Umgebungsvariablen und Shell-Variablen.

Umgebungsvariablen sind Variablen, die systemweit verfügbar sind und von allen erzeugten 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 , hat seinen eigenen Satz interner Shell-Variablen.

Es sind mehrere Befehle verfügbar, mit denen Sie Umgebungsvariablen unter Linux auflisten und festlegen können:

  • env – Mit dem 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 ausgegeben.
  • printenv – Der Befehl gibt alle oder die angegebenen Umgebungsvariablen aus.
  • set – Der Befehl setzt Shell-Variablen oder setzt sie zurück. Wenn es ohne Argument verwendet wird, gibt es eine Liste aller Variablen aus, einschließlich Umgebungs- und Shell-Variablen und Shell-Funktionen.
  • unset – Der Befehl löscht Shell- und Umgebungsvariablen.
  • export – Der Befehl setzt Umgebungsvariablen.

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 ist, printenv gibt eine Liste aller Umgebungsvariablen aus, eine Variable pro Zeile.

Zum Beispiel, um den Wert von HOME anzuzeigen Umgebungsvariable, die Sie ausführen würden:

printenv HOME

Die Ausgabe gibt den Pfad des aktuell angemeldeten Benutzers aus:

/home/linuxize

Sie können auch mehr als ein Argument an printenv übergeben Befehl:

printenv LANG PWD
en_US
/home/linuxize

Wenn Sie printenv ausführen oder env Befehl ohne Argumente zeigt eine Liste aller Umgebungsvariablen:

printenv

Die Ausgabe sieht in etwa 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

Nachfolgend sind einige der häufigsten Umgebungsvariablen aufgeführt:

  • USER - Der aktuell angemeldete Benutzer.
  • HOME - Das Home-Verzeichnis des aktuellen Benutzers.
  • EDITOR - Der standardmäßig zu verwendende Dateieditor. Dies ist der Editor, der verwendet wird, wenn Sie edit eingeben in Ihrem Terminal.
  • SHELL - Der Pfad der Shell des aktuellen Benutzers, z. B. bash oder zsh.
  • LOGNAME - Der Name des aktuellen Benutzers.
  • PATH - Eine Liste von Verzeichnissen, 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 printenv und env Befehle geben nur die Umgebungsvariablen aus. Wenn Sie eine Liste aller Variablen erhalten möchten, einschließlich Umgebung, Shell und Variablen sowie Shell-Funktionen, können Sie das set verwenden Befehl:

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 less weiterleiten möchten Befehl.

set | less

Sie können auch den echo-Befehl verwenden, um eine Shell-Variable auszugeben. Zum Beispiel, um den Wert von BASH_VERSION zu drucken Variable, die Sie ausführen würden:

echo $BASH_VERSION
4.4.19(1)-release

Umgebungsvariablen setzen #

Um den Unterschied zwischen den Shell- und Umgebungsvariablen besser zu veranschaulichen, beginnen wir mit dem Festlegen von Shell-Variablen und fahren dann mit den Umgebungsvariablen fort.

So erstellen Sie eine neue Shell-Variable mit dem Namen MY_VAR und Wert Linuxize Geben Sie einfach ein:

MY_VAR='Linuxize'

Sie können überprüfen, ob die Variable gesetzt ist, indem Sie entweder echo $MY_VAR verwenden die Ausgabe des set-Befehls mit grepset | grep MY_VAR :

echo $MY_VAR
Linuxize

Verwenden Sie den printenv Befehl, um zu prü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 neuen Shell auszugeben, und Sie erhalten eine leere Ausgabe.

bash -c 'echo $MY_VAR'

Der export Befehl wird verwendet, um Umgebungsvariablen zu setzen.

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

Wenn Sie diesmal versuchen, die Variable in einer neuen Shell auszudrucken, erhalten Sie den Variablennamen auf Ihrem Terminal ausgegeben:

bash -c 'echo $MY_VAR'
Linuxize

Sie können Umgebungsvariablen auch in einer einzigen Zeile setzen:

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 gesetzt:

    FOO=barVAR_TEST="Test Var"
  • /etc/profile - In dieser Datei festgelegte Variablen werden geladen, wenn eine Bash-Anmeldeshell aufgerufen wird. Beim Deklarieren von Umgebungsvariablen in dieser Datei müssen Sie den export verwenden Befehl:

    export JAVA_HOME="/path/to/java/home"export PATH=$PATH:$JAVA_HOME/bin
  • Shell-spezifische Konfigurationsdateien pro Benutzer. Wenn Sie beispielsweise Bash verwenden, können Sie die Variablen in ~/.bashrc deklarieren :

    export PATH="$HOME/bin:$PATH"

Um die neuen Umgebungsvariablen in die aktuelle Shell-Sitzung zu laden, verwenden Sie die source Befehl:

source ~/.bashrc

Schlussfolgerung #

In dieser Anleitung haben wir Ihnen gezeigt, wie Sie Umgebungs- und Shell-Variablen setzen und auflisten.

Fühlen Sie sich frei, einen Kommentar zu hinterlassen, wenn Sie Fragen haben.


Linux
  1. So verwalten und listen Sie Dienste in Linux auf

  2. So setzen/erstellen Sie Umgebungs- und Shell-Variablen in Linux

  3. Beispiele für Linux-Exportbefehle (Festlegen von Umgebungsvariablen)

  4. So setzen Sie Linux-Umgebungsvariablen mit Ansible

  5. Wie druckt man scheinbar versteckte Umgebungsvariablen?

So setzen und listen Sie Umgebungsvariablen in Linux auf

So setzen/löschen Sie Umgebungsvariablen in Linux

So listen Sie Benutzer und Gruppen unter Linux auf

So stellen Sie Datum und Uhrzeit unter Linux ein

So setzen und löschen Sie Umgebungsvariablen unter Linux

Linux-Umgebungsvariablen