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 werden und von Programmen auf Systemebene verwendet werden.
Für z.B. PWD Befehl ist eine sehr verbreitete Systemvariable, die zum Speichern des aktuellen Arbeitsverzeichnisses verwendet wird. Benutzerdefinierte Variablen werden normalerweise vom Benutzer festgelegt, entweder temporär für die aktuelle Shell oder dauerhaft. Das ganze Konzept des Setzens und Aufhebens von Umgebungsvariablen dreht sich um einige Dateien und wenige Befehle und verschiedene Shells.
Im weiteren Sinne kann eine Umgebungsvariable in drei Typen vorliegen:
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 mit einem speziellen Befehlssatz erstellt und entfernt.
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 dieser Benutzer über eine Remote-Login-Sitzung angemeldet wird. Diese Variablen werden normalerweise in den folgenden Konfigurationsdateien festgelegt und aus diesen geladen: .bashrc
, .bash_profile
, .bash_login
, .Profil
Dateien, die sich im Home-Verzeichnis des Benutzers befinden.
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.
Hier beschreiben wir kurz die verschiedenen oben aufgeführten Konfigurationsdateien, die Umgebungsvariablen enthalten, entweder systemweit oder benutzerspezifisch.
Diese Datei ist eine benutzerspezifische Datei, die jedes Mal geladen wird, wenn der Benutzer eine neue lokale Sitzung erstellt, dh in einfachen Worten, ein neues Terminal öffnet. Alle in dieser Datei erstellten Umgebungsvariablen werden jedes Mal wirksam, wenn eine neue lokale Sitzung gestartet wird.
Diese Datei ist eine benutzerspezifische Remote-Login-Datei. In dieser Datei aufgelistete Umgebungsvariablen werden jedes Mal aufgerufen, wenn der Benutzer remote angemeldet ist, d. h. mit einer SSH-Sitzung. Wenn diese Datei nicht vorhanden ist, sucht das System nach entweder .bash_login
oder .Profil
Dateien.
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 Benutzer zugänglich, sowohl lokal als auch remote.
Systemweit 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 die lokale Terminalsitzung. Wenn auf einen Benutzer auf diesem Computer über eine Remote-Anmeldesitzung remote zugegriffen wird, wären diese Variablen nicht sichtbar.
Systemweite Profildatei. Alle in dieser Datei erstellten Variablen sind für jeden Benutzer auf dem System zugänglich, jedoch nur, wenn die Sitzung dieses Benutzers remote aufgerufen wird, d. h. über Remote-Login. Auf jede Variable in dieser Datei kann für eine lokale Anmeldesitzung nicht zugegriffen werden, d. h. wenn der Benutzer ein neues Terminal auf seinem lokalen System öffnet.
Notiz: Umgebungsvariablen erstellt mit systemweit oder benutzerweit Konfigurationsdateien können entfernt werden, indem sie nur aus diesen Dateien entfernt werden. Melden Sie sich nach jeder Änderung dieser Dateien entweder ab und wieder an oder geben Sie einfach den folgenden Befehl auf dem Terminal ein, damit die Änderungen wirksam werden:
$ Quelle
Lokale Umgebungsvariablen kann mit folgenden Befehlen erstellt werden:
$var=Wert ODER. $ export var=wert.
Diese Variablen sind sitzungsweit und nur für die aktuelle Terminalsitzung gültig. Um diese sitzungsweiten Umgebungsvariablen zu löschen, können die folgenden Befehle verwendet werden:
Standardmäßig, "env"
Befehl listet alle aktuellen Umgebungsvariablen auf. Aber wenn verwendet mit '-ich'
switch, löscht es vorübergehend alle Umgebungsvariablen und lässt den Benutzer einen Befehl in der aktuellen Sitzung ausführen, wenn alle Umgebungsvariablen fehlen.
$ env –i [Var=Wert]… Befehl Argumente…
Hier, var=Wert
entspricht einer lokalen Umgebungsvariablen, die Sie nur mit diesem Befehl verwenden möchten.
$ env –i bash.
Gibt eine Bash-Shell, die vorübergehend keine der Umgebungsvariablen enthält. Aber wenn Sie die Shell verlassen, werden alle Variablen wiederhergestellt.
Eine andere Möglichkeit, die lokale Umgebungsvariable zu löschen, besteht darin, den Befehl unset zu verwenden. Um eine lokale Umgebungsvariable vorübergehend aufzuheben,
$ nicht eingestellt
Wo, Var-Name
ist der Name der lokalen Variablen, die Sie aufheben oder löschen möchten.
Eine andere, weniger übliche Methode wäre, den Namen der Variablen, die Sie löschen möchten, auf ''
(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 AUCH MIT DEN WERTEN VON SYSTEM- ODER BENUTZERUMGEBUNGSVARIABLEN SPIELEN UND ÄNDERN, ABER ÄNDERUNGEN WÜRDEN NUR IN DER AKTUELLEN TERMINAL-SITZUNG REFLEKTIEREN UND WÄREN NICHT DAUERHAFT.
In diesem Abschnitt erfahren Sie, wie Sie lokale, benutzer- und systemweite Umgebungsvariablen in Linux mit den folgenden Beispielen setzen oder aufheben:
ein.) Hier erstellen wir eine lokale Variable VAR1
und setzen Sie ihn auf einen beliebigen Wert. Dann verwenden wir unset, um diese lokale Variable zu entfernen, und am Ende wird diese Variable entfernt.
$ VAR1='TecMint ist die beste Site für Linux-Artikel' $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 wird für die aktuelle Sitzung verfügbar sein. Um die Variable aufzuheben, setzen Sie einfach den Wert der Variablen auf ''
.
$ export VAR='TecMint ist die beste Site für Linux-Artikel' $echo $VAR. $ VAR= $echo $VAR.
C.) Hier haben wir eine lokale Variable erstellt VAR2
und setzen Sie ihn auf einen Wert. Um dann einen Befehl auszuführen, der alle lokalen und anderen Umgebungsvariablen vorübergehend löscht, haben wir ausgeführt 'env – ich'
Befehl. Dieser Befehl hier führte die Bash-Shell aus, indem alle anderen Umgebungsvariablen gelöscht wurden. Nach dem Betreten 'Ausfahrt'
auf der aufgerufenen Bash-Shell würden alle Variablen wiederhergestellt.
$ VAR2='TecMint ist die beste Site für Linux-Artikel' $echo $VAR2. $ env -i bash. $ echo $VAR2
ein.) Ändern .bashrc
Datei in Ihrem Home-Verzeichnis, um die hinzuzufügende Umgebungsvariable zu exportieren oder festzulegen. Nachdem Quelle die Datei, damit die Änderungen wirksam werden. Dann würdest du 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, jedoch nicht für Remote-Login-Sitzungen.
$ vi .bashrc.
Fügen Sie die folgende Zeile zu. hinzu .bashrc
Datei ganz unten.
export CD='Das ist 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 es:
B.) Um eine Variable hinzuzufügen, die für Remote-Login-Sitzungen verfügbar ist (d .bash_profile
Datei.
$ vi .bash_profile.
Fügen Sie die folgende Zeile zu. hinzu .bash_profile
Datei ganz unten.
export VAR2='Das ist TecMint Home'
Wenn Sie diese Datei beziehen, ist die Variable verfügbar, wenn Sie per SSH an diesen Benutzer senden, aber nicht beim Öffnen eines neuen lokalen Terminals.
$ source .bash_profile $ echo $VAR2.
Hier, VAR2
ist anfangs nicht verfügbar, aber wenn ssh für den Benutzer auf localhost ausgeführt wird, wird die Variable verfügbar.
$ ssh [E-Mail geschützt]
$echo $VAR2.
Um diese Variable zu entfernen, entfernen Sie einfach die Zeile in .bash_profile
Datei, die Sie hinzugefügt haben, und führen Sie die Datei erneut aus.
HINWEIS: Diese Variablen sind jedes Mal verfügbar, wenn Sie beim aktuellen Benutzer angemeldet sind, jedoch nicht für andere Benutzer.
ein.) 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 des Computers aus der Ferne zugegriffen wird), fügen Sie die Variable zu. hinzu /etc/bash.bashrc
Datei.
export VAR='Dies ist eine systemweite Variable'
Danach sourcen Sie die Datei.
$ source /etc/bash.bashrc
Jetzt steht diese Variable jedem Benutzer zur Verfügung, wenn er ein neues Terminal öffnet.
$echo $VAR. $ sudo su. $echo $VAR. $ su - $echo $VAR.
Hier ist dieselbe Variable verfügbar für Wurzel Benutzer als auch als 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 einer der Benutzer auf Ihrem Computer Wenn Sie remote angemeldet sind, aber nicht beim Öffnen eines neuen Terminals auf dem lokalen Computer, müssen Sie die bearbeiten Datei - '/etc/profil'
.
export VAR1='Dies ist eine systemweite Variable für nur Remote-Sitzungen'
Nachdem Sie die Variable hinzugefügt haben, führen Sie die Datei einfach neu aus. 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 es.
C.) Wenn Sie jedoch eine Umgebung hinzufügen möchten, die im gesamten System verfügbar sein soll, auf beiden Remote Login-Sitzungen sowie lokale Sitzungen (d. h. Öffnen eines neuen Terminalfensters) für alle Benutzer, exportieren Sie einfach die Variable In /etc/environment Datei.
export VAR12='Ich bin überall erreichbar'
Danach geben Sie einfach die Datei ein und die Änderungen werden wirksam.
$ source /etc/environment. $echo $VAR12. $ sudo su. $echo $VAR12. $ beenden. $ ssh localhost. $echo $VAR12.
Hier, wie wir sehen, ist die Umgebungsvariable für normale Benutzer, Root-Benutzer sowie für Remote-Login-Sitzungen verfügbar (hier zu localhost).
Um diese Variable zu löschen, entfernen Sie einfach den Eintrag im /etc/environment Datei und resourcen Sie sie oder melden Sie sich erneut an.
HINWEIS: Änderungen werden wirksam, wenn Sie die Datei als Quelle verwenden. Wenn nicht, müssen Sie sich möglicherweise abmelden und erneut anmelden.
Dies sind also nur wenige Möglichkeiten, wie wir die Umgebungsvariablen ändern können. Wenn Sie neue und interessante Tricks dafür finden, erwähnen Sie dies in Ihren Kommentaren.