本文以CentOS 7/Mac 為例,介紹zsh的配置使用教程。
準備
檢視當前環境shell
echo $SHELL
<!– more –>
檢視系統自帶哪些shell
cat /etc/shells
安裝zsh
yum install zsh # CentOS
brew install zsh # mac安裝
將zsh
設定為預設shell
chsh -s /bin/zsh # CentOS
# Mac如下
# 在 /etc/shells 檔案中加入如下一行
/usr/local/bin/zsh
# 接著執行
chsh -s /usr/local/bin/zsh
可以通過echo $SHELL
檢視當前預設的shell,如果沒有改為/bin/zsh
,那麼需要重啟shell。
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.真-手動安裝
- 在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
。我採用的steeef
。
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
:可以檢視歷史路徑庫
zsh-autosuggestions
git clone git://github.com/zsh-users/zsh-autosuggestions $ZSH_CUSTOM/plugins/zsh-autosuggestions
在 ~/.zshrc
中配置
plugins=(其他的外掛 zsh-autosuggestions)
因為箭頭→
不太方便,在.zshrc
中自定義補全快捷鍵為逗號,但是又一次遇到了需要輸入逗號的情況,所以,並不太推薦如下修改:
bindkey `,` autosuggest-accept
zsh-syntax-highlighting
git clone https://github.com/zsh-users/zsh-syntax-highlighting.git ${ZSH_CUSTOM:-~/.oh-my-zsh/custom}/plugins/zsh-syntax-highlighting
~/.zshrc
檔案中配置:
plugins=(其他的外掛 zsh-syntax-highlighting)
git-open
git-open外掛可以在你git專案下開啟遠端倉庫瀏覽專案。
git clone https://github.com/paulirish/git-open.git $ZSH_CUSTOM/plugins/git-open
bat
bat
代替 cat
cat
某個檔案,可以在終端直接輸出檔案內容,bat
相比 cat
增加了行號和顏色高亮 ?
brew install bat
常用快捷鍵
-
命令歷史記錄
- 一旦在 shell 敲入正確命令並能執行後,shell 就會儲存你所敲入命令的歷史記錄(存放在
~/.zsh_history
檔案中),方便再次執行之前的命令。可以按方向鍵↑和↓來檢視之前執行過的命令 - 可以用
r
來執行上一條命令 - 使用
ctrl-r
來搜尋命令歷史記錄
- 一旦在 shell 敲入正確命令並能執行後,shell 就會儲存你所敲入命令的歷史記錄(存放在
-
命令別名
- 可以簡化命令輸入,在
.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 -<tab> 就會列出所有的選項和幫助說明
- 在當前目錄下輸入 .. 或 … ,或直接輸入當前目錄名都可以跳轉,你甚至不再需要輸入
cd
命令了。在你知道路徑的情況下,比如/usr/local/bin
你可以輸入cd /u/l/b
然後按進行補全快速輸入 - 目錄瀏覽和跳轉:輸入 d,即可列出你在這個會話裡訪問的目錄列表,輸入列表前的序號,即可直接跳轉。
- 命令引數補全。鍵入
kill <tab>
就會列出所有的程式名和對應的程式號 - 更智慧的歷史命令。在用或者方向上鍵查詢歷史命令時,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
手動清除
參考
Linux
- 終極 Shell
- Ubuntu 16.04下安裝zsh和oh-my-zsh
- Ubuntu 下安裝oh-my-zsh
- 掘金-Shell 中的極品– Zsh
- CentOS 7下autojump無法使用的可能原因
- oh-my-zsh配置你的zsh提高shell逼格終極選擇
Mac
- zsh oh-my-zsh 外掛推薦
- zsh 全程指南-推薦
- iterm主題下載
- 程式設計師內功系列–iTerm與Zsh篇
- Mac 下配置終端環境 iTerm2 + Zsh + Oh My Zsh + tmux
最後
- Github-Michael728/my-config-files 附上我的配置檔案地址;
- zsh+on-my-zsh配置教程指南 本文地址