[工具]zsh+on-my-zsh配置

本文以CentOS 7/Mac 爲例,介紹zsh的配置使用教程。git

準備

查看當前環境shell

echo $SHELLgithub

查看系統自帶哪些shell

cat /etc/shellsshell

安裝zsh

yum install zsh # CentOS
brew install zsh # mac安裝

將zsh設置爲默認shell

chsh -s /bin/zsh # CentOSoop

## Mac以下
 在 /etc/shells 文件中加入以下一行
/usr/local/bin/zsh
## 接着運行
chsh -s /usr/local/bin/zsh

能夠經過echo $SHELL查看當前默認的shell,若是沒有改成/bin/zsh,那麼須要重啓shell。this

oh-my-zsh

配置zsh是一件麻煩的事兒,愛折騰的程序猿怎麼可能忍受?!因而,oh-my-zsh出現了,有了這個東東,zsh配置起來就方便多了!插件

安裝oh-my-zsh

有若干安裝方式,介紹三種:
1.自動安裝
wget https://github.com/robbyrussell/oh-my-zsh/raw/master/tools/install.sh -O - | sh
2.手動安裝命令行

git clone git://github.com/robbyrussell/oh-my-zsh.git ~/.oh-my-zsh
cp ~/.oh-my-zsh/templates/zshrc.zsh-template ~/.zshrc

3.真-手動安裝code

在oh-my-zsh的github主頁,手動將zip包下載下來。
將zip包解壓,拷貝至~/.oh-my-zsh目錄。此處省略拷貝的操做步驟。
執行cp ~/.oh-my-zsh/templates/zshrc.zsh-template ~/.zshrc

三選一便可,適合各類環境下的安裝,而後須要source ~./.zshrc將配置生效。如下修改了.zshrc文件以後,都執行一下這個命令。教程

zsh主題

經過以下命令能夠查看可用的Theme:
# ls ~/.oh-my-zsh/themes
如何修改zsh主題呢?
編輯~/.zshrc文件,將ZSH_THEME="candy",即將主題修改成candy。我採用的clean。遞歸

zsh擴展

~/.zshrc中找到plugins關鍵字,就能夠自定義啓用的插件了,系統默認加載git

git插件

命令內容能夠參考cat ~/.oh-my-zsh/plugins/git/git.plugin.zsh

經常使用的:

gapa    git add --patch
gc! git commit -v --amend
gcl git clone --recursive
gclean  git reset --hard && git clean -dfx
gcm git checkout master
gcmsg   git commit -m
gco git checkout
gd  git diff
gdca    git diff --cached
gp  git push
grbc    git rebase --continue
gst git status
gup git pull --rebase

完整列表:https://github.com/robbyrussell/oh-my-zsh/wiki/Plugin:git

extract

解壓文件用的,全部的壓縮文件,均可以直接x filename,不用記憶參數

固然,若是你想要用tar命令,可使用tar -加tab鍵,zsh會列出參數的含義。

autojump

按照官方文檔介紹,須要使用以下命令安裝,而不是一些博客中的介紹:

yum install autojump-zsh # CentOS
brew install autojump # Mac

CentOS安裝好以後,須要在~/.zshrc中配置一下,除了在plugins中增長autojump以外,還須要添加一行

[[ -s ~/.autojump/etc/profile.d/autojump.sh ]] && . ~/.autojump/etc/profile.d/autojump.sh

安裝好以後,記得source ~/.zshrc,而後你就能夠經過j+目錄名快速進行目錄跳轉。支持目錄名的模糊匹配和自動補全。
j -stat:能夠查看歷史路徑庫

經常使用快捷鍵

命令歷史記錄

一旦在 shell 敲入正確命令並能執行後,shell 就會存儲你所敲入命令的歷史記錄(存放在~/.zsh_history 文件中),方便再次運行以前的命令。能夠按方向鍵↑和↓來查看以前執行過的命令
能夠用 r來執行上一條命令
使用ctrl-r來搜索命令歷史記錄

命令別名

能夠簡化命令輸入,在.zshrc中添加 alias shortcut='this is the origin command'一行就至關於添加了別名
在命令行中輸入 alias能夠查看全部的命令別名

使用技巧

連按兩次Tab會列出全部的補全列表並直接開始選擇,補全項可使用 ctrl+n/p/f/b上下左右切換

智能跳轉,安裝了 autojump 以後,zsh 會自動記錄你訪問過的目錄,經過 j 目錄名 能夠直接進行目錄跳轉,並且目錄名支持模糊匹配和自動補全,例如你訪問過 hadoop-1.0.0 目錄,輸入j hado 便可正確跳轉。j –stat 能夠看你的歷史路徑庫。

命令選項補全。在zsh中只須要鍵入 tar - 就會列出全部的選項和幫助說明

在當前目錄下輸入 .. 或 … ,或直接輸入當前目錄名均可以跳轉,你甚至再也不須要輸入 cd 命令了。在你知道路徑的狀況下,好比 /usr/local/bin 你能夠輸入cd /u/l/b 而後按進行補全快速輸入
目錄瀏覽和跳轉:輸入 d,便可列出你在這個會話裏訪問的目錄列表,輸入列表前的序號,便可直接跳轉。

命令參數補全。鍵入kill 就會列出全部的進程名和對應的進程號

更智能的歷史命令。在用或者方向上鍵查找歷史命令時,zsh支持限制查找。好比,輸入ls,而後再按方向上鍵,則只會查找用過的ls命令。而此時使用則會仍然按以前的方式查找,忽略 ls
多個終端會話共享歷史記錄

通配符搜索:ls -l **/*.sh,能夠遞歸顯示當前目錄下的 shell 文件,文件少時能夠代替 find。使用 **/ 來遞歸搜索

擴展環境變量,輸入環境變量而後按 就能夠轉換成表達的值

在 .zshrc 中添加 setopt HIST_IGNORE_DUPS 能夠消除重複記錄,也能夠利用sort -t ";" -k 2 -u ~/.zsh_history | sort -o ~/.zsh_history手動清除


轉自Michael翔

相關文章
相關標籤/搜索