繼續上篇介紹我的終端環境。這篇介紹zsh和z,其實這不侷限於os x,在所有的*nix系統中都是可用的。
zsh作為bash的替代品,自然很多人要問:why zsh? 在zsh workshop 有個長長的功能列表,用來回答這個問題。這裡講下我選擇zsh的原因,當然,也是介紹zsh強大的功能。
相容bash。這使得切換到zsh沒有任何成本。
os x預設的bash版本實在是太老了啊……
拼寫糾正。你總會不小心打錯命令。這時,zsh會進行自動拼寫糾正,如圖:
更強大的補全。
更智慧型的歷史命令。在用或者`方向上鍵`查詢歷史命令時,zsh支援限制查詢。比如,輸入`ls `然後再按方向上鍵,則只會查詢用過的ls命令。而此時使用``則會仍然按之前的方式查詢,忽略`ls`。
多個終端會話共享歷史記錄。經常有多個視窗,tab,tmux的多個session,panel。這些命令歷史不能共享實在是很糟糕的回憶。但是有了zsh之後,這些確實成了回憶了,所有的命令歷史都可以共享。
更智慧型的cd
。首先你甚至不需要再輸入cd了,直接輸入路徑即可。第二,在你知道路徑的情況下,比如/usr/local/bin
你可以輸入cd /u/l/b
然後按進行補全快速輸入。這顯然不夠,zsh還支援路徑替換,如果你其實想進入的是
/usr/local/bin
,不再需要../
了,直接在當前輸入cd bin share
即可,則bin
會替換為share
。在之後我會介紹z和autojumper,目錄跳轉會更方便。
更強大的alias。zsh不僅支援普通的alias,例如:alias ls ='ls --color=auto'
。zsh還支援字尾alias,即以什麼命令開啟特定的字尾名檔案。例如alias -s js=mvim
,輸入hello.js
,會以vim開啟該檔案,而不在需要vim hello.js
。
萬用字元搜尋。這也是我最愛的功能之一。之前講過由於命令補全少用了很多man
命令,而這個功能讓我少用了很多find
命令。 一般的萬用字元搜尋無非是ls -l *.log
,如圖:
在zsh中可以做到遞迴的萬用字元搜尋。使用**/
來遞迴搜尋,如圖
是不是在很多場景下可以取代find
?
以上都是我感覺遷移到zsh之後非常實用的功能。要想從頭開始了解和學習zsh,可以訪問a user』s guide to the z-shell。不過大家都很忙,從頭開始自己學習和配置會很累。所以現在說到zsh,不得不提的就是oh-my-zsh,oh-my-zsh是乙個開源的zsh配置管理框架,提供了大量實用的功能,主題等。現在基本都是標配了吧。如圖是我在用的預設zsh主題robbyrussell
,如圖
可以發它能自動顯示當前所在的git分支以及當前本地狀態(黃色的小叉表示本地有更新未提交)。
當然zsh也不是完美無缺。在我使用過程中有兩點不是很舒服:
1. 自動糾正並不總是那麼智慧型。如圖:
2. 一些符號是zsh中保留的,使用需要轉義,如圖:
下面講下zsh和oh-my-zsh的安裝。
使用brew來安裝zsh
brew install zsh
設定zsh為預設
在/etc/shells
檔案末尾新增
/usr/local/bin/zsh執行:
chsh -s /usr/local/bin/zsh最後記得將
~/.bash_prorile
或者~/.profile
等配置拷貝到~/.zshrc中。
安裝oh-my-zsh
自動安裝:
curl -l | sh
可以選擇自己喜歡的主題。只需要修改~/.zshrc
檔案中的zsh_theme
即可。
z和autojump的功能類似,前者是簡單的shell指令碼實現,後者由python實現,功能都是可以方便自動匹配到你最多使用的目錄並跳轉。我在用的是z,如圖,我在根目錄輸入z github
可以自動跳轉到我常用的notice501.github.com
這個目錄,也就是本部落格的工程目錄。超級方便的工具。autojump用法類似,命令為j
而不是z
兩者的安裝方式:
z
而後將z.sh放入環境變數即可。
autojump
autojump可以直接使用brew安裝
我在用的mac軟體 1 終端環境之iTerm2
之前一直有朋友要我分享下在用的mac軟體,今天有空就來寫一下,可能不止於軟體,會有一些配置或者工具,或者叫環境更合適。有些可能一句話帶過,有些會詳細介紹。也不分類了,想到哪個就寫出來。如果已經寫的足夠長了,就會分幾篇來寫。iterm2 其實現在os x的terminal已經做的很好了,但是iterm...
我在用的Panabit策略設定
明確自己的業務要求,就能在panabit中清晰的設定策略.ip群組定義2個,1個用於不限制的,譬如我,1個用於自制力不強的同事。也可以按公司部門來劃分。只做了流量控制。同事每人給2mb下行流量,限制p2p的上行為400kb,沒限制前,p2p上行到了5mb之多。時間排程是控制星期一 星期六,星期天不控...
mac下我常用的一些軟體
在蘋果發布了mountain lion的開發者預覽版後,我就毫不猶豫的公升級了。剛開始的時候,用起來感覺還挺好的,跟ios融合的很好,我在手機上記錄的一些東西,在mountain lion中都能立即同步過來。更讓我期待的是,新加的通知功能很不錯,以後就可以把一些不太重要的訊息設定成不彈出來提示,有時...