什麼是 zsh,要想解釋好這個問題,那麼得先說明什麼是 shell。不負責任的解釋說法就是 shell 就是一個殼。這個殼可不是蝸牛的殼,而是計算機的一個殼,固然也不是計算機的外殼啦,這個殼是相對於計算機內核的一個殼。是指「提供使用者使用界面」的軟件,也能夠說是一種命令解析器,它將人類輸入的字符變成計算機能夠識別的字符,或者是展示出計算機所計算出來的結果。
同時 shell 也是一種腳本語言,能夠有不少有意思的用法。傳統意義上的 shell 指的是命令行形式的 shell,在 Unix/Linux 系統下經常使用的 shell 有 bash/zsh/ksh/sh/csh 等等不一而同。mysql
咱們最經常使用的也是不少操做系統默認的 shell 就是 bash,它是一個爲 GUN 計劃編寫的 shell,全稱爲 Bourne-Again SHell。而今天的主角顯然不是這位默認集成的 bash,今天的主人翁是以擁有更增強大功能著稱的 zsh。git
zsh 是一款功能強大的 shell 軟件,它能夠兼容 bash,而且提供了不少高效的改進:
- 更好的自動補全
- 更好的文件名展開
- 強大的定製性
## 將 zsh 做爲默認終端
首先先看看當前系統中有哪些可使用的終端:
`cat /etc/shells`
個人電腦中顯示以下:
```
/bin/bash
/bin/csh
/bin/ksh
/bin/sh
/bin/tcsh
/bin/zsh
```
在 Mac 下已經默認安裝了,
通常的安裝方法就是:
`sudo yum install zsh`
`sudo apt-get install zsh`
更多的安裝方法能夠查看這個網址:[http://www.zsh.org/](http://www.zsh.org/)程序員
安裝完成後敲擊如下內容到終端:
`chsh -s /bin/zsh`
若是一切順利,那麼再次打開終端的時候 zsh 就會是默認的終端。github
單單是用 zsh 是一件很是苦惱的事情,對於非程序員光是 shell 就已經算是很難以使用了,不過我想應該不會有非程序員使用終端吧。
zsh 相對於 bash 來講增長了不少的功能,因此是使用難度也天然而然的就提高了不少。還好有一羣愛折騰的年輕小夥子,開發了一款 zsh 的插件集合——
「Oh My ZSH」算法
>Oh-My-Zsh is an open source, community-driven framework for managing your ZSH configuration. It comes bundled with a ton of helpful functions, helpers, plugins, themes, and a few things that make you shout...sql
這是 Oh My ZSH 的官方介紹,能夠在 [http://ohmyz.sh/](http://ohmyz.sh/) 中看到它的身影,它簡明意概的說明了它是一個開源的管理 zsh 配置框架,它內置了很是多的插件、主題、functions等等。安裝 oh my zsh 也是一件很是簡單的事情,只要在終端中鍵入:(須要有 git 環境。安裝同 zsh,只要把 zsh 替換成 git 便可)
`wget https://github.com/robbyrussell/oh-my-zsh/raw/master/tools/install.sh -O - | sh`
固然咱們也能夠選擇使用原碼安裝:
`git clone git://github.com/robbyrussell/oh-my-zsh.git ~/.oh-my-zsh`
`cp ~/.oh-my-zsh/templates/zshrc.zsh-template ~/.zshrc`
這些命令都不復雜,若是一切順利的話,安裝完成以後咱們再次打開終端時,咱們的終端就會變得和原來大不同,終端會以多彩的形式呈現出來。oh my zsh 有不少強大的配置,這裏就不展開說了,zsh 的配置主要集中在用戶當前目錄的 .zshrc 裏了,咱們能夠根據官網的介紹來配置咱們的 zsh。shell
好馬配好鞍,有了一個強大的終端以後怎麼能夠沒有一個配套的主題和第三方終端工具呢?按照個人審美習慣我從衆多的 zsh 的主題中選擇了 agnoster 這個主題以及一款很是好用的終端工具 iTerm。具體怎麼安裝和配置我就不在這裏展開了,百度一下就能夠有很是多的答案越於眼前了。在 Mac 系統下通常遇到的錯誤都是沒有安裝蘋果自家的 Command line 引發的,只要安裝了已經基本就不會遇到什麼錯誤了。跟着晚上的教程一步一步作準沒錯。數據庫
在咱們使用終端的時候每每會爲頻繁的輸入路徑而煩惱,雖然 zsh 已經有很是強大的路徑補全功能,但任然不能知足咱們對於效率的追求。而這麼強大的 zsh 這麼可能會沒有解決方案呢?答案是確定有,是有的。在 zsh 的衆多插件當中,一款名爲 autojump 的插件知足了咱們的需求。autojump - a faster way to navigate your filesystem,這是一款很是好用的插件,它經過記錄咱們經常使用目錄並經過必定的算法分析咱們將要去的目錄,以達到快速到達的目的。好比說我要啓動 MySql 數據庫,那麼我就得這樣:bash
`cd /usr/local/mysql/support-files/`
`mysql.server start`
而若是咱們使用 autojump 的話,這一操做將變得極其簡單,打開 MySQL 將會變成這樣:
`j mysql`
`mysql.server start`
由於我常常訪問這個目錄,因此 aotojump 會記錄下這個路徑,這樣在我鍵入 `j mysql` 的時候,它就會自動幫我跳轉到這個目錄下。能夠說是很是的方便。咱們也能夠爲某個目錄設置權重,這樣就能夠方便的「初始化」想要快速到達的目錄了。autojump 不只僅支持 zsh,像 bash,fish都是支持的。框架
使用好終端能夠方便咱們的操做,可讓咱們以一種不一樣角度去感覺計算機,這裏要感謝 Mac OS,若是不是它我也不會踏上 shell 這一條道路上來,讓我感覺到了 Unix/Linux 的魅力所在。之前也經常使用虛擬機折騰 Linux 系統,但每每都是一時熱情,畢竟對於一個並非很懂 Linux 的人來講,不少問題都會讓本身很沮喪。而 Mac 這種開箱即用,並不須要折騰的系統或許是體驗 Unix 哲學的最佳棲息地。