我使用的是 Mac,並且剛剛使用 Oh-my-zsh 從 Bash 遷移到 Zsh。
一切正常,除了我的 $PATH 現在缺少幾個條目,例如 nodeJS 二進位檔案的路徑。
我目前使用的解決方法是從 bash 複製 $PATH 並將其貼到 .zshrc 中,這並不是很乾淨。
有沒有更好的方法讓 zsh 上的 $PATH 擁有 bash 上的所有條目?
答案1
一般來說,在大多數類 Unix 系統上,shell 在 /etc 中有一些基本設定檔。重要的檔案名稱模式包括任何提及 shell 名稱的內容,至少對於 bash,包括檔案「profile」。這些相同的檔案可能會呈現為 .,例如 os .cshrc、.bashrc 和 .profile 等。
Bash,當作為登入 shell 啟動時,sources /etc/profile
(如果該檔案存在)。讀取該檔案後,它會依序查找~/.bash_profile
、~/.bash_login
、 和。~/.profile
在這些檔案中,可以更改 PATH,但它也可以獲得其他程式來設定路徑。如果它是互動式 shell,但不是登入 shell,它將來源~/.bashrc
.
對於 Mac,檢查 /etc/profile 會發現一個名為“path_helper”的程序,該程式的手冊頁顯示牠喜歡在 /etc/path.d 中儲存額外的路徑。
該模式 .d 也被廣泛使用,並且是查找更多配置文件的好地方。