Bash & Zsh

Kaycheng
5 min readNov 7, 2017

--

BashUnix shell的一種,能執行於大多數類Unix系統的作業系統之上,包括Linux與Mac OS X v10.4都將它作為預設shell。它也被移植到Microsoft Windows上的Cygwin與MinGW,或是可以在MS-DOS上使用的DJGPP專案。在Novell NetWare與Android在上也有移植。Bash是一個命令處理器,通常執行於文字窗口中,並能執行用戶直接輸入的命令。Bash還能從檔案中讀取命令,這樣的檔案稱為指令碼。 Wiki

Zsh(Z shell)Unix shell的一種它可以用作為互動式的登入shell,也是一種強大的shell指令碼命令直譯器。Zsh可以認為是一種Bourne shell的擴充功能,帶有數量龐大的改進,包括一些bash、ksh、tcsh的功能。一個叫做「Oh My Zsh」的用戶社群收錄了Zsh的第三方擴充功能。 — Wiki

意思是Zsh是一種較新的unix shell,可以為terminal加入比bash更多的客製化,所以接下來讓我們一起為iTerm使用zsh,加入客製化吧!

總共五個步驟:

  1. 安裝homebrew
  2. 安裝iTerm 2
  3. 安裝Zsh
  4. 安裝oh my zsh
  5. 客製化Prompt

步驟一:安裝Homebrew

Homebrew — 是 Mac OSX 上的的套件管理工具,方便安裝管理 OSX 裡需要用到但預設沒安裝的套件

打開terminal,輸入:

/usr/bin/ruby -e "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/master/install)"

確認完成,輸入:

brew --version

步驟二:安裝iTerm 2

到官網下載:https://www.iterm2.com/index.html

安裝完成後:

・替換iTerm佈景,使用SOLARIZED按此下載

安裝完solarized後,打開 iTerm,進入以下路徑 iterm → preference → profiles → colors → load presets →import,載入solarized dark。

・替換iTerm字型:打開 iTerm,進入→ preference → profiles → text,换成 Menlo 14 字體。

步驟三:安裝Zsh

在iTerm輸入:

brew install zsh zsh-completions

確認安裝:

zsh --version

・因為Mac預設的shell為bash,所以要改為zsh,輸入:

chsh -s $(which zsh)

確認更改,輸入:

echo $SHELL

若回傳:/bin/zsh 則為成功

步驟四:安裝Oh my zsh

在iTerm輸入:

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

修改theme,在iTerm輸入:

open ~/.zshrc

將打開檔案中的ZSH_THEME="robbyrussell"改為

ZSH_THEME="agnoster"

然後存檔,再重開iTerm,即可看到改變。(這裡的雙引號一定要使用西式雙引號,否則會出現錯誤,導致theme沒有更動。)

因為agnoster有專門配對的字型,所以請到github下載,三個都需要下載:

https://gist.github.com/qrush/1595572

下載完成後,到iTerm → Preferences → Profiles → Text → Change Font,選擇Meslo字體。

步驟五:客製化prompt

因為zsh會讓iTerm顯示長長的電腦名稱,如user@hostname。為了讓它不要顯示。我們要更改zsh設定檔。

打開zshrc這個檔案:

open ~/.zshrc

在zshrc這個檔案,找個地方加入下面這段。最後一行的DEFAULT_USER 中 “yourname” 要填的是你使用者的名稱

# optionally set DEFAULT_USER in ~/.zshrc to your regular username to hide the “user@hostname” info when you’re logged in as yourself on your local machine.
DEFAULT_USER=yourname

然後存檔,就可以看到名稱改變了。

另外,我們可以讓 terminal 用 Sublime 開啟我們想要編輯的「檔案」或「目錄」

將sublime放置在applications下,然後在iTerm輸入:

ln -s /Applications/Sublime\ Text.app/Contents/SharedSupport/bin/subl /usr/local/bin/subl

這樣就可以使用subl指令開啟想要編輯的「檔案」或「目錄」。

Zsh套件:

Auto Suggestions (for Oh My ZSH)

讓Iterm自動產生曾經打過的指令,這裡和Emmet不同(Emmet使用tab鍵),是使用”向右”鍵,將完整指令顯示出來。

檔案來源Github

安裝步驟:

在terminal輸入

git clone git://github.com/zsh-users/zsh-autosuggestions $ZSH_CUSTOM/plugins/zsh-autosuggestions

然後

subl ~/.zshrc(打開zshrc檔案)plugins=(zsh-autosuggestions)(在zshrc檔案,放入這行指令,若有多個plugins,用空白鍵分開)

重新再開iterm,輸入文字就可以看到指令顯示。

--

--

No responses yet