Shell

澄清重新:ZSH 啟動/關閉文件

  • April 13, 2020

我剛剛升級到 macOS Catalina,新的 shell 是 ZSH。因此,由於這是一個全新的開始,我正在嘗試使用別名、函式等設置我的 shell 環境,就像我在 bash 中所做的那樣。當我在文件中遇到這個時,我試圖弄清楚什麼去哪兒了

然後從 讀取命令$ZDOTDIR/.zshenv。如果 shell 是登錄 shell,則從 讀取命令/etc/zprofile,然後 $ZDOTDIR/.zprofile. 然後,如果 shell 是互動式的,則從 讀取命令/etc/zshrc,然後$ZDOTDIR/.zshrc. 最後,如果shell是一個登錄shell,/etc/zlogin並且$ZDOTDIR/.zlogin被讀取。

令人困惑的部分…

  • 如果它是一個登錄外殼,它會讀取/etc/zprofile然後$ZDOTDIR/.zprofile
  • 最後,如果shell是一個登錄shell,/etc/zlogin並且$ZDOTDIR/.zlogin被讀取。

如果我通過 SSH 連接到我的 Mac,它就是一個登錄 shell。所以既然我需要配置它,我需要(或應該)修改哪些文件?我想幫助回答這個問題可能有助於理解和之間的區別.zprofile所以.zlogin,這裡的任何指導都會很棒。

*profile文件和文件在相同的*login條件下被讀取:當且僅當 shell 是登錄 shell(並且不使用諸如 的選項呼叫no_rcs)。該手冊將它們單獨列出,因為它們以相對於*rc文件的不同順序被呼叫。

該名稱*profile來自Bourne shellsh (其中 ksh 、bash、dash 和其他大多數是具有額外功能的重新實現)。該名稱來自csh。Zsh 更像 sh,但同時具有兩者的特性,所以我想這就是它支持這兩個名稱的原因。*login

通常,無論您使用*profile還是*login. 但是文件的優點是*profile它們是在. _*rc``*rc``*profile``.zshrc``.zprofile``$PATH``*profile``*login

因此,將登錄時配置(通常主要是環境變數)~/.profile放在~/.zshrc. 您很少需要其他啟動文件。

引用自:https://unix.stackexchange.com/questions/579693