Detaillierte Erläuterung der Konfigurationsstrategie für Linux-Umgebungsvariablen

Detaillierte Erläuterung der Konfigurationsstrategie für Linux-Umgebungsvariablen

Beim Anpassen der Softwareinstallation müssen Sie häufig Umgebungsvariablen konfigurieren. Im Folgenden werden verschiedene Methoden zum Konfigurieren von Umgebungsvariablen aufgeführt.

Die Umgebung für alle folgenden Beispiele ist wie folgt:

  • System: Ubuntu 14.0
  • Benutzername: uusama
  • Der Pfad der MySQL-Umgebungsvariable muss konfiguriert werden: /home/uusama/mysql/bin

Linux liest Umgebungsvariablen

Methoden zum Lesen von Umgebungsvariablen:

  • Der Exportbefehl zeigt alle Umgebungsvariablen an, die im aktuellen System definiert sind
  • Der Befehl echo $PATH gibt den Wert der aktuellen Umgebungsvariable PATH aus

Die Auswirkungen der Ausführung dieser beiden Befehle sind wie folgt

uusama@ubuntu:~$ export
deklariere -x HOME="/home/uusama"
declare -x LANG="en_US.UTF-8"
declare -x LANGUAGE="en_US:"
deklarieren -x LESSCLOSE="/usr/bin/lesspipe %s %s"
deklarieren -x LESSOPEN="| /usr/bin/lesspipe %s"
deklarieren -x LOGNAME="uusama"
deklariere -x MAIL="/var/mail/uusama"
deklarieren -x PATH="/home/uusama/bin:/home/uusama/.local/bin:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin"
deklarieren -x SSH_TTY="/dev/pts/0"
deklarieren -x TERM="xterm"
deklarieren -x USER="uusama"

uusama@ubuntu:~$ echo $PATH
/home/uusama/bin:/home/uusama/.local/bin:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin

Die Variable PATH definiert den Suchpfad für die Ausführung von Befehlen, wobei die einzelnen Pfade durch Doppelpunkte getrennt sind. Bei der Verwendung von Exportdefinitionen können doppelte Anführungszeichen hinzugefügt werden oder nicht.

Methode 1 der Konfiguration von Linux-Umgebungsvariablen: PATH exportieren

Verwenden Sie den Exportbefehl, um den Wert von PATH direkt zu ändern und MySQL so zu konfigurieren, dass die Umgebungsvariable eingegeben wird:

export PATH=/home/uusama/mysql/bin:$PATH

# Oder setzen Sie PATH voran export PATH=$PATH:/home/uusama/mysql/bin

Notiz:

  • Wirksam ab: Sofort
  • Gültigkeitsdauer: Gültig für das aktuelle Terminal, ungültig nach Schließen des Fensters
  • Wirkungsbereich: Nur gültig für den aktuellen Benutzer
  • Vergessen Sie nicht, die ursprüngliche Konfiguration zu den konfigurierten Umgebungsvariablen hinzuzufügen, also den $PATH-Teil, um ein Überschreiben der ursprünglichen Konfiguration zu vermeiden.

Methode 2 zur Konfiguration von Linux-Umgebungsvariablen: vim ~/.bashrc

Konfigurieren Sie, indem Sie die Datei ~/.bashrc im Benutzerverzeichnis ändern:

vim ~/.bashrc

# Fügen Sie export PATH=$PATH:/home/uusama/mysql/bin zur letzten Zeile hinzu

Notiz:

  • Effektiver Zeitpunkt: Wird wirksam, wenn Sie ein neues Terminal mit demselben Benutzer öffnen oder manuell die Quelle ~/.bashrc aufrufen.
  • Datum des Inkrafttretens: Dauerhaft
  • Wirkungsbereich: Nur gültig für den aktuellen Benutzer
  • Wenn eine nachfolgende Ladedatei für Umgebungsvariablen die PATH-Definition überschreibt, ist dies möglicherweise nicht wirksam.

Dritte Methode zur Konfiguration von Linux-Umgebungsvariablen: vim ~/.bash_profile

Ähnlich wie beim Ändern der Datei ~/.bashrc fügen Sie einfach den neuen Pfad am Ende der Datei hinzu:

vim ~/.bash_profile

# Fügen Sie export PATH=$PATH:/home/uusama/mysql/bin zur letzten Zeile hinzu

Notiz:

  • Effektiver Zeitpunkt: Wird wirksam, wenn Sie ein neues Terminal mit demselben Benutzer öffnen oder manuell die Quelle ~/.bash_profile aufrufen.
  • Datum des Inkrafttretens: Dauerhaft
  • Wirkungsbereich: Nur gültig für den aktuellen Benutzer
  • Wenn keine ~/.bash_profile-Datei vorhanden ist, können Sie die ~/.profile-Datei bearbeiten oder eine neue erstellen

Methode 4 der Konfiguration von Linux-Umgebungsvariablen: vim /etc/bashrc

Mit dieser Methode können Sie die Systemkonfiguration ändern. Dazu sind Administratorrechte (z. B. root) oder Schreibrechte für die Datei erforderlich:

# Wenn die Datei /etc/bashrc nicht editierbar ist, müssen Sie sie so ändern, dass sie editierbar ist. chmod -v u+w /etc/bashrc

vim /etc/bashrc

# Fügen Sie export PATH=$PATH:/home/uusama/mysql/bin zur letzten Zeile hinzu

Notiz:

  • Effektiver Zeitpunkt: Wird wirksam, wenn Sie ein neues Terminal öffnen oder /etc/bashrc manuell als Quelle verwenden.
  • Datum des Inkrafttretens: Dauerhaft
  • Geltungsbereich: Gilt für alle Nutzer

Methode 5 der Konfiguration von Linux-Umgebungsvariablen: vim /etc/profile

Diese Methode ändert die Systemkonfiguration und erfordert Administratorrechte oder Schreibrechte für die Datei, ähnlich wie vim /etc/bashrc:

# Wenn die Datei /etc/profile nicht editierbar ist, müssen Sie sie ändern, damit sie editierbar ist. chmod -v u+w /etc/profile

vim /etc/profil

# Fügen Sie export PATH=$PATH:/home/uusama/mysql/bin zur letzten Zeile hinzu

Notiz:

  • Effektiver Zeitpunkt: Wird wirksam, wenn ein neues Terminal geöffnet wird oder wenn Sie /etc/profile manuell als Quelle verwenden.
  • Datum des Inkrafttretens: Dauerhaft
  • Geltungsbereich: Gilt für alle Nutzer

Sechste Methode zur Konfiguration von Linux-Umgebungsvariablen: vim /etc/environment

Mit dieser Methode können Sie die Konfigurationsdatei der Systemumgebung ändern. Dazu sind Administratorrechte oder Schreibrechte für die Datei erforderlich:

# Wenn die Datei /etc/bashrc nicht editierbar ist, müssen Sie sie ändern, damit sie editierbar ist: chmod -v u+w /etc/environment

vim /etc/profil

# Fügen Sie export PATH=$PATH:/home/uusama/mysql/bin zur letzten Zeile hinzu

Notiz:

  • Effektiver Zeitpunkt: Wird wirksam, wenn Sie ein neues Terminal öffnen oder /etc/environment manuell als Quelle verwenden.
  • Datum des Inkrafttretens: Dauerhaft
  • Geltungsbereich: Gilt für alle Nutzer

Analyse des Ladeprinzips für Linux-Umgebungsvariablen

Oben sind verschiedene Konfigurationsmethoden für Umgebungsvariablen aufgeführt. Wie lädt Linux also diese Konfigurationen? In welcher Reihenfolge werden sie geladen?

Eine bestimmte Ladereihenfolge kann dazu führen, dass gleichnamige Umgebungsvariablendefinitionen überschrieben werden oder unwirksam werden.

Klassifizierung von Umgebungsvariablen

Umgebungsvariablen können einfach in benutzerdefinierte Umgebungsvariablen und Umgebungsvariablen auf Systemebene unterteilt werden.

  • Definitionsdateien für Umgebungsvariablen auf Benutzerebene: ~/.bashrc, ~/.bash_profile
  • Definitionsdateien für Umgebungsvariablen auf Systemebene: /etc/bashrc, /etc/bash_profile, /etc/environment

Darüber hinaus liest das System in den Benutzerumgebungsvariablen zuerst die Datei ~/.bash_profile. Wenn die Datei nicht vorhanden ist, wird ~/.bash_login gelesen. Wenn die Datei auch nicht vorhanden ist, wird ~/.profile gelesen und dann basierend auf dem Inhalt dieser Dateien ~/.bashrc.

So testen Sie die Ladereihenfolge der Linux-Umgebungsvariablen

Um die Reihenfolge zu testen, in der Umgebungsvariablen für verschiedene Dateien geladen werden, definieren wir in der ersten Zeile jeder Umgebungsvariablendefinitionsdatei dieselbe Umgebungsvariable UU_ORDER. Der Wert dieser Variablen ist ihr eigener Wert, der mit dem aktuellen Dateinamen verknüpft ist.

Die folgenden Dateien müssen geändert werden:

  • /etc/Umgebung
  • /etc/Profil
  • /etc/profile.d/test.sh, erstelle eine neue Datei, es können keine Ordner übersprungen werden
  • /etc/bashrc oder /etc/bash.bashrc
  • ~/.bash_profile oder ~/.profile
  • ~/.bashrc

Fügen Sie der ersten Zeile jeder Datei den folgenden Code hinzu und ändern Sie den Inhalt nach dem Doppelpunkt in den absoluten Dateinamen der aktuellen Datei.

export UU_ORDER="$UU_ORDER:~/.bash_profile"

Nach der Änderung speichern Sie, öffnen ein neues Fenster und geben dann $UU_ORDER aus, um den Wert der Variablen anzuzeigen:

uusama@ubuntu:~$ echo $UU_ORDER
$UU_ORDER:/etc/Umgebung:/etc/Profil:/etc/bash.bashrc:/etc/profile.d/test.sh:~/.profile:~/.bashrc

Daraus lässt sich schließen, dass Linux die Umgebungsvariablen in der folgenden Reihenfolge lädt:

  1. /etc/Umgebung
  2. /etc/Profil
  3. /etc/bash.bashrc
  4. /etc/profile.d/test.sh
  5. ~/.profile
  6. ~/.bashrc

Detaillierte Erläuterung des Ladens von Linux-Umgebungsvariablendateien

Aus dem obigen Test lässt sich leicht schließen, dass die Reihenfolge, in der Linux Umgebungsvariablen lädt, wie folgt ist:

Systemumgebungsvariablen -> Benutzerdefinierte Umgebungsvariablen
/etc/environment -> /etc/profile -> ~/.profile

Öffnen Sie die Datei /etc/profile und Sie werden sehen, dass der Code in dieser Datei die Datei /etc/bash.bashrc lädt. Überprüfen und laden Sie anschließend die .sh-Datei im Verzeichnis /etc/profile.d/.

# /etc/profile: systemweite .profile-Datei für die Bourne-Shell (sh(1))
# und Bourne-kompatible Shells (bash(1), ksh(1), ash(1), ...).

wenn [ "$PS1" ]; dann
 wenn [ "$BASH" ] && [ "$BASH" != "/bin/sh" ]; dann
  # Die Datei bash.bashrc legt bereits die Standard-PS1 fest.
  # PS1='\h:\w\$ '
  wenn [ -f /etc/bash.bashrc ]; dann
   . /etc/bash.bashrc
  fi
 anders
  wenn [ "`id -u`" -eq 0 ]; dann
   PS1='#'
  anders
   PS1='$ '
  fi
 fi
fi

wenn [ -d /etc/profile.d ]; dann
 für i in /etc/profile.d/*.sh; mache
  wenn [ -r $i ]; dann
   . $ich
  fi
 Erledigt
 nicht gesetzt i
fi

Öffnen Sie zweitens die Datei ~/.profile und Sie werden feststellen, dass die Datei ~/.bashrc darin geladen ist.

# wenn Bash ausgeführt wird
wenn [ -n "$BASH_VERSION" ]; dann
  # .bashrc einschließen, falls vorhanden
  wenn [ -f "$HOME/.bashrc" ]; dann
  . "$HOME/.bashrc"
  fi
fi

# PATH so einstellen, dass er die privaten Bin-Verzeichnisse des Benutzers einschließt
PATH="$HOME/bin:$HOME/.local/bin:$PATH"

Aus dem Code in der Datei ~/.profile lässt sich unschwer erkennen, dass die Datei /.profile nur einmal gelesen wird, wenn sich der Benutzer anmeldet, während /.bashrc bei jeder Ausführung des Shell-Skripts einmal gelesen wird.

Einige Tipps

Sie können eine Umgebungsvariablendatei anpassen, z. B. uusama.profile unter einem bestimmten Projekt definieren, mithilfe von export eine Reihe von Variablen in dieser Datei definieren und dann nach der Datei ~/.profile Folgendes hinzufügen: source uusama.profile. Auf diese Weise können Sie bei jeder Anmeldung die Reihe von Variablen verwenden, die Sie im Shell-Skript definiert haben.

Sie können den Alias-Befehl auch verwenden, um einige Befehlsaliase zu definieren, z. B. alias rm="rm -i" (Anführungszeichen sind erforderlich) und diesen Code zu ~/.profile hinzufügen. Auf diese Weise ist jedes Mal, wenn Sie den rm-Befehl verwenden, dies gleichbedeutend mit der Verwendung des rm -i-Befehls, was sehr praktisch ist.

Das Obige ist der vollständige Inhalt dieses Artikels. Ich hoffe, er wird für jedermanns Studium hilfreich sein. Ich hoffe auch, dass jeder 123WORDPRESS.COM unterstützen wird.

Das könnte Sie auch interessieren:
  • So konfigurieren Sie Umgebungsvariablen in einer Linux-Umgebung
  • Eine kurze Einführung in Linux-Umgebungsvariablendateien
  • Zusammenfassung der Konfigurationsmethoden für Linux-Umgebungsvariablen (Unterschiede zwischen .bash_profile und .bashrc)
  • So konfigurieren Sie Bash-Umgebungsvariablen in Linux
  • Eine vollständige Anleitung zur Konfiguration von Linux-Umgebungsvariablen
  • So konfigurieren Sie Java-Umgebungsvariablen im Linux-System
  • Installation und Konfiguration von Java-Umgebungsvariablen unter Linux
  • Detaillierte Schritte zum Konfigurieren von Umgebungsvariablen in Linux
  • Eine kurze Erläuterung zum Ändern/Festlegen der Umgebungsvariable JAVA_HOME unter Linux

<<:  So importieren Sie Excel-Dateien in eine MySQL-Datenbank

>>:  Detaillierte Anweisungen zur Installation der MySQL5.7-Datenbank unter Centos7.2

Artikel empfehlen

Eine gute Möglichkeit, Ihre Designfähigkeiten zu verbessern

Sogenanntes Talent (linke und rechte Gehirnhälfte...

MySQL-Datenmigration mit dem Befehl MySQLdump

Die Vorteile dieser Lösung liegen in der Einfachh...

Zusammenfassung häufig verwendeter Toolfunktionen in Vue-Projekten

Inhaltsverzeichnis Vorwort 1. Benutzerdefinierter...

20 Wegweiser auf dem Weg zum exzellenten UI (User Interface)-Designer

Einleitung: Der Interface-Designer Joshua Porter h...

Implementierung des Markdown-Renderings in einer Vue-Einzelseitenanwendung

Beim Rendern von Markdown habe ich zuvor den Vors...

Vollständige Analyse des Vue-Diff-Algorithmus

Inhaltsverzeichnis Vorwort Vue-Aktualisierungsans...

Detaillierte Erklärung der Lösung zur Bildverformung unter Flex-Layout

Flex-Layout ist heutzutage eine häufig verwendete...

So führen Sie Linux-Befehle im Hintergrund aus

Wenn Sie einen Befehl im Terminal ausführen, müss...

Detaillierte Erklärung des Linux-Kernel-Makros Container_Of

Inhaltsverzeichnis 1. Wie werden Strukturen im Ge...

Adaptive HTML-Tabellenmethode

<body style="scroll:no"> <Tabe...