文章首發(fā)于http://szhshp.org/tech/2017/05/28/zshlaunch.html
轉(zhuǎn)載請(qǐng)注明
更新歷史:
- 2017年05月28日
- 攢寫(xiě)最初正文
- 2017年07月09日
- 添加插件推薦
Zsh
目前常用的 Linux 系統(tǒng)和 OS X 系統(tǒng)的默認(rèn) Shell 都是 bash署辉,但是真正強(qiáng)大的 Shell 是深藏不露的 zsh慷蠕, 這貨絕對(duì)是馬車中的跑車,跑車中的飛行車嘱支,史稱『終極 Shell』,但是由于配置過(guò)于復(fù)雜蛛芥,所以初期無(wú)人問(wèn)津庇配,很多人跑過(guò)來(lái)看看 zsh 的配置指南售睹,什么都不說(shuō)轉(zhuǎn)身就走了越锈。直到有一天仗嗦,國(guó)外有個(gè)窮極無(wú)聊的程序員開(kāi)發(fā)出了一個(gè)能夠讓你快速上手的zsh項(xiàng)目,叫做「oh my zsh」甘凭,Github 網(wǎng)址是:https://github.com/robbyrussell/oh-my-zsh稀拐。這玩意就像「X天叫你學(xué)會(huì) C++」系列,可以讓你神功速成对蒲,而且是真的钩蚊。
安裝zsh和oh-my-zsh
<pre >
sudo apt-get install zsh git wget
sh -c "$(curl -fsSL https://raw.github.com/robbyrussell/oh-my-zsh/master/tools/install.sh)"
chsh -s /bin/zsh
reset
</pre>
使用
首先, 使用這行命令可以查看當(dāng)前使用的Shell
<pre >
echo $SHELL
</pre>
設(shè)置Zsh為默認(rèn)Shell
正常情況, 運(yùn)行下面代碼即可:
<pre class="">
chsh -s /bin/zsh
</pre>
然鵝, 這里可能出現(xiàn)很多情況, 比如權(quán)限不夠, 或者路徑不是/bin/zsh
, 這個(gè)時(shí)候先查看一下所有的Shell
<pre >
cat /etc/shells
</pre>
然后將zsh那個(gè)設(shè)置成對(duì)應(yīng)的shell
<pre >
chsh -s [which zsh]
</pre>
但是, 這里依然不一定生效, 可能會(huì)出現(xiàn)chsh: PAM authentication failed
的錯(cuò)誤
那么就使用這個(gè)方法:
well, my solution maybe help you
sudo vim /etc/pam.d/chsh
then, comment auth required pam_shells.so
sudo chsh [user] -s [which zsh]
如果依然不行, 那么就只能直接修改sudo vi /etc/passwd
文件
Open /etc/passwd:
sudo vi /etc/passwd
Find the line with your username:username:x:1634231:100:Your Name:/home/username:/bin/bash
and replace bash with zsh:username:x:1634231:100:Your Name:/home/username:/bin/zsh
Log out and log in back for the changes to take effect.
主題設(shè)置
設(shè)置主題需要使用oh-my-zsh
<pre >
vi ~/.zshrc
</pre>
即可打開(kāi)配置, 然后設(shè)置, 就可以使用oh-my-zsh
下面theme文件夾里面的主題了
<pre >
ZSH_THEME=robbyrussell
</pre>
別名設(shè)置
就是給累贅的命令行增加個(gè)別名, 在配置文件末端進(jìn)行設(shè)置即可:
<pre >
Example aliases
alias zshconfig="gedit ~/.zshrc"
alias ohmyzsh="mate ~/.oh-my-zsh"
alias cls='clear'
alias show='nautilus'
</pre>
取消第一行注釋之后就可以通過(guò)zshconfig
快速打開(kāi)配置文件了
插件設(shè)置
oh my zsh 項(xiàng)目提供了完善的插件體系,相關(guān)的文件在~/.oh-my-zsh/plugins
目錄下蹈矮,默認(rèn)提供了100多種,大家可以根據(jù)自己的實(shí)際學(xué)習(xí)和工作環(huán)境采用鸣驱,想了解每個(gè)插件的功能泛鸟,只要打開(kāi)相關(guān)目錄下的 zsh 文件看一下就知道了。
插件也是在.zshrc里配置踊东,找到plugins關(guān)鍵字北滥,你就可以加載自己的插件了,系統(tǒng)默認(rèn)加載 git 闸翅,你可以在后面追加內(nèi)容再芋,如下:
<pre class="">
plugins=(git textmate ruby autojump osx mvn gradle)
</pre>
autojump
installation
首先安裝autojump:
sudo apt install autojump
最后把以下代碼加入.zshrc(git是默認(rèn)的插件):
<pre class="">
plugins=(git autojump)
</pre>
然后在最末端加入:
<pre class="">
[[ -s ~/.autojump/etc/profile.d/autojump.sh ]] && . ~/.autojump/etc/profile.d/autojump.sh
</pre>
你可能需要在終端里面執(zhí)行一次Reload或者Log Off一次才能看到改變
這樣就可以了
使用
最主要的就是j
命令:
<pre class="">
j [name]
</pre>
autojump首先會(huì)查找含有上方關(guān)鍵字的路徑的訪問(wèn)權(quán)重, 然后進(jìn)入權(quán)重最大的那個(gè)文件夾, 當(dāng)然需要你先進(jìn)入一次這個(gè)文件夾
可以通過(guò)輸入:
<pre class="">
j --stat
</pre>
查看訪問(wèn)過(guò)的各個(gè)文件夾的權(quán)重
Git
默認(rèn)開(kāi)啟的一個(gè)插件, 會(huì)在repo里面自動(dòng)顯示git相關(guān)信息
Ubuntu
這個(gè)其實(shí)只是一些alias而已
主要有一些很好用的alias:
ag = sudo Apt-Get
agi = sudo Apt-Get Install
agd = sudo Apt-Get Dselect-upgrade
By now you already can guess almost all aliases