Umgebungsvariablen stehen in engem Zusammenhang mit der Shell. Eine Shell wird gestartet, nachdem sich der Benutzer am System angemeldet hat. Bei Linux ist dies in der Regel Bash, es kann aber auch zurückgesetzt oder auf andere Shells umgestellt werden. Für UNIX wahrscheinlich CShell. Umgebungsvariablen werden über Shell-Befehle festgelegt und die festgelegten Umgebungsvariablen können von allen Programmen verwendet werden, die vom aktuellen Benutzer ausgeführt werden. Für das Shell-Programm Bash können Sie über Variablennamen auf die entsprechenden Umgebungsvariablen zugreifen und die Umgebungsvariablen über den Export festlegen. Nachfolgend finden Sie einige Beispiele zur Veranschaulichung.
1) etc/profile: Diese Datei legt Umgebungsinformationen für jeden Benutzer des Systems fest. Wenn sich der Benutzer zum ersten Mal anmeldet, wird diese Datei ausgeführt.
Und von /etc/profile. d-Verzeichnis Sammeln Sie Shell-Einstellungen in der Konfigurationsdatei
Hinweis: Hier legen wir globale Variablen fest, die von allen Benutzern verwendet werden können.
2)/etc/bashrc: Führen Sie diese Datei für jeden Benutzer aus, der die Bash-Shell ausführt. Wenn die Bash-Shell geöffnet wird, wird diese Datei gelesen.
3)~/.bash_profile :Each Der Benutzer kann diese Datei verwenden, um Shell-Informationen für seine eigene Verwendung einzugeben. Wenn sich der Benutzer anmeldet, legt er standardmäßig einige Umgebungsvariablen fest und führt die .bashrc-Datei des Benutzers aus Unter LINUX repräsentiert es die HOME-Variable.
Darüber hinaus kann diese Datei unter verschiedenen LINUX-Betriebssystemen unterschiedlich sein, es kann eine oder mehrere von ~/.bash_login oder ~/.profile sein. Wenn es mehrere gibt, dann Die Reihenfolge der Ausführung ist: ~/.bash_profile, ~/.bash_login, ~/.profile. Ich verwende beispielsweise Ubuntu und standardmäßig befindet sich in meinem Benutzerordner nur die Datei ~/.profile.
Wie fügen wir also unsere eigenen definierten Umgebungsvariablen hinzu?
Öffnen Sie diese Datei mit Notepad und schreiben Sie am Ende:
xiaokang=kangkang
Speichern Sie sie dann, sodass unsere Variable jedes Mal wirksam wird, wenn Sie ein neues Terminal öffnen. Denken Sie daran: Wenn Sie ein Terminal geöffnet haben und diese Datei ändern, wird sie in diesem Terminal nicht wirksam. Im Allgemeinen ist es für Benutzer am besten, hier Änderungen vorzunehmen, aber manchmal werden die übergeordneten Variablen überschrieben. Beispielsweise wird PATH durch ROOT festgelegt, aber wenn Sie PATH=xx in diese Datei schreiben, werden alle PATHs in der Zukunft geändert xx. , also sollten wir es in diese Datei schreiben als:
PATH=$PATH:xx
Auf diese Weise wird das Original zusammen mit Ihrem eigenen hinzugefügt. Und bitte beachten Sie, dass unter Linux „split“ bedeutet, dass „parallel“ und nicht „windo“ 3 und 4 beide im Benutzerverzeichnis liegen. Der einzige Unterschied zwischen ihnen ist: .bash_profile kann nur einmal beim Anmelden gestartet werden. Diese 3 Dateien scheinen in meinem Ubuntu nicht zu existieren.
5)~/.bash_logout: Führen Sie diese Datei jedes Mal aus, wenn Sie das System verlassen (beenden Sie die Bash-Shell).
Darüber hinaus können die in /etc/profile festgelegten Variablen (global) auf Any wirken Benutzer und die in ~/.bashrc usw. festgelegten Variablen (lokal) können nur die Variablen in /etc/profile erben. Sie haben eine „Vater-Sohn“-Beziehung interaktiv, Login
Normalerweise sind die Einstellungen der beiden ungefähr gleich, daher ruft Ersteres normalerweise Letzteres auf.
Wenn Sie sich anmelden und die Anmelde-Shell Bash ist, führt Bash zuerst die Befehle in der Datei /etc/profile aus (falls die Datei vorhanden ist) und dann Suchen Sie nacheinander nach den Dateien ~/.bash_profile, ~/.bash_login oder ~/.profile und führen Sie die Befehle in der ersten lesbaren Datei aus, die gefunden wird. Wenn Sie angemeldet sind, führt Bash die Befehle in der Datei ~/.bash_logout aus.
Beim Starten einer interaktiven Bash werden die Befehle in der Datei ~/.bashrc ausgeführt (sofern die Datei vorhanden und lesbar ist). Beim nicht interaktiven Starten zur Ausführung eines Shell-Skripts sucht die Bash nach der Umgebungsvariablen bash_env , Bestimmen Sie den Namen der ausführbaren Datei.
Zweite Information
------------------------------------------ -------------------------------------------------- -- --
Wenn Sie sich zum ersten Mal bei Linux anmelden, starten Sie zuerst die Datei /etc/profile und dann ~/. bash_profile im Benutzerverzeichnis; ~/ Eine der .bash_login- oder ~/.profile-Dateien (die Namen sind je nach Linux-Betriebssystem unterschiedlich!!!!!!!!) In meinem Ubuntu gibt es nur ~/.profile ),
Die Reihenfolge der Ausführung ist: ~/.bash_profile, ~/.bash_login, ~/.profile.
Weil es normalerweise den folgenden Code in der ~/.bash_profile-Datei gibt:
if [ -f ~/.bashrc ] ; then
./bashrc
fi
~/.bashrc , gibt es normalerweise den folgenden Code:
if [ -f /etc/bashrc ] ; then
/bashrc
fi
Also ruft ~/.bashrc die Datei /etc/bashrc auf. Schließlich wird beim Verlassen der Shell auch die Datei ~/.bash_logout ausgeführt.
Die Ausführungsreihenfolge ist: /etc/profile -> (~/.bash_login | ~/.profile) -> .bash_logout
Bezüglich des Umfangs jeder Datei habe ich die folgenden Anweisungen im Internet gefunden:
(1)/etc/profile: Diese Datei legt die Umgebungsinformationen für jeden Benutzer des Systems fest Beim ersten Mal werden die Shell-Einstellungen aus der Konfigurationsdatei im Verzeichnis /etc/profile.d gesammelt.
(2)/etc/bashrc: Führen Sie diese Datei für jeden Benutzer aus, der die Bash-Shell ausführt. Wenn die Bash-Shell geöffnet wird, wird diese Datei gelesen.
(3) ~/.bash_profile: Jeder Benutzer kann diese Datei verwenden, um Shell-Informationen für seine eigene Verwendung einzugeben. Wenn sich der Benutzer anmeldet, wird die Datei nur einmal ausgeführt. Standardmäßig werden einige Umgebungsvariablen festgelegt und ausgeführt Die .bashrc-Datei des Benutzers.
(4) ~/.bashrc: Diese Datei enthält spezifische Bash-Informationen für Ihre Bash-Shell. Diese Datei wird beim Anmelden und jedes Mal gelesen, wenn eine neue Shell geöffnet wird.
(5)
~/.bash_logout: Führen Sie diese Datei jedes Mal aus, wenn Sie das System verlassen (die Bash-Shell verlassen).
Zusätzlich können die in /etc/profile festgelegten Variablen (global) verwendet werden Für jeden Benutzer können die in ~/.bashrc usw. festgelegten Variablen (lokal) nur die Variablen in
/etc/profile erben. Sie haben eine „Vater-Sohn“-Beziehung.
(6) ~/.bash_profile wird verwendet, um Bash im interaktiven und Anmeldemodus aufzurufen. ~/.bashrc wird verwendet, um Bash im interaktiven Nicht-Anmeldemodus aufzurufen. Daher wird ersteres normalerweise letzteres nennen.
Der Nutzen verschiedener Umgebungsvariablen-Einstellungsdateien wie /etc/profile und /etc/environment
Fügen Sie zunächst den Export zu /etc/profile hinzu, verlassen Sie das System und melden Sie sich erneut an. Die Anmeldeaufforderung wird auf Englisch angezeigt .
Löschen Sie den Export in /etc/profile, fügen Sie LNAG=zh_CN zu /etc/environment hinzu, melden Sie sich vom System ab und erneut an. Die Anmeldeaufforderung wird auf Chinesisch angezeigt.
Beim Einrichten einer Benutzerumgebung wird immer zuerst /etc/profile ausgeführt und dann /etc/environment gelesen. Warum gibt es die oben beschriebenen Unterschiede?
Sie sollten zuerst /etc/environment und dann /etc/profile ausführen.
/etc/environment dient zum Festlegen der Umgebung des gesamten Systems, während /etc/profile zum Festlegen der Umgebung aller Benutzer dient. Ersteres hat nichts mit dem angemeldeten Benutzer zu tun, und letzteres hängt mit dem zusammen Angemeldeter Benutzer.
Die Ausführung von Systemanwendungen hat möglicherweise nichts mit der Benutzerumgebung zu tun, sondern hängt mit der Systemumgebung zusammen. Wenn Sie sich anmelden, werden daher die Eingabeaufforderungsinformationen angezeigt, z. B. das Anzeigeformat von Datums- und Uhrzeitinformationen. hängt mit der LANG der Systemumgebung zusammen, die Standardeinstellung ist LANG=en_US. Wenn die Systemumgebung LANG=zh_CN ist, sind die Eingabeaufforderungsinformationen auf Chinesisch, andernfalls auf Englisch.
Für die SHELL-Initialisierung des Benutzers wird zuerst /etc/profile ausgeführt und dann die Datei /etc/environment gelesen. Für das gesamte System wird zuerst /etc/environment ausgeführt. Ist das das richtige Verständnis?
/etc/enviroment --> /etc/profile -->$HOME/.env (falls vorhanden)
/etc/profile ist die Umgebungsvariable für alle Benutzer
/etc/enviroment ist die Umgebungsvariable des Systems
Die von der Shell beim Anmelden am System gelesene Reihenfolge sollte
/etc/profile ->/etc/enviroment --> sein ;$HOME/.profile -- >$HOME/.env
Der Grund sollte der von jtw erwähnte Unterschied zwischen Benutzerumgebung und Systemumgebung sein
Wenn sich dieselbe Variable in der Benutzerumgebung befindet (/etc/profile ) und der Systemumgebung (/etc/environment) Wenn es unterschiedliche Werte gibt, sollte diese auf der Benutzerumgebung basieren.
Weitere verwandte Artikel zu verschiedenen Methoden zum Festlegen von Linux-Umgebungsvariablen finden Sie auf der chinesischen PHP-Website!