前言
現在,越來越多的人趨向使用ZSH取代(Linux)原本的Bash作為自己的終端Shell。的確,ZSH才是適用于現代的Shell:
- 更豐富的命令提示
- 更鮮明的演示標記
- 更強大的插件支持
什么是ZSH
回答什么是ZSH前,我們先解釋什么是Bash:
Bash最早在1989年發布第一個正式版本(2020年12月7日還發布了最新穩定版本5.1)。是Shell的一個版本。
而ZSH和Bash一樣,ZSH也是終端內的一個命令行解釋器(Shell),
具體表現為其作用是用戶輸入一條命令,Shell 就立即解釋執行一條。不局限于系統、語言等概念、操作方式和表現方式等。比如:我們使用的cd
、wget
、curl
和mount
等命令。
傳統的shell(如:Bash),命令和顯示的文字以單色為主;而ZSH不僅支持彩色字體,還支持命令填充:
macOS安裝ZSH
macOS安裝ZSH過于簡單,我們先講解。
默認情況下:
- macOS High Sierra(mac10.13系統)系統自帶ZSH
- macOS Catalina(mac10.15系統)系統開始,默認使用ZSH。
所以,如果你的系統,是macOS Catalina以后的版本,可以直接跳過此步驟(下列的激活ZSH也跳過)
激活ZSH
舊版本的macOS也是有自帶zsh,你可以在終端內輸入:
cat /etc/shells
可以看到,有一個/bin/zsh
選項,說明已安裝
如果沒有/bin/zsh
選項,可能是你的macOS版本實在是太舊,可以使用Homebrew去安裝ZSH:
brew install zsh
?有了/bin/zsh
選項后,我們設置為默認Shell,然后輸入密碼,最后,重啟終端,就是ZSH了。
chsh -s /bin/zsh
配置Oh-my-zsh
1. 什么是Oh-my-zsh
ZSH的功能極其強大,只是配置過于復雜,起初只有極客才在用。后來,一些極客為了讓更多人受益,開發了Oh-my-zsh這個插件,用來簡化zsh的配置,讓zsh更加容易上手。
2. 安裝Oh-my-zsh
Oh-my-zsh十分簡單,可以看看項目地址:https://github.com/ohmyzsh/ohmyzsh。
官方配置非常簡單,但是因為項目官方腳本在GitHub的原因,國內訪問可能有點困難,為此給大家提供三個方法配置。
官方配置
Linux/Mac打開終端,輸入官方提供的腳本:
sh -c "$(curl -fsSL https://raw.githubusercontent.com/ohmyzsh/ohmyzsh/master/tools/install.sh)"
為了保證腳本能順利運行,你的Linux/Mac
服務器需要:
- 提前安裝
git
、curl
- 可以成功連接GitHub
- 如果有
~/.zshrc
文件,最好提前備份
如果上述方式下載不下來,可以自己用git clone(有的時候git clone 不下來,可以多試幾次)
git clone https://github.com/ohmyzsh/ohmyzsh.git ~/.oh-my-zsh 失敗了
手動配置
其實,手動配置重復的內容就是我寫的腳本配置:
- 在oh-my-zsh的github主頁,手動將zip包下載下來。
- 將zip包解壓,拷貝至
~/.oh-my-zsh
目錄。 - 執行
cp ~/.oh-my-zsh/templates/zshrc.zsh-template ~/.zshrc
或手動復制~/.oh-my-zsh/templates/zshrc.zsh-template內文件內容到~/.zshrc內。(如果沒有~/.zshrc文件,可以手動創建) - 重啟終端或終端輸入
source ~/.zshrc
使配置生效
不是很建議普通用戶使用手動配置
去配置Oh-my-zsh。
配置主題和內置插件:
vim ~/.zshrc,然后添加以下兩行(注意注釋已存在的)
ZSH_THEME="alanpeabody"
plugins=(git web-search jsontools z vi-mode zsh-syntax-highlighting zsh-autosuggestions)
其中zsh-syntax-highlighting zsh-autosuggestions是第三方插件,需要自己git clone
git clone https://github.com/zsh-users/zsh-autosuggestions ~/.oh-my-zsh/custom/plugins/zsh-autosuggestions?
git clone https://github.com/zsh-users/zsh-syntax-highlighting ~/.oh-my-zsh/custom/plugins/zsh-syntax-highlighting?