Wie füge ich ein Verzeichnis $PATH
in Ubuntu hinzu und mache die Änderungen dauerhaft?
environment-variables
justingrif
quelle
quelle
Antworten:
Verwenden Sie ~ / .profile, um $ PATH festzulegen
Ein eingegebener Pfad
.bash_profile
wird nur in einer Bash-Anmeldeshell (bash -l
) festgelegt. Wenn Sie Ihren Pfad.profile
eingeben, steht er Ihrer gesamten Desktopsitzung zur Verfügung. Das bedeutet, dass selbst Metacity es verwenden wird.Zum Beispiel
~/.profile
:Übrigens können Sie die PATH-Variable eines Prozesses überprüfen, indem Sie sich seine Umgebung in
/proc/[pid]/environ
ansehen (ersetzen Sie [pid] durch die Zahl vonps axf
). ZB verwendengrep -z "^PATH" /proc/[pid]/environ
Hinweis:
bash
Als Login-Shell wird nicht analysiert,.profile
ob eine existiert.bash_profile
oder nicht.bash_login
. Vonman bash
:In den nachstehenden Antworten finden Sie Informationen zu
.pam_environment
oder.bashrc
interaktive Shells ohne Anmeldung. Sie können den Wert auch global für alle Benutzer festlegen, indem Sie ein Skript in die Sitzung von Display Manager einfügen/etc/profile.d/
oder dieses verwenden/etc/X11/Xsession.d/
, um die Sitzung von Display Manager zu beeinflussen.quelle
PATH="$HOME/bin:$PATH"
hinzufügen ... Also füge ich es hinzu?Bearbeiten Sie
.bashrc
in Ihrem Ausgangsverzeichnis und fügen Sie die folgende Zeile hinzu:Sie müssen Ihre
.bashrc
oder Logout / Login-Adresse eingeben (oder das Terminal neu starten), damit die Änderungen wirksam werden. Um Ihre Quelle zu finden, geben Sie.bashrc
einfach einquelle
.bashrc
" Sie Ihre ? Wie "starte ich das Terminal neu"?.bashrc
ist nicht der richtige Ort zum Festlegen von Umgebungsvariablen. Sie sollten hineingehen.profile
oder.pam_environment
. Siehe mywiki.wooledge.org/DotFiles. .bashrc
nicht.bashrc
:) odersource .bashrc
für diese AngelegenheitDer empfohlene Ort, um permanente, systemweite Umgebungsvariablen zu definieren, die für alle Benutzer gelten, ist:
(Hier wird der Standard
PATH
definiert)Dies funktioniert in Desktop oder Konsole, Gnome-Terminal oder TTY, Regen oder Sonnenschein;)
Drücken Sie zum Bearbeiten Alt+ F2und geben Sie Folgendes ein:
(oder öffnen Sie die Datei
sudo
in Ihrem bevorzugten Texteditor)Führen Sie den Befehl aus, um Änderungen vorzunehmen
. /etc/environment
. Da diese Datei nur ein einfaches Skript ist, wird sie ausgeführt und derPATH
Umgebungsvariablen der neue Pfad zugewiesen . Um zu überprüfen, führen Sie env aus und sehen Sie denPATH
Wert in der Auflistung.Verbunden:
quelle
source /etc/environment
, um die Änderungen neu zu ladenIch denke, der kanonische Weg in Ubuntu ist:
erstelle eine neue Datei unter
/etc/profile.d/
dort hinzufügen:
und gib ihm Ausführungserlaubnis
quelle
Für komplette Neulinge (wie ich), die sich mit GUI besser auskennen:
$HOME
Ordner..profile
Sie mit der rechten Maustaste auf und dann auf Mit Texteditor öffnen .PATH="$PATH:/my/path/foo"
..profile
).quelle
$PATH:
Bit hinzufügen, das die vorhandene PATH-Definition enthältFür persistente Umgebungsvariablen, die nur bestimmten Benutzern zur Verfügung stehen. Ich kann die offizielle Ubuntu-Dokumentation nur empfehlen.
https://help.ubuntu.com/community/EnvironmentVariables
Unter Bezugnahme auf die obige Dokumentation habe ich meine Android SDK-Pfadtools folgendermaßen eingerichtet :
~/.pam_environment
Datei im Home-Verzeichnis erstellen .PATH DEFAULT=${PATH}:~/android-sdk-linux/tools
.quelle
Fügen Sie diese Zeile in Ihre
~/.bashrc
Datei ein.Es wird bezogen, wenn Sie ein Terminal öffnen
EDIT : Basierend auf die Kommentare unten, für eine allgemeinere Einstellung, die für alle Schalen gelten (einschließlich wenn du getroffen werden Alt- F2in Unity), fügen Sie die Zeile in der
~/.profile
Datei.PATH
Sollte jedoch wahrscheinlich nicht beides tun, da der Pfad Ihrer Umgebung zweimal hinzugefügt wird, wenn Sie ein Terminal öffnen.quelle
$HOME/.profile
für persönliche Einstellungen oder/etc/profile
für alle Benutzer fest. Aber wenn es nur für die Bash benötigt wird, wird wohl beides funktionieren.~/.bashrc
, ist es nur in den von Ihnen geöffneten Terminals verfügbar. Wenn Sie beispielsweise Alt + F2 drücken und versuchen, einen Befehl in diesem Verzeichnis auszuführen, wird er nicht gefunden. Wenn Sie es in~/.profile
oder setzen~/.pam_environment
, wird es von der Gnomensitzung (oder von der DE, die Sie verwenden) geerbt. Das Anhängen von PATH in~/.bashrc
hat auch den Nachteil, dass, wenn Sie / exec bash interaktiv von einer anderen interaktiven bash-Shell aus öffnen, es mehrmals angehängt wird.~/.profile
jedoch, dass es für persönliche Wege richtig ist; Dort fügt Ubuntu das~/bin
Verzeichnis hinzu. Und ich gebe zu, dass ich die Anzahl der Wege ein wenig übertrieben habe - nur ein bisschen.~/.profile
in diesem Fall mitgehen .Fügen Sie die Zeile
export PATH=/path/you're/adding:$PATH
an das Ende von an, um sie systemweit festzulegen/etc/profile
.Um das Verzeichnis nur für den angemeldeten Benutzer hinzuzufügen, fügen Sie dieselbe Zeile an
~/.bash_profile
.quelle
Das Hinzufügen zu .bashrc wird funktionieren, aber ich denke, die traditionellere Methode zum Einrichten Ihrer Pfadvariablen befindet sich in .bash_profile, indem die folgenden Zeilen hinzugefügt werden.
Laut diesem Thread sieht es so aus, als ob Ubuntus Verhalten sich geringfügig von dem von RedHat und Klonen unterscheidet.
quelle
.bashrc
, stecken Sie es.bashrc
stattdessen. GUI-Terminals in Ubuntu sind keine Login-Shells und werden daher.bash_profile
nicht ausgeführt..bash_profile
. Wenn bash kein findet.bash_profile
(wenn Sie sich interaktiv anmelden), sucht.profile
und verwendet es das stattdessen. Standardmäßig haben Sie ein.profile
und.bashrc
in Ubuntu. Und.profile
ist der richtige Ort, um Umgebungsvariablen zu setzen, wenn wir pam_env nicht berücksichtigen.Im Terminal
cd
zuthe_directory_you_want_to_add_in_the_path
Das war nicht meine Idee. Ich habe diesen Weg gefunden, um den Pfad in diesem Blog hier zu exportieren .
quelle
dort hinzufügen
quelle
sudo nano /etc/profile.d/SCRIPT_NAME.sh
ist einfacher für Anfänger.gksu gedit /etc/profile.d/SCRIPT_NAME.sh
ist das noch einfacher.Immer wenn ich meinen Ordner mit BASH-Skripten "installiere", befolge ich das Testmuster für einen
$HOME/bin
Ordner, der in den meisten .profile-Dateien der letzten Versionen von Ubuntu enthalten ist. Ich habe einen Test gemacht, der so aussiehtEs funktioniert in fast 100% der Fälle und ich kann es in einem GUI-Texteditor mit einem schnellen "Alle ersetzen" ändern, falls ich mich jemals dazu entscheide,
/scripts
näher an meinen$HOME
Ordner heranzurücken. Ich habe dies in 6 Ubuntu-Installationen nicht getan, aber es gibt "immer morgen". SBZT
quelle
Die empfohlene Methode zum Bearbeiten von
PATH
ist aus der/etc/environment
DateiBeispielausgabe von
/etc/environment
:Zum Beispiel, um den neuen Pfad von hinzuzufügen
/home/username/mydir
Starten Sie dann Ihren PC neu.
Weitere Informationen finden Sie hier: EnvironmentVariables
quelle
Öffnen Sie Ihr Terminal, geben Sie
gedit .profile
Folgendes ein und fügen Sie es ein:Terminal schließen und öffnen, es sollte funktionieren.
quelle
Setzen Sie es auf Ihre
~/.bashrc
oder eine Whatevershell, die Sie mit rc (oder einer der oben genannten~/.profile
) verwenden, UND,~/.xsessionrc
damit es auch in X ( Außenhülle ) funktioniert.quelle
Auch wenn Systemskripte dies nicht verwenden, sollte in allen Fällen, in denen ein Pfad (z. B.
$HOME/bin
) zur Umgebungsvariablen PATH hinzugefügt werden soll, dieser verwendet werdenzum Anhängen (anstelle von
PATH="$PATH:$HOME/bin"
) undzum Voranstellen (statt
PATH="$HOME/bin:$PATH"
).Dies vermeidet den falschen Doppelpunkt vor / nach, wenn er
$PATH
anfänglich leer ist, was unerwünschte Auswirkungen haben kann.Siehe z. B. https://unix.stackexchange.com/questions/162891/append-to-path-like-variable-with-creating-leading-colon-if-unset
quelle
Für Ubuntu editiere die
~/.bashrc
und füge die folgende Zeile hinzu.. ~/.bash_profile
Bearbeiten Sie dann Ihr .bash_profil nach Bedarf .....
quelle
.bash_profile
Sie "nach Bedarf bearbeiten " können. Was genau muss ich mit dem machen.bash_profile
?.profile
oder.bash_profile
sollte Quelle.bashrc
. Nicht umgekehrt.