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

So setzen und löschen Sie lokale, benutzer- und systemweite Umgebungsvariablen in Linux

Umgebungsvariablen sind einige spezielle Variablen, die in der Shell definiert sind und von Programmen während der Ausführung benötigt werden. Sie können systemdefiniert oder benutzerdefiniert sein. Systemdefinierte Variablen sind diejenigen, die vom System gesetzt und von Programmen auf Systemebene verwendet werden.

Für z.B. Der PWD-Befehl ist eine sehr häufige Systemvariable, die zum Speichern des aktuellen Arbeitsverzeichnisses verwendet wird. Benutzerdefinierte Variablen werden normalerweise vom Benutzer festgelegt, entweder vorübergehend für die aktuelle Shell oder dauerhaft. Das ganze Konzept des Setzens und Aufhebens von Umgebungsvariablen dreht sich um eine Reihe von Dateien und wenige Befehle und verschiedene Shells.

Im weiteren Sinne kann es drei Arten von Umgebungsvariablen geben:

1. Lokale Umgebungsvariable

Eine für die aktuelle Sitzung definierte. Diese Umgebungsvariablen gelten nur bis zur aktuellen Sitzung, sei es eine Remote-Anmeldesitzung oder eine lokale Terminalsitzung. Diese Variablen werden in keiner Konfigurationsdatei angegeben und werden mithilfe eines speziellen Befehlssatzes erstellt und entfernt.

2. Benutzerumgebungsvariable

Dies sind die Variablen, die für einen bestimmten Benutzer definiert sind und jedes Mal geladen werden, wenn sich ein Benutzer über eine lokale Terminalsitzung anmeldet oder wenn dieser Benutzer über eine Remote-Anmeldesitzung angemeldet wird. Diese Variablen werden normalerweise in den folgenden Konfigurationsdateien gesetzt und geladen:.bashrc , .bash_profile , .bash_login , .profile Dateien, die im Home-Verzeichnis des Benutzers vorhanden sind.

3. Systemweite Umgebungsvariablen

Dies sind die Umgebungsvariablen, die systemweit verfügbar sind, d. h. für alle Benutzer, die auf diesem System vorhanden sind. Diese Variablen sind in systemweiten Konfigurationsdateien in den folgenden Verzeichnissen und Dateien vorhanden:/etc/environment , /etc/profile , /etc/profile.d/ , /etc/bash.bashrc . Diese Variablen werden jedes Mal geladen, wenn das System eingeschaltet und von einem beliebigen Benutzer entweder lokal oder remote angemeldet wird.

Benutzerweite und systemweite Konfigurationsdateien verstehen

Hier beschreiben wir kurz verschiedene oben aufgeführte Konfigurationsdateien, die Umgebungsvariablen enthalten, entweder systemweit oder benutzerspezifisch.

.bashrc

Diese Datei ist eine benutzerspezifische Datei, die jedes Mal geladen wird, wenn der Benutzer eine neue lokale Sitzung erstellt, d. h. in einfachen Worten, ein neues Terminal öffnet. Alle in dieser Datei erstellten Umgebungsvariablen würden jedes Mal wirksam, wenn eine neue lokale Sitzung gestartet wird.

.bash_profile

Diese Datei ist eine benutzerspezifische Remote-Login-Datei. Die in dieser Datei aufgelisteten Umgebungsvariablen werden jedes Mal aufgerufen, wenn der Benutzer entfernt angemeldet ist, d. h. über eine SSH-Sitzung. Wenn diese Datei nicht vorhanden ist, sucht das System entweder nach .bash_login oder .profile Dateien.

/etc/environment

Diese Datei ist eine systemweite Datei zum Erstellen, Bearbeiten oder Entfernen von Umgebungsvariablen. In dieser Datei erstellte Umgebungsvariablen sind im gesamten System für jeden einzelnen Benutzer sowohl lokal als auch remote zugänglich.

/etc/bash.bashrc

Systemweites bashrc Datei. Diese Datei wird einmal für jeden Benutzer geladen, jedes Mal, wenn dieser Benutzer eine lokale Terminalsitzung öffnet. In dieser Datei erstellte Umgebungsvariablen sind für alle Benutzer zugänglich, jedoch nur über eine lokale Terminalsitzung. Wenn auf einen Benutzer auf diesem Computer über eine Remote-Anmeldesitzung remote zugegriffen wird, sind diese Variablen nicht sichtbar.

/etc/profile

Systemweite Profildatei. Alle in dieser Datei erstellten Variablen sind für jeden Benutzer im System zugänglich, aber nur, wenn die Sitzung dieses Benutzers remote aufgerufen wird, d. h. über Remote-Login. Jede Variable in dieser Datei ist für die lokale Anmeldesitzung nicht zugänglich, d. h. wenn der Benutzer ein neues Terminal auf seinem lokalen System öffnet.

Hinweis :Umgebungsvariablen, die mit systemweit erstellt wurden oder nutzerweit Konfigurationsdateien können entfernt werden, indem sie nur aus diesen Dateien entfernt werden. Melden Sie sich nach jeder Änderung in diesen Dateien entweder ab und wieder an oder geben Sie einfach den folgenden Befehl auf dem Terminal ein, damit die Änderungen wirksam werden:

$ source <file-name>

Lokale oder sitzungsweite Umgebungsvariablen in Linux setzen oder zurücksetzen

Lokale Umgebungsvariablen kann mit folgenden Befehlen erstellt werden:

$ var=value 
OR
$ export var=value

Diese Variablen gelten sitzungsweit und sind nur für die aktuelle Terminalsitzung gültig. Um diese sitzungsweiten Umgebungsvariablen zu löschen, können die folgenden Befehle verwendet werden:

1. Env verwenden

Standardmäßig "env" Der Befehl listet alle aktuellen Umgebungsvariablen auf. Aber, wenn es mit '-i' verwendet wird wechseln, löscht er vorübergehend alle Umgebungsvariablen und lässt den Benutzer einen Befehl in der aktuellen Sitzung ausführen, wenn nicht alle Umgebungsvariablen vorhanden sind.

$ env –i [Var=Value]… command args…

Hier var=value entspricht jeder lokalen Umgebungsvariable, die Sie nur mit diesem Befehl verwenden möchten.

$ env –i bash

Gibt eine Bash-Shell aus, die vorübergehend keine der Umgebungsvariablen enthält. Aber wenn Sie die Shell verlassen, werden alle Variablen wiederhergestellt.

2. Unset verwenden

Eine andere Möglichkeit, die lokale Umgebungsvariable zu löschen, ist die Verwendung des Befehls unset. Um eine lokale Umgebungsvariable vorübergehend zurückzusetzen,

$ unset <var-name>

Wobei var-name ist der Name der lokalen Variablen, die Sie zurücksetzen oder löschen möchten.

3. Setzen Sie den Variablennamen auf „

Eine andere, weniger gebräuchliche Möglichkeit wäre, den Namen der Variablen, die Sie löschen möchten, auf '' zu setzen (Leer). Dies würde den Wert der lokalen Variablen für die aktuelle Sitzung löschen, für die sie aktiv ist.

HINWEIS – SIE KÖNNEN SOGAR MIT DEN WERTEN VON SYSTEM- ODER BENUTZERUMGEBUNGSVARIABLEN SPIELEN UND DIE WERTE ÄNDERN, ABER ÄNDERUNGEN WÜRDEN SICH NUR IN DER AKTUELLEN TERMINALSITZUNG WIDERSPIELEN UND WÄREN NICHT DAUERHAFT.

Erfahren Sie, wie Sie benutzerweite und systemweite Umgebungsvariablen in Linux erstellen

In diesem Abschnitt werden wir anhand der folgenden Beispiele lernen, wie lokale, benutzer- und systemweite Umgebungsvariablen in Linux gesetzt oder aufgehoben werden:

1. Lokale Variablen in Linux setzen und zurücksetzen

a.) Hier erstellen wir eine lokale Variable VAR1 und auf einen beliebigen Wert setzen. Dann verwenden wir unset, um diese lokale Variable zu entfernen, und am Ende wird diese Variable entfernt.

$ VAR1='TecMint is best Site for Linux Articles'
$ echo $VAR1
$ unset VAR1
$ echo $VAR1

b.) Eine andere Möglichkeit, eine lokale Variable zu erstellen, ist die Verwendung von export Befehl. Die erstellte lokale Variable steht für die aktuelle Sitzung zur Verfügung. Um die Variable zu deaktivieren, setzen Sie einfach den Wert der Variable auf '' .

$ export VAR='TecMint is best Site for Linux Articles'
$ echo $VAR
$ VAR=
$ echo $VAR

c.) Hier haben wir eine lokale Variable VAR2 erstellt und auf einen Wert setzen. Um dann einen Befehl auszuführen, der vorübergehend alle lokalen und anderen Umgebungsvariablen löscht, haben wir 'env –i' ausgeführt Befehl. Dieser Befehl hier führte die Bash-Shell aus, indem er alle anderen Umgebungsvariablen löschte. Nach Eingabe von 'exit' Auf der aufgerufenen Bash-Shell würden alle Variablen wiederhergestellt.

$ VAR2='TecMint is best Site for Linux Articles'
$ echo $VAR2
$ env -i bash
$ echo $VAR2   

2. Setzen und setzen Sie benutzerweite Umgebungsvariablen in Linux

a.) Ändern Sie .bashrc Datei in Ihrem Home-Verzeichnis zum Exportieren oder Festlegen der Umgebungsvariable, die Sie hinzufügen müssen. Danach Quelle die Datei, damit die Änderungen wirksam werden. Dann würden Sie die Variable ('CD' in meinem Fall), in Kraft treten. Diese Variable ist jedes Mal verfügbar, wenn Sie ein neues Terminal für diesen Benutzer öffnen, aber nicht für Remote-Login-Sitzungen.

$ vi .bashrc

Fügen Sie die folgende Zeile zu .bashrc hinzu Datei ganz unten.

export CD='This is TecMint Home'

Führen Sie nun den folgenden Befehl aus, um neue Änderungen vorzunehmen und zu testen.

$ source .bashrc 
$ echo $CD

Um diese Variable zu entfernen, entfernen Sie einfach die folgende Zeile in .bashrc Datei und resource sie:

b.) Um eine Variable hinzuzufügen, die für Remote-Anmeldesitzungen verfügbar ist (d. h. wenn Sie vom Remote-System eine SSH-Verbindung zum Benutzer herstellen), ändern Sie .bash_profile Datei.

$ vi .bash_profile

Fügen Sie die folgende Zeile zu .bash_profile hinzu Datei ganz unten.

export VAR2='This is TecMint Home'

Beim Sourcing dieser Datei wird die Variable verfügbar sein, wenn Sie ssh zu diesem Benutzer senden, aber nicht beim Öffnen eines neuen lokalen Terminals.

$ source .bash_profile 
$ echo $VAR2

Hier VAR2 ist anfangs nicht verfügbar, aber wenn Sie ssh an den Benutzer auf localhost senden, wird die Variable verfügbar.

$ ssh [email protected]
$ echo $VAR2

Um diese Variable zu entfernen, entfernen Sie einfach die Zeile in .bash_profile Datei, die Sie hinzugefügt haben, und geben Sie die Datei neu ein.

HINWEIS :Diese Variablen sind jedes Mal verfügbar, wenn Sie als aktueller Benutzer angemeldet sind, aber nicht für andere Benutzer.

3. Setzen und setzen Sie systemweite Umgebungsvariablen in Linux

a.) Um eine systemweite No-Login-Variable hinzuzufügen (d. h. eine, die für alle Benutzer verfügbar ist, wenn einer von ihnen ein neues Terminal öffnet, aber nicht, wenn ein Benutzer der Maschine remote zugreift), fügen Sie die Variable zu /etc/bash.bashrc Datei.

export VAR='This is system-wide variable'

Sourcen Sie danach die Datei.

$ source /etc/bash.bashrc 

Jetzt ist diese Variable für jeden Benutzer verfügbar, wenn er ein neues Terminal öffnet.

$ echo $VAR
$ sudo su
$ echo $VAR
$ su -
$ echo $VAR

Hier ist dieselbe Variable für root verfügbar Benutzer sowie normaler Benutzer. Sie können dies überprüfen, indem Sie sich bei einem anderen Benutzer anmelden.

b.) Wenn Sie möchten, dass eine Umgebungsvariable verfügbar ist, wenn ein Benutzer auf Ihrem Computer remote angemeldet ist, aber nicht beim Öffnen eines neuen Terminals auf dem lokalen Computer, müssen Sie die Datei bearbeiten – '/etc/profile' .

export VAR1='This is system-wide variable for only remote sessions'

Nachdem Sie die Variable hinzugefügt haben, geben Sie die Datei einfach neu ein. Dann wäre die Variable verfügbar.

$ source /etc/profile
$ echo $VAR1

Um diese Variable zu entfernen, entfernen Sie die Zeile aus /etc/profile Datei und resource sie.

c.) Wenn Sie jedoch eine Umgebung hinzufügen möchten, die im gesamten System verfügbar sein soll, sowohl bei Remote-Anmeldesitzungen als auch bei lokalen Sitzungen (d. h. beim Öffnen eines neuen Terminalfensters) für alle Benutzer, exportieren Sie einfach die Variable in /etc/environment Datei.

export VAR12='I am available everywhere'

Danach nur noch die Datei sourcen und die Änderungen werden wirksam.

$ source /etc/environment
$ echo $VAR12
$ sudo su
$ echo $VAR12
$ exit
$ ssh localhost
$ echo $VAR12

Wie wir sehen, ist die Umgebungsvariable hier für normale Benutzer, Root-Benutzer sowie für Remote-Anmeldesitzungen verfügbar (hier für localhost ).

Um diese Variable zu löschen, entfernen Sie einfach den Eintrag in /etc/environment Datei und laden Sie sie neu oder melden Sie sich erneut an.

HINWEIS :Änderungen werden wirksam, wenn Sie die Datei als Quelle verwenden. Aber wenn nicht, müssen Sie sich möglicherweise abmelden und erneut anmelden.

Schlussfolgerung

Dies sind also einige Möglichkeiten, wie wir die Umgebungsvariablen ändern können. Wenn Sie neue und interessante Tricks für dasselbe finden, erwähnen Sie dies in Ihren Kommentaren.


Linux
  1. So legen Sie den System-Hostnamen unter Linux fest oder ändern ihn

  2. Linux-Umgebungsvariablen:Lesen und Festlegen auf einem Linux-VPS

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

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

  5. So setzen Sie Linux-Umgebungsvariablen mit Ansible

So setzen und listen Sie Umgebungsvariablen in Linux auf

So legen Sie den Hostnamen unter Linux fest oder ändern ihn

So setzen und listen Sie Umgebungsvariablen in Linux auf

So setzen/löschen Sie Umgebungsvariablen in Linux

So ändern oder setzen Sie das Benutzerkennwort in Linux

So setzen und löschen Sie Umgebungsvariablen unter Linux