Es gibt mehrere Möglichkeiten, dies zu tun. Die tatsächliche Lösung hängt vom Zweck ab.
Die Variablenwerte werden normalerweise entweder in einer Liste von Zuweisungen oder in einem Shell-Skript gespeichert, das zu Beginn der System- oder Benutzersitzung ausgeführt wird. Im Falle des Shell-Skripts müssen Sie eine bestimmte Shell-Syntax und / export
oder set
Befehle verwenden.
Systemweit
/etc/environment
Liste der eindeutigen Zuordnungen, ermöglicht Referenzen. Ideal für das Hinzufügen systemweite Verzeichnisse wie /usr/local/something/bin
auf PATH
Variablen oder definieren JAVA_HOME
. Wird von PAM und SystemD verwendet.
/etc/environment.d/*.conf
Liste der eindeutigen Zuordnungen, ermöglicht Referenzen. Ideal für das Hinzufügen systemweite Verzeichnisse wie /usr/local/something/bin
auf PATH
Variablen oder definieren JAVA_HOME
. Die Konfiguration kann in mehrere Dateien aufgeteilt werden, normalerweise eine pro Tool (Java, Go, NodeJS). Wird von SystemD verwendet, das diese Werte nicht an Benutzer-Login-Shells weitergibt.
/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 Window System anmeldet. Es ist eine gute Wahl für PATH
Einträge, die für jeden Benutzer gültig sind /usr/local/something/bin
. Die Datei ist in einem anderen Skript enthalten. Verwenden Sie daher die POSIX-Shell-Syntax und nicht die Syntax Ihrer Benutzer-Shell.
/etc/profile
und /etc/profile.d/*
Shell-Skript. Dies ist eine gute Wahl für Nur-Shell-Systeme. Diese Dateien werden nur von Shells im Anmeldemodus gelesen.
/etc/<shell>.<shell>rc
. Shell-Skript. Dies ist eine schlechte Wahl, da es spezifisch für eine einzelne Schale ist. Wird im Nicht-Login-Modus verwendet.
Benutzersitzung
~/.pam_environment
. Liste der eindeutigen Zuordnungen, keine Referenzen zulässig. Wird von PAM zu Beginn jeder Benutzersitzung geladen, unabhängig davon, ob es sich um eine X Window System-Sitzung oder -Shell handelt. Sie können nicht auf andere Variablen verweisen, einschließlich HOME
oder PATH
nur in begrenztem Umfang. Wird von PAM verwendet.
~/.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 für die Erweiterung PATH
mit Werten wie ~/bin
oder ~/go/bin
oder Definition von benutzerspezifisch GOPATH
oder NPM_HOME
. Die Datei ist in einem anderen Skript enthalten. Verwenden Sie daher die POSIX-Shell-Syntax und nicht die Syntax Ihrer Benutzer-Shell. Ihr grafischer Texteditor oder Ihre IDE, die über eine Verknüpfung gestartet wurden, sehen diese Werte.
~/.profile
, ~/.<shell>_profile
, ~/.<shell>_login
Shell - Skript. Es ist nur für Programme sichtbar, die vom Terminal oder Terminalemulator gestartet wurden. Es ist eine gute Wahl für reine Shell-Systeme. Wird von Shells im Anmeldemodus verwendet.
~/.<shell>rc
. Shell-Skript. Dies ist eine schlechte Wahl, da es spezifisch für eine einzelne Schale ist. Wird von Shells im Nicht-Login-Modus verwendet.
Anmerkungen
Gnome on Wayland startet die Benutzer-Login-Shell, um die Umgebung abzurufen. Es nutzt effektiv Login - Shell - Konfigurationen ~/.profile
, ~/.<shell>_profile
, ~/.<shell>_login
Dateien.
Anleitungen
- Umgebung
- Umwelt.d
- Bash
- Strich
Distributionsspezifische Dokumentation
verbunden
Unterschied zwischen Login Shell und Non-Login Shell?
.bash_profile
sollte auch die Liste hinzugefügt werden?/etc/environment
. Aber kann ich es aktualisieren, ohne mich ab- und anzumelden? Manchmal benutze ich kein Bash oder Sh, alsosource /etc/environment
funktioniert es nicht.Sie müssen es Ihrer
~/.profile
oder~/.bashrc
Datei hinzufügen .Je nachdem, was Sie tun, möchten Sie möglicherweise auch einen Symlink zu Binärdateien erstellen:
Beachten Sie, dass dadurch Ihr Pfad für den Rest der Sitzung nicht automatisch aktualisiert wird. Dazu sollten Sie Folgendes ausführen:
quelle
$PATH
und/usr/bin
. 2) Sollte/usr/bin
sogar da sein. 3) Solltest du nicht lieber verwenden/usr/local/bin
?cd
in das Verzeichnis , in das Sie ihn entpackt haben, dann ausführenls
--- und dann feststellen, dass auf dem Tarball ein Schadprogramm aufgerufenls
wurde.Bearbeiten Sie in Ubuntu
/etc/environment
. Der einzige Zweck besteht darin, Umgebungsvariablen zu speichern. Ursprünglich ist hier die Variable $ PATH definiert. Dies ist eine Einfügung aus meiner/etc/environment
Datei:Sie können diese Datei also einfach als root öffnen und hinzufügen, was Sie wollen.
Führen Sie für sofortige Ergebnisse Folgendes aus (versuchen Sie es als normaler Benutzer und Root):
AKTUALISIEREN:
Wenn Sie
zsh
(auch bekannt als Z Shell) verwenden, fügen Sie diese Zeile direkt nach den Kommentaren in/etc/zsh/zshenv
:Ich bin auf diese kleine Eigenart unter Ubuntu 15.10 gestoßen, aber wenn Ihr zsh nicht den richtigen Pfad erhält , könnte dies der Grund sein
quelle
$PATH
ist auch/etc/profile
in Arch Linux definiert.Geben Sie die
export
Erklärung ein~/.bashrc
. Meine .bashrc enthält Folgendes:quelle
.profile
', nicht gefunden.bashrc
source ~/.bashrc
, um die.bashrc
Konfiguration neu zu laden . Dann wird es funktionierenexport
Schlüsselwort wird nur benötigt, wennPATH
es nicht bereits als Umgebungsvariable gekennzeichnet ist - was es fast unbedingt sein wird. Hätte einfachPATH=/var/lib/gems/1.8/bin:/home/fraxtil/.bin:$PATH
den gleichen Effekt.Sie können
$PATH
permanent auf zwei Arten einstellen .So legen Sie den Pfad für einen bestimmten Benutzer fest: Möglicherweise müssen Sie den Eintrag
.bash_profile
im Home-Verzeichnis des Benutzers vornehmen .In meinem Fall werde ich beispielsweise den Java-Pfad im Tomcat-Benutzerprofil festlegen
Um einen gemeinsamen Pfad für ALLE Systembenutzer festzulegen, müssen Sie möglicherweise den folgenden Pfad festlegen:
quelle
/etc/profiles
mit einems
in Ihrer Distribution benannt? Meins hat keines
. Ich denke du hast einen Tippfehler.Sie können auf Centos oder RHEL für lokale Benutzer verwenden:
Dadurch wird das aktuelle Verzeichnis zum PATH hinzugefügt (oder Sie können ein anderes Verzeichnis verwenden). Dadurch wird es dauerhaft, wird jedoch bei der nächsten Benutzeranmeldung wirksam.
Wenn Sie sich nicht erneut anmelden möchten, können Sie Folgendes verwenden:
Das Nachladen
# User specific environment and startup programs
dieses Kommentars ist in vorhanden.bash_profile
quelle
Sie können auch eine dieser Dateien dauerhaft festlegen:
/etc/profile
(für alle Benutzer)~/.bash_profile
(für aktuellen Benutzer)~/.bash_login
(für aktuellen Benutzer)~/.profile
(für aktuellen Benutzer)Sie können auch
/etc/environment
eine permanente PATH-Umgebungsvariable festlegen, diese unterstützt jedoch keine Variablenerweiterung .Auszug aus: http://www.sysadmit.com/2016/06/linux-anadir-ruta-al-path.html
quelle
Ich bin gestern auf diese Frage gestoßen, als ich nach einer Möglichkeit gesucht habe, einen Ordner mit meinen eigenen Skripten zum PATH hinzuzufügen - und war überrascht, dass meine eigene
~/.profile
Datei (unter Linux Mint 18.1) diese bereits enthielt:Ich musste also nur den Ordner erstellen
~/bin
und meine Skripte dort ablegen.quelle
Ich denke, der eleganteste Weg ist:
1. Fügen Sie dies in die Datei ~ / .bashrc ein. Führen Sie diesen Befehl aus
füge deinen Pfad hinzu
2.Quelle ~ / .bashrc
(Ubuntu)
quelle
Sie können diese Zeile zu Ihrer Konsolen-Konfigurationsdatei (z. B. .bashrc) oder zu .profile hinzufügen
quelle
/home/(username)
ls -a
sie sehen.)Fügen Sie die Variable PATH dauerhaft hinzu
Global:
Lokal (nur für Benutzer):
Für globalen Neustart. Für lokales Relogin.
Beispiel
Vor:
Nach:
Alternativ können Sie einfach das Profil bearbeiten:
Ein anderer Weg (danke gniourf_gniourf):
quelle
echo 'export PATH=$PATH:/new/path/variable'
...export
Übrigens ist das Schlüsselwort sehr wahrscheinlich nutzlos, da diePATH
Variable sehr wahrscheinlich bereits als exportiert markiert ist./usr/local
mit an~/.bashrc
. jetzt, wenn Sie beabsichtigen,/opt/bin
an dieselbe Variable mit anzuhängen/etc/bash.bashrc
; $ PATH wird auf die gleiche statische Zeichenfolge übersetzen, als ein Ergebnis $ PATH wird ersetzt statt angehängt ... Es wird eine Frage des Systems bevorzugt eine Datei über eine andere sein1. Ändern Sie die Datei "/ etc / profile".
Drücken Sie die Taste "i", um den Bearbeitungsstatus einzugeben und den Cursor an das Ende der Datei zu bewegen. Zusätzliche Einträge:
Drücken Sie die Taste "Esc", um den Bearbeitungsstatus zu beenden. ': Wq' Speichern Sie die Datei.
2.Konfiguration effektiv machen
Erklären: Die Profildatei funktioniert für alle Benutzer. Wenn Sie nur für den aktiven Benutzer gültig sein möchten, legen Sie die Datei ".bashrc" fest
quelle
Nach so vielen Recherchen habe ich eine einfache Lösung dafür gefunden (ich verwende ein elementares Betriebssystem ), inspiriert von dem folgenden Link .
Ich glaube das ist die dauerhafte Lösung, um in der Ubuntu-Distribution den Pfad im Flattern festzulegen
Hoffe das wird hilfreich.
quelle
Die Dateien, in denen Sie den Exportbefehl hinzufügen, hängen davon ab, ob Sie sich im Anmeldemodus oder im Nichtanmeldemodus befinden.
Wenn Sie sich im Anmeldemodus befinden, suchen Sie entweder nach / etc / bash oder /etc/bash.bashrc
Wenn Sie sich im Nicht-Anmeldemodus befinden, suchen Sie nach der Datei /.profile oder nach den Dateien im Verzeichnis /.profiles.d
die oben genannten Dateien, wenn sich die Systemvariablen befinden.
quelle
Zum
/etc/profile.d
Ordnerskript[name_of_script].sh
mit Zeile hinzufügen :export PATH=$PATH:/dir
. Jedes Skript innerhalb eines/etc/profile.d
Ordners wird automatisch/etc/profile
bei der Anmeldung ausgeführt.quelle
Zues77 hat die richtige Idee. Das OP sagte nicht "Wie kann ich mich durch das hindurchhacken?". OP wollte wissen, wie man permanent an $ PATH anhängt:
Hier ist es für alles eingestellt und der beste Ort, um es für alle Dinge zu ändern, die $ PATH benötigen
quelle
Meine Antwort bezieht sich auf das Einrichten von
go-lang
on.Ubuntu linux/amd64
Ich hatte die gleichen Probleme, den Pfad der Umgebungsvariablen (GOPATH
undGOBIN
)source <file_name>
festzulegen , ihn beim Beenden des Terminals zu verlieren und ihn jedes Mal neu zu erstellen. Der Fehler bestand darin, den Pfad zu setzen (GOPATH
undGOBIN
) im~/.bash_profile
Ordner. Nach ein paar guten Stunden verschwenden, fand ich , dass die Lösung zu bringen warGOPATH
undGOBIN
in~/.bash_rc
der Art und Weise Datei:Dabei funktionierte die Go-Installation einwandfrei und es gab keine Pfadverluste.
BEARBEITEN 1: Der Grund, mit dem dieses Problem zusammenhängen kann, ist, dass Einstellungen für Nicht-Login-Shells wie Ihr Ubuntu-Terminal oder Gnome-Terminal, auf dem wir den Go-Code ausführen, aus der
~./bash_rc
Datei übernommen werden und die Einstellungen für Login-Shells aus der~/.bash_profile
Datei und übernommen werden aus~/.profile
Datei, wenn~/.bash_profile
Datei nicht erreichbar ist.quelle
Angenommen, Sie verwenden MacOS und haben eine Binärdatei, der Sie vertrauen und die Sie systemweit verfügbar machen möchten. Sie möchten jedoch nicht unbedingt, dass das Verzeichnis, in dem die Binärdatei zu Ihrem PATH hinzugefügt werden soll, kopiert / verschoben werden die Binärdatei zu
/usr/local/bin
, die sich bereits in Ihrem PFAD befinden sollte. Dadurch wird die Binärdatei wie jede andere Binärdatei ausführbar, auf die Sie möglicherweise bereits in Ihrem Terminal Zugriff haben.quelle
Es kann direkt mit dem folgenden Befehl hinzugefügt werden:
quelle
bash
, das ist also nicht sehr hilfreich.Der beste einfache Weg ist die folgende Zeile:
PATH="<directory you want to include>:$PATH"
in Ihrer .bashrc-Datei im Home-Verzeichnis.
Es wird nicht zurückgesetzt, selbst wenn Sie das Terminal schließen oder Ihren PC neu starten. Es ist dauerhaft
quelle
Ich denke, der eleganteste Weg ist:
1. Fügen Sie dies in die Datei ~. / Bashrc ein
2.Quelle ~ / .bashrc
(Ubuntu)
quelle
Eine Möglichkeit, einen dauerhaften Pfad hinzuzufügen, der für mich funktioniert hat, ist:
Starten Sie Ihren Computer neu und hier gehen wir Weg wird dort dauerhaft jubeln.
quelle
Für die Debian-Verteilung müssen Sie:
quelle
Dies ist ein Einzeiler . Es fügt dem eine Zeile hinzu
.bashrc
. Die Zeile prüft, ob das Verzeichnis bereits zum Pfad hinzugefügt wurde, und hängt an, wenn nicht. Dadurch wird verhindert, dass Ihr Verzeichnis bei jeder Quelle im Pfad dupliziert wird.bashrc
.quelle