我可以刪除 Catalina 上所有與 zsh 無關的 shell 文件,因為 bash 已被棄用以支持 zsh 嗎?
macOS 將繼續使用 zsh,我們可以將 zsh 設置為我已經完成的 Catalina 中的預設 shell。使用 Catalina 是否可以刪除所有 bash 和 oh-my-zsh 的痕跡,因為 zsh 現在是預設 shell?另外我正在使用超級終端,這意味著我不再需要 oh-my-zsh 了。
範例:
Anaconda 安裝程序最初將此腳本添加到我的 bashrc 或 bash_profile,所以當我切換到 zsh 時,我將它複製到 .zshrc。我最近讀到我不需要/不應該複製它,因為它是用於 bash_profile 但現在 macOS 正在轉向使用 zsh 無論如何我想知道我應該做什麼。顯然我需要告訴 zsh Anaconda 在哪裡,但我需要那個腳本還是可以像導出 Anaconda 路徑一樣
export PATH=/Users/ty604/anaconda3/bin:$PATH
?我可以將這個 Anaconda 腳本留在 zshrc 中並刪除所有 bash 痕跡,以便在 bash 消失後讓我的 Mac 適應未來嗎?
export PATH=/Users/ty604/anaconda3/bin:$PATH # added by Anaconda3 2019.03 installer # >>> conda init >>> # !! Contents within this block are managed by 'conda init' !! __conda_setup="$(CONDA_REPORT_ERRORS=false '/Users/ty604/anaconda3/bin/conda' shell.bash hook 2> /dev/null)" if [ $? -eq 0 ]; then \eval "$__conda_setup" else if [ -f "/Users/ty604/anaconda3/etc/profile.d/conda.sh" ]; then . "/Users/ty604/anaconda3/etc/profile.d/conda.sh" CONDA_CHANGEPS1=false conda activate base else \export PATH="/Users/ty604/anaconda3/bin:$PATH" fi fi unset __conda_setup # <<< conda init <<<
由於各種 shell 文件中有重複的導出命令,我在 $PATH 中也有許多重複的路徑。
$ echo $ 小路
/Users/ty604/anaconda3/bin:/Users/ty604/anaconda3/condabin:/Users/ty604/anaconda3/bin:/Users/ty604/.cargo/bin:/usr/local/bin:/usr/bin:/bin:/usr/sbin:/sbin:/Applications/VMware Fusion.app/Contents/Public:/usr/local/share/dotnet:/Users/ty604/flutter/bin
我係統中的文件
.bash_history, .bash_profile, .bashrc, .profile, .zprofile, .zsh_history, .zshrc, .zshrc.pre-oh-my-zsh
我係統中的文件夾
.bash_sessions, .oh-my-zsh, .zsh
您顯示的 shell 初始化程式碼看起來並不
bash
特定,並且應該也可以使用zsh
,假設它所提供的各種腳本也在工作(shell.bash
和conda.sh
)。如果有一個shell.zsh
腳本,您顯然可以選擇使用它而不是shell.bash
.在
zsh
shell 中,PATH
變數綁定到path
數組。您可以使用 使兩者都只包含唯一條目typeset -U
。這是一個使用您的特定值的範例 for
PATH
:$ print -rC1 -- $path /Users/ty604/anaconda3/bin /Users/ty604/anaconda3/condabin /Users/ty604/anaconda3/bin /Users/ty604/.cargo/bin /usr/local/bin /usr/bin /bin /usr/sbin /sbin /Applications/VMware Fusion.app/Contents/Public /usr/local/share/dotnet /Users/ty604/flutter/bin
路徑
/Users/ty604/anaconda3/bin
在開始時是重複的。使路徑獨一無二(現在和將來):$ typeset -U PATH path $ print -rC1 $path /Users/ty604/anaconda3/bin /Users/ty604/anaconda3/condabin /Users/ty604/.cargo/bin /usr/local/bin /usr/bin /bin /usr/sbin /sbin /Applications/VMware Fusion.app/Contents/Public /usr/local/share/dotnet /Users/ty604/flutter/bin
另請參閱如果我推
/bin
到路徑的開頭會發生什麼:$ path=( /bin $path ) $ print -rC1 -- $path /bin /Users/ty604/anaconda3/bin /Users/ty604/anaconda3/condabin /Users/ty604/.cargo/bin /usr/local/bin /usr/bin /usr/sbin /sbin /Applications/VMware Fusion.app/Contents/Public /usr/local/share/dotnet /Users/ty604/flutter/bin
(第二個
/bin
被刪除。)由於
path
數組與PATH
變數相關聯,因此更改也將在那裡可見:$ print -rC1 -- $PATH /bin:/Users/ty604/anaconda3/bin:/Users/ty604/anaconda3/condabin:/Users/ty604/.cargo/bin:/usr/local/bin:/usr/bin:/usr/sbin:/sbin:/Applications/VMware Fusion.app/Contents/Public:/usr/local/share/dotnet:/Users/ty604/flutter/bin