it-swarm-eu.dev

Wie ändere ich meinen PATH, damit die Änderungen in jeder Terminal-Sitzung verfügbar sind?

Ich möchte ein Verzeichnis hinzufügen, um meinen Suchpfad zu durchsuchen. Ich weiß, dass ich die Umgebungsvariable PATH ändern muss. Ich möchte jedoch, dass die Änderung dauerhaft ist, damit sie für jedes Terminal-Fenster, das ich öffne, immer wirksam ist.

In https://help.ubuntu.com/community/EnvironmentVariables gibt es eine Menge verwirrender und möglicherweise widersprüchlicher Informationen

Ich benutze Ubuntu 10.04. Angenommen, ich möchte /usr/local/foo zu meinem PATH hinzufügen. Welche Datei (.bashrc, .profile, .bash_login, etc ...) soll ich ändern und wie sollen die neuen Zeilen aussehen?

54
Joshua Flanagan

Der folgende Befehl fügt Ihrem aktuellen Pfad einen Pfad hinzu:

export PATH=$PATH:/my/custom/path

Wenn Sie möchten, dass Ihr Setup diesen Befehl jedes Mal ausführt, können Sie ihn an mehreren Stellen ablegen. Wenn Sie sich anmelden, werden die folgenden Skripte in dieser Reihenfolge ausgeführt:

/etc/profile      (which starts by loading everything in /etc/profile.d)
~/.profile        (which starts by loading ~/.bashrc if you are running bash)

Notizen

  • ~/.profile wird nur geladen, wenn ~/.bash_profile und ~/.bash_login NICHT vorhanden sind. Andernfalls werden sie zumindest durch Bash geladen. Es wird empfohlen, .profile und nicht die bash-spezifischen Skripte zu verwenden. Wenn Sie also in diesen Versuchen .bash_login erstellt haben, , löschen Sie es jetzt.

  • ~/.bashrc wird nur geladen, wenn Sie eine interaktive Sitzung ausführen. (etwas mit einer Eingabeaufforderung, wo Sie tatsächlich etwas eingeben können).

  • ~/.bashrc wird immer wieder geladen , wenn Sie ein neues Terminal öffnen . Also eine neue Registerkarte im Gnome-Terminal, ein neues virtuelles Terminal usw. Auch wenn Sie sich nicht erneut anmelden, wird .bashrc bei jedem Öffnen einer neuen Shell geladen (und damit die Umgebung zurückgesetzt).

  • Dinge wie byobu sollten wirklich in .profile aufgenommen werden (sonst funktioniert es nicht ;-)

  • Dinge wie Pfade sollten in .profile eingefügt werden, wenn Sie möchten, dass sie außerhalb der interaktiven Sitzungen funktionieren. (Sagen Sie, wenn Sie drücken Alt+F2 in GNOME)

68
Ralf

Ich habe es zum Laufen gebracht, indem ich ~/.profile geändert habe

Es sieht so aus, als wäre das Hinzufügen von ~/bin zu meinem Pfad ein schlechtes Beispiel, da es bereits Code in ~/.profile gibt, der das automatisch erledigt, wenn das Verzeichnis existiert.

Um das Verzeichnis usr/local/foo für jede weitere Sitzung zu meinem Pfad hinzuzufügen, füge ich am Ende meines .profile die folgende Zeile hinzu/bearbeite sie:

export PATH=$PATH:/usr/local/foo

Um dies zu bewirken, musste ich mich jedoch abmelden und wieder anmelden (das Schließen des Terminal-Fensters und das Öffnen eines neuen Fensters funktionierten NICHT).

13
Joshua Flanagan

Führen Sie Folgendes aus, um .profile neu zu laden und die Änderungen ohne Abmelden/Anmelden zu übernehmen:

source ~/.profile
4
Bruno Freitas

Sie können den Pfad zu /etc/environment hinzufügen. Beachten Sie jedoch, dass keine Shell-Erweiterungen funktionieren. Die Variable wird so eingestellt, dass sie buchstäblich die von Ihnen eingegebenen Zeichen enthält.

3
sagarchalise

Wenn Sie ohmyzsh haben, gehen Sie über das Terminal in Ihr Home-Verzeichnis und geben Sie Folgendes ein

nano .zshrc

Am Ende der Datei eingeben

export PATH = "$ HOME/directory_to_include_in_path /: $ PATH"

Starten Sie schließlich Ihr Terminal neu. Hat für mich gearbeitet. Hoffe das war hilfreich.

0
Vallie

Sie können die Datei .bashrc in Ihrem Verzeichnis $HOME ändern.

Fügen Sie am Ende dieser Datei die folgende Zeile hinzu:

export PATH="$HOME/directory_to_include_in_path/:$PATH"

Sie können die .profile -Datei auch in Ihrem $HOME -Verzeichnis ändern, einschließlich der folgenden Zeile:

PATH="$HOME/directory_to_include_in_path/:$PATH"

Das hat bei mir funktioniert.

0
Denner Vieira