zsh+on-my-zsh配置教程指南(程序員必備)【已備份】
[oh-my-zsh讓終端好用到飛起~](https://juejin.im/post/5d773da76fb9a06aff5e9a99)
本文以CentOS 7/Mac 為例彰导,介紹zsh的配置使用教程硼补。
準備
查看當前環(huán)境shell
echo?$SHELL
<!-- more -->
查看系統(tǒng)自帶哪些shell
cat?/etc/shells
安裝zsh
yuminstall zsh# CentOSbrew install zsh# mac安裝
將zsh設(shè)置為默認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出現(xiàn)了戳鹅,有了這個東東均驶,zsh配置起來就方便多了!
安裝oh-my-zsh
有若干安裝方式枫虏,介紹三種:
1.自動安裝
wget https://github.com/robbyrussell/oh-my-zsh/raw/master/tools/install.sh -O - | sh
2.手動安裝
git clonegit://github.com/robbyrussell/oh-my-zsh.git ~/.oh-my-zshcp ~/.oh-my-zsh/templates/zshrc.zsh-template ~/.zshrc
3.真-手動安裝
在oh-my-zsh的github主頁妇穴,手動將zip包下載下來。
將zip包解壓隶债,拷貝至~/.oh-my-zsh目錄腾它。此處省略拷貝的操作步驟。
執(zhí)行cp ~/.oh-my-zsh/templates/zshrc.zsh-template ~/.zshrc
三選一即可燃异,適合各種環(huán)境下的安裝,然后需要source ~/.zshrc將配置生效继蜡。以下修改了.zshrc文件之后回俐,都執(zhí)行一下這個命令。
zsh主題
通過如下命令可以查看可用的Theme:
# ls ~/.oh-my-zsh/themes
如何修改zsh主題呢稀并?
編輯~/.zshrc文件仅颇,將ZSH_THEME="candy",即將主題修改為candy。我采用的steeef碘举。
zsh擴展
在~/.zshrc中找到plugins關(guān)鍵字忘瓦,就可以自定義啟用的插件了,系統(tǒng)默認加載git引颈。
git插件
命令內(nèi)容可以參考cat ~/.oh-my-zsh/plugins/git/git.plugin.zsh耕皮。
常用的:
gapa? ? git add--patchgc!? ? gitcommit-v--amendgcl? ? gitclone--recursivegclean? ? gitreset--hard && git clean -dfxgcm? ? git checkoutmastergcmsg? ? gitcommit-mgco? ? git checkoutgd? ? git diffgdca? ? git diff--cachedgp? ? git pushgrbc? ? git rebase--continuegst? ? gitstatusgup? ? git pull--rebase
完整列表:https://github.com/robbyrussell/oh-my-zsh/wiki/Plugin:git
extract
解壓文件用的境蜕,所有的壓縮文件,都可以直接x filename凌停,不用記憶參數(shù)
當然粱年,如果你想要用tar命令,可以使用tar -加tab鍵罚拟,zsh會列出參數(shù)的含義台诗。
autojump
按照官方文檔介紹,需要使用如下命令安裝赐俗,而不是一些博客中的介紹:
yuminstall autojump-zsh# CentOSbrew install autojump# Mac
CentOS安裝好之后拉队,需要在~/.zshrc中配置一下,除了在plugins中增加autojump之外阻逮,還需要添加一行:
[[ -s ~/.autojump/etc/profile.d/autojump.sh ]]?&& . ~/.autojump/etc/profile.d/autojump.sh
安裝好之后粱快,記得source ~/.zshrc,然后你就可以通過j+目錄名快速進行目錄跳轉(zhuǎn)夺鲜。支持目錄名的模糊匹配和自動補全皆尔。
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?某個文件流炕,可以在終端直接輸出文件內(nèi)容,bat?相比?cat?增加了行號和顏色高亮 ??
brew?install?bat
常用快捷鍵
命令歷史記錄
一旦在 shell 敲入正確命令并能執(zhí)行后仅胞,shell 就會存儲你所敲入命令的歷史記錄(存放在~/.zsh_history?文件中)每辟,方便再次運行之前的命令「删桑可以按方向鍵↑和↓來查看之前執(zhí)行過的命令
可以用?r來執(zhí)行上一條命令
使用?ctrl-r?來搜索命令歷史記錄
命令別名
可以簡化命令輸入渠欺,在?.zshrc?中添加?alias shortcut='this is the origin command'?一行就相當于添加了別名
在命令行中輸入?alias?可以查看所有的命令別名
使用技巧
連按兩次Tab會列出所有的補全列表并直接開始選擇,補全項可以使用 ctrl+n/p/f/b上下左右切換
智能跳轉(zhuǎn)椎眯,安裝了 autojump 之后挠将,zsh 會自動記錄你訪問過的目錄,通過 j 目錄名 可以直接進行目錄跳轉(zhuǎn)编整,而且目錄名支持模糊匹配和自動補全舔稀,例如你訪問過 hadoop-1.0.0 目錄,輸入j hado 即可正確跳轉(zhuǎn)掌测。j --stat 可以看你的歷史路徑庫内贮。
命令選項補全。在zsh中只需要鍵入 tar -<tab> 就會列出所有的選項和幫助說明
在當前目錄下輸入 .. 或 ... ,或直接輸入當前目錄名都可以跳轉(zhuǎn)夜郁,你甚至不再需要輸入?cd?命令了什燕。在你知道路徑的情況下,比如?/usr/local/bin?你可以輸入?cd /u/l/b?然后按進行補全快速輸入
目錄瀏覽和跳轉(zhuǎn):輸入 d拂酣,即可列出你在這個會話里訪問的目錄列表秋冰,輸入列表前的序號,即可直接跳轉(zhuǎn)婶熬。
命令參數(shù)補全剑勾。鍵入?kill ?就會列出所有的進程名和對應(yīng)的進程號
更智能的歷史命令。在用或者方向上鍵查找歷史命令時赵颅,zsh支持限制查找虽另。比如,輸入ls,然后再按方向上鍵饺谬,則只會查找用過的ls命令捂刺。而此時使用則會仍然按之前的方式查找,忽略 ls
多個終端會話共享歷史記錄
通配符搜索:ls -l **/*.sh募寨,可以遞歸顯示當前目錄下的 shell 文件族展,文件少時可以代替?find。使用?**/?來遞歸搜索
擴展環(huán)境變量拔鹰,輸入環(huán)境變量然后按 就可以轉(zhuǎn)換成表達的值
在 .zshrc 中添加?setopt HIST_IGNORE_DUPS?可以消除重復(fù)記錄仪缸,也可以利用?sort -t ";" -k 2 -u ~/.zsh_history | sort -o ~/.zsh_history?手動清除
最后
Github-Michael728/my-config-files?附上我的配置文件地址;
zsh+on-my-zsh配置教程指南?本文地址
參考
Linux
Mac