讓你提前體驗 macOS Catalina 的 Shell — Oh My Zsh 配置指南

運維之美2019-08-18 02:26:27


在月初召開的 WWDC 2019 上,Apple 公佈了下一代 macOS — macOS Catalina。除了全新的音樂和電視等 app、支持 iPad 作為外置顯示器等顯而易見的更新,macOS Catalina 還為專業用户帶來了一項重大變化 — Zsh 將取代 Bash,成為操作系統的默認 Shell。

儘管 Apple 沒有對這一改變作出解釋,但根據 The Verge 的 猜測,這可能與 GPLv3 協議有關。macOS 目前使用的 Bash 3.2 版本基於 GPLv2 協議,但新版 Bash 已經轉移到了 GPLv3 協議。

GPLv3 協議對 Apple 這樣的大公司有着更嚴格的限制,這可能是 Apple 不再將 Bash 作為默認 Shell 的原因。


而相比 Bash 來説,Zsh 也擁有許多更強大的功能:更智能的自動補全、命令選項提示、更豐富的主題,等等。

在今秋體驗到 macOS Catalina 正式版之前,我們可以先將 macOS 的默認 Shell 切換到 zsh,熟悉一下新版 Shell 的功能。


本文的目標,就是要幫你打造一個好看、好用的 Zsh 終端。



Zsh 與 Oh My Zsh


Zsh 本體有着強大的功能,但礙於其複雜的配置,對普通用户而言並不太適合。但是,一個開源項目的出現打破了這一局面 —— 它就是本文的主角:Oh My Zsh。


藉助 Oh My Zsh,你只需要進行極為簡單的安裝配置,就可以用上 Zsh,並享受許多酷炫的功能,下面就讓我們正式開始安裝過程。

安裝 Oh My Zsh


macOS Mojave 已經自帶了 Zsh,所以我們直接安裝 Oh My Zsh。安裝過程極為簡單,打開終端,執行一行命令即可:

sh -c "$(curl -fsSL https://raw.githubusercontent.com/robbyrussell/oh-my-zsh/master/tools/install.sh)"


在安裝過程中會提示是否將默認 Shell 切換到 Zsh,按下 Y 並回車即可。

隨後會提示 Password for xxx,輸入你的用户密碼並回車即可。當你看見大大的 Oh my zsh 標誌時就表示 Oh My Zsh 已經安裝成功了。



基本設置


安裝好 Oh My Zsh 後,使用以下命令打開 Zsh 的設置文件:

vim ~/.zshrc


在 vim 編輯器下,你可以使用方向鍵移動光標,按 i 進入編輯模式,編輯好後按 esc 退出編輯模式,隨後輸入 :wq 並回車即可保存。


另外,Mac 下的 Vim 默認是沒有顯示行號 & 開啟語法高亮的,你可以參考以下命令打開行號顯示 & 語法高亮:

cp /usr/share/vim/vimrc ~/.vimrc  #複製 vim 配置模版echo 'syntax on' >> ~/.vimrc  #開啟語法高亮echo 'set nu!' >> ~/.vimrc  #開啟行號顯示


Zsh 的配置文件中提供了詳細的註釋,你可以根據註釋修改相關設置,滿足自己的要求。


例如,你想關閉 Zsh 的自動更新,則定位到 DISABLE_AUTO_UPDATE 一行,根據前面的註釋,刪除行前的註釋符號 # 即可。


保存退出之後,使用以下命令使 Zsh 的配置立即生效:

source ~/.zshrc


設置主題


Oh My Zsh 自帶了大量主題文件。你可以執行以下命令查看自帶的主題:

ls ~/.oh-my-zsh/themes


對於自帶主題的樣式和呈現效果,你可以前往 Oh My Zsh 的 官方 Wiki 查看。

在這裏,我選擇使用 agnoster 作為我的主題。我們需要通過編輯 zsh 配置文件來修改主題:

vim ~/.zshrc


定位到 ZSH_THEME 一行,將雙引號中的內容修改為自己選擇的主題名即可。


修改主題名


保存退出後,執行以下命令使 zsh 的配置立即生效:

source ~/.zshrc


安裝 Powerline 字體


主題設置完成後,終端中卻出現了亂碼的字符:


這是由於我使用的 agnoster 主題中含有特殊字符,需要安裝 Powerline 字體支持才能正常顯示。打開終端,參考以下命令安裝 Powerline 字體:

cd ~/Downloads && git clone https://github.com/powerline/fonts.git  #將 Powerline 字體文件下載到「下載」文件夾中cd fonts && ./install.sh  #安裝所有 Powerline 字體cd && rm -rf ~/Downloads/fonts  #刪除下載的字體文件

隨後,我們按 ⌘, 打開終端偏好設置,在「描述文件 > 文本」中更改字體。


在彈出的窗口中選擇一款 Powerline 字體(所有可選項請參考 Powerline 的 GitHub 頁面),調整一下字體大小即可。


在這裏我選擇了 DejaVu Sans Mono for Powerline 字體,大小設置為 14 磅。


此時回到終端,發現表示文件目錄的箭頭已經可以正常顯示了:



配置終端顏色方案

主題上的配置至此就差不多了,然而默認終端的黑底白字看起來還是有些不舒服。


在這裏,我們不妨使用 Solarized 配色方案來進一步美化終端。首先,使用以下命令下載 Solarized 配色方案:

cd ~/Downloads && git clone git://github.com/altercation/solarized.git  #將配色方案下載到「下載」文件夾中


下載完畢後,我們按 ⌘, 打開終端偏好設置,點擊「描述文件 > ⚙︎⌄ > 導入」。



在彈出的窗口中,先定位到下載的 Solarized 主題位置。這裏為:Downloads > solarized > osx-terminal.app-colors-solarized。


然後再雙擊 Solarized Dark ansi.terminal 導入暗色的 Solarized 配色方案。



隨後,我們在描述文件中選中 Solarized Dark ansi,點擊「默認」將其設為默認配色方案;別忘了把字體改為 Powerline 字體並調整大小。


配色細節修改


重啟一下終端,到這裏,我們漂亮的終端已經基本完成了,但是現在的配色讓人有些看不清字:


因此我們按 ⌘, 打開終端偏好設置,點擊「描述文件 > Solarized Dark ansi」,對配色進行進一步的自定義。單擊你想要更改的顏色,在彈出的小窗口中點選拾色器(像吸管一樣的東西)。


隨後,你可以參考下圖把顏色一項一項吸過去。這裏我的配置綜合了 iTerm 2 的配色和個人的少量修改。


還有一項讓我不爽的地方 —— 文件目錄前那個長長的 [email protected]。通過修改主題配置文件,我們就能去掉它。使用以下命令編輯  agnoster 主題的配置文件:

vim ~/.oh-my-zsh/themes/agnoster.zsh-theme


定位到以下內容:

# Context: [email protected] (who am I and where am I)prompt_context() {  if [[ "$USER" != "$DEFAULT_USER" || -n "$SSH_CLIENT" ]]; then    prompt_segment black default "%(!.%{%F{yellow}%}.)%[email protected]%m"  fi}


在 prompt_segment black default "%(!.%{%F{yellow}%}.)%[email protected]%m" 前面加一個註釋符號 #,保存退出,執行 source ~/.zshrc 使配置立即生效即可。


配置插件


Oh My Zsh 支持許多強大的插件,可以實現語法高亮、命令自動補全等功能。你可以執行以下命令查看自帶的插件:

ls ~/.oh-my-zsh/plugins/


對於自帶插件的功能及使用,你可以前往 
Oh My Zsh 官方 Wiki 查看。

要啟用某個插件,只需要用 vim ~/.zshrc 編輯 zsh 配置文件,定位到 plugins 一行,在括號中添加需要的插件名稱,以空格分隔。保存退出後,別忘了執行  source ~/.zshrc 使配置立即生效。


我使用的插件


  • git

默認啟用的插件,提供了各種 git 命令的縮寫。其官方説明提供了所有縮寫的參考。


  • z

自帶插件,添加到配置文件中即可啟用,可以幫助你快速跳轉到訪問過的文件夾。具體使用方法請自行 Google 或參考 GitHub 文檔。

  • zsh-syntax-highlighting


輸入正確的常用命令會以綠色高亮顯示,輸入錯誤則會顯示其他的顏色。使用以下命令安裝:

git clone https://github.com/zsh-users/zsh-syntax-highlighting.git ${ZSH_CUSTOM:-~/.oh-my-zsh/custom}/plugins/zsh-syntax-highlighting


下載完成後,別忘了把 zsh-syntax-highlighting 添加到配置文件的 plugins 中,並執行 source ~/.zshrc 使配置生效。

  • zsh-autosuggestions


輸入命令時,會用淺色字體給出建議的命令,按 → 即可自動補全。使用以下命令安裝:

git clone https://github.com/zsh-users/zsh-autosuggestions ${ZSH_CUSTOM:-~/.oh-my-zsh/custom}/plugins/zsh-autosuggestions


下載完成後,別忘了把 zsh-autosuggestions 添加到配置文件的 plugins 中,並執行 
source ~/.zshrc 使配置生效。

為了讓提示的字體顏色正確顯示,我們還需要執行:

echo "export TERM=xterm-256color" >> ~/.zshrc  #聲明終端類型echo "ZSH_AUTOSUGGEST_HIGHLIGHT_STYLE='fg=10'" >> ~/.zshrc  #設置建議命令的文字顏色


你可以修改 fg= 後的數字來指定建議命令的文字顏色,數字與顏色的對應表請參考這裏。


小結

至此,你已經完成了 Oh My Zsh 在 macOS 下的基本配置。現在你獲得了一個更漂亮、更強大的終端,相信這能讓你在終端下進行操作時事半功倍。

來源:Steven's Blog
原文:http://t.cn/AiNzPqzY
題圖:
來自谷歌圖片搜索 
版權:
本文版權歸原作者所有
投稿:歡迎投稿,投稿郵箱: [email protected]



推薦閲讀

  • 利用 Oh-My-Zsh 打造你的超級終端

  • 漫談雲計算、虛擬化、容器化

  • 從零開始搭建創業公司後台技術棧

  • 淺談 TCP 的三次握手和四次揮手

  • 史上最全的 Linux 運維工程師面試問答錄


https://hk.wxwenku.com/d/201171348