Wechsel von Bash zu Zsh: PATH zurücksetzen

Wechsel von Bash zu Zsh: PATH zurücksetzen

Ich bin auf einem Mac und bin gerade mit Oh-my-zsh von Bash zu Zsh gewechselt.

Es funktioniert alles einwandfrei, außer dass in meinem $PATH jetzt mehrere Einträge fehlen, beispielsweise der Pfad zu den NodeJS-Binärdateien.

Der Workaround, den ich im Moment verwendet habe, besteht darin, meinen $PATH aus der Bash zu kopieren und in .zshrc einzufügen, was nicht wirklich sauber ist.

Gibt es eine bessere Möglichkeit, dafür zu sorgen, dass mein $PATH auf zsh alle Einträge hat, die er auf bash hat?

Antwort1

Im Allgemeinen haben Shells auf den meisten Unix-ähnlichen Systemen einige grundlegende Konfigurationsdateien in /etc. Wichtige Dateinamenmuster umfassen alles, was den Shell-Namen erwähnt, und zumindest für Bash die Datei „Profil“. Diese gleichen Dateien können als . wiedergegeben werden, wie z. B. .cshrc, .bashrc und .profile usw.

Wenn Bash als Login-Shell gestartet wird, verwendet es Quellen /etc/profile, wenn diese Datei existiert. Nach dem Lesen dieser Datei verwendet es Quellen für ~/.bash_profile, ~/.bash_login, und ~/.profile, in dieser Reihenfolge. In diesen Dateien kann der PATH geändert werden, aber es können auch andere Programme Quellen verwenden, um Pfade festzulegen. Wenn es sich um eine interaktive Shell, aber nicht um eine Login-Shell handelt, verwendet es Quellen ~/.bashrc.

Beim Mac zeigt die Untersuchung von /etc/profile ein Programm namens „path_helper“, dessen Manpage verrät, dass es gerne zusätzliche Pfade in /etc/path.d speichert.

Dieses Muster, .d, wird ebenfalls häufig verwendet und ist ein guter Ort, um nach weiteren Konfigurationsdateien zu suchen.

verwandte Informationen