澄清重新:ZSH 啟動/關閉文件
我剛剛升級到 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
. 您很少需要其他啟動文件。