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

Wo wird die PATH-Variable in Ubuntu gesetzt?

Grzegorz Żurs Antwort auf eine andere Frage fängt sie brillant ein. Leider war es unter vielen anderen Antworten versteckt.

Es gibt mehrere Möglichkeiten, dies zu tun. Die tatsächliche Lösung hängt vom Verwendungszweck ab.

Die Variablenwerte werden normalerweise entweder in einer Liste von Zuweisungen oder in einem Shell-Skript gespeichert, das beim Start des Systems oder der Benutzersitzung ausgeführt wird. Im Fall des Shell-Skripts müssen Sie eine bestimmte Shell-Syntax verwenden.

Systemweit

  1. /etc/environment Liste der eindeutigen Zuordnungen. Perfekt zum Hinzufügen von systemweiten Verzeichnissen wie /usr/local/something/bin bis PATH Variable oder Definition von JAVA_HOME .
  2. /etc/xprofile Shell-Skript, das beim Starten der X Window System-Sitzung ausgeführt wird. Dies wird für jeden Benutzer ausgeführt, der sich bei X WindowSystem anmeldet. Es ist eine gute Wahl für PATH Einträge, die für jeden Benutzer gültig sind, wie /usr/local/something/bin . Die Datei wird von einem anderen Skript eingebunden, verwenden Sie also die POSIX-Shell-Syntax und nicht die Syntax Ihrer Benutzer-Shell.
  3. /etc/profile und /etc/profile.d/* Shell-Skript. Dies ist eine gute Wahl für Nur-Shell-Systeme. Diese Dateien werden nur von Shells gelesen.
  4. /etc/<shell>.<shell>rc . Shell-Skript. Dies ist eine schlechte Wahl, da es spezifisch für einzelne Shells ist.

Auch /etc/environment ist keine Skriptdatei, sondern besteht aus Zuweisungsausdrücken, einer pro Zeile. Da diese Datei die systemweiten Gebietsschema- und Pfadeinstellungen speichert, wird sie am häufigsten in Anführungszeichen gesetzt. Verwenden Sie /etc/profile wird nicht bevorzugt. Es existiert nur, um auf /etc/bash.bashrc zu zeigen und Einträge von /etc/profile.d zu sammeln

Benutzersitzung

  1. ~/.pam_environment . Liste der eindeutigen Zuordnungen. Wird von PAM zu Beginn jeder Benutzersitzung geladen, unabhängig davon, ob es sich um eine XWindow-Systemsitzung oder -Shell handelt. Sie können nicht auf andere Variablen verweisen, einschließlich HOME oder PATH daher ist es nur begrenzt nutzbar.
  2. ~/.xprofile Shell-Skript. Dies wird ausgeführt, wenn sich der Benutzer beim X Window System-System anmeldet. Die hier definierten Variablen sind für jede X-Anwendung sichtbar. Perfekte Wahl zur Erweiterung von PATH mit Werten wie ~/bin oder ~/go/bin oder benutzerspezifisches GOPATH definieren oderNPM_HOME . Die Datei wird von einem anderen Skript eingebunden, verwenden Sie also die POSIX-Shellsyntax und nicht die Syntax Ihrer Benutzer-Shell. Ihr grafischer Texteditor oder Ihre per Shortcut gestartete IDE wird diese Werte sehen.
  3. ~/.profile Shell-Skript. Es ist nur für Programme sichtbar, die vom Terminal oder Terminal-Emulator gestartet werden. Es ist eine gute Wahl für reine Shell-Systeme.
  4. ~/.<shell>rc . Shell-Skript. Dies ist eine schlechte Wahl, da es spezifisch für einzelne Shells ist.

Für vorübergehende Änderungen:

~$ export PATH=$PATH:~/root/scripts

Zur dauerhaften Änderung können Sie diese Zeile zum /etc/environment hinzufügen Datei wie folgt:

PATH=$PATH:~/root/scripts

Linux
  1. Bestimmen des Pfads zum bezogenen Shell-Skript?

  2. Vollständige Ansicht, wo die Pfadvariable in Bash festgelegt ist?

  3. 2 Möglichkeiten, die $PATH-Variable in Ubuntu dauerhaft festzulegen

  4. Wie speichert man einen Befehl in einer Variablen in einem Shell-Skript?

  5. Legen Sie die Umgebungsvariable im Shell-Skript/Zugriff in der Tomcat-Anwendung fest

So schreiben Sie ein Shell-Skript in Ubuntu

So speichern Sie einen Linux-Befehl als Variable im Shell-Skript

So erstellen und führen Sie ein Shell-Skript in Ubuntu 22.04 aus

Shell-Skript ändert Verzeichnis mit Variable

Iterieren Sie mithilfe des Shell-Skripts über die $PATH-Variable

Wo wird die Umgebungsvariable $HOME gesetzt?