zsh簡介
zsh是shell語言類型,兼容bash,提供強大的命令行功能,比如tab補全,自動糾錯功能等。缺點就是配置太麻煩,好在有一個叫做oh-my-zsh的開源項目,很好的彌補了這一缺陷,只需要修修改改配置文件,就能很順手。
安裝zsh
查看系統有幾種shell
cat /etc/shells
安裝zsh
yum install zsh
設置當前用戶使用zsh
chsh -s /bin/zsh
安裝oh-my-zsh
-
curl安裝
sh -c "$(curl -fsSL https://raw.githubusercontent.com/robbyrussell/oh-my-zsh/master/tools/install.sh)"
-
wget安裝
sh -c "$(wget -O- https://raw.githubusercontent.com/robbyrussell/oh-my-zsh/master/tools/install.sh)"
修改oh-my-zsh配置文件
vi ~/.zshrc
# 修改插件
plugins=(
# 內置插件,啓用即可
git
cp
mv
# 按兩下esc鍵,用sudo權限
sudo
# 記錄歷史輸入的zsh命令,自動提示,快速使用
zsh-autosuggestions
# zsh 命令高亮
zsh-syntax-highlighting
)
# 修改主題
ZSH_THEME="robbyrussell"
# 修改隨機主題
ZSH_THEME="random"
# 設置哪些主題隨機(可選)
ZSH_THEME_RANDOM_CANDIDATES=(
"robbyrussell"
"agnoster"
)
卸載zsh
sh -c "$(curl -fsSL https://raw.githubusercontent.com/robbyrussell/oh-my-zsh/master/tools/install.sh)" "" --unattended
安裝autojump插件
git clone git://github.com/wting/autojump.git
cd autojump
# 安裝
./install.py
# 卸載
./uninstall.py
安裝完成後根據提示下面命令加入~/.bashrc
或者~/.zshrc
中
安裝zsh-autosuggestions
git clone git://github.com/zsh-users/zsh-autosuggestions $ZSH_CUSTOM/plugins/zsh-autosuggestions
安裝zsh-syntax-highlighting
git clone https://github.com/zsh-users/zsh-syntax-highlighting.git $ZSH_CUSTOM/plugins/zsh-syntax-highlighting
$ZSH_CUSTOM
其實是個變量,代表這個路徑~/.oh-my-zsh/custom
,
也就是安裝到了這個目錄下。還有很多高效插件,等您發掘~oh my zsh官網
// 每次修改了這個`.zshrc`配置文件,需要重載一下,才能生效。
source .zshrc
// 也可以封裝成一個簡寫命令 alias
alias rl='source ~/.zshrc'
zsh使用
-
⌃ + u
:清空當前行 -
⌃ + a
:移動到行首 -
⌃ + e
:移動到行尾 -
⌃ + f
:向前移動 -
⌃ + b
:向後移動 -
⌃ + p
:上一條命令 -
⌃ + n
:下一條命令 -
⌃ + r
:搜索歷史命令 -
⌃ + y
:召回最近用命令刪除的文字 -
⌃ + h
:刪除光標之前的字符 -
⌃ + d
:刪除光標所指的字符 -
⌃ + w
:刪除光標之前的單詞 -
⌃ + k
:刪除從光標到行尾的內容 -
⌃ + t
:交換光標和之前的字符1、兼容 bash,原來使用 bash 的兄弟切換過來毫無壓力,該咋用咋用。
2、強大的歷史紀錄功能,輸入 grep 然後用上下箭頭可以翻閱你執行的所有 grep 命令。
3、智能拼寫糾正,輸入gtep mactalk * -R,系統會提示:zsh: correct ‘gtep’ to ‘grep’ [nyae]? 比妹紙貼心吧,她們向來都是讓你猜的……
4、各種補全:路徑補全、命令補全,命令參數補全,插件內容補全等等。觸發補全只需要按一下或兩下 tab 鍵,補全項可以使用 ctrl+n/p/f/b上下左右切換。比如你想殺掉 java 的進程,只需要輸入 kill java + tab鍵,如果只有一個 java 進程,zsh 會自動替換爲進程的 pid,如果有多個則會出現選擇項供你選擇。ssh + 空格 + 兩個tab鍵,zsh會列出所有訪問過的主機和用戶名進行補全
5、智能跳轉,安裝了autojump之後,zsh 會自動記錄你訪問過的目錄,通過 j + 目錄名 可以直接進行目錄跳轉,而且目錄名支持模糊匹配和自動補全,例如你訪問過hadoop-1.0.0目錄,輸入j hado 即可正確跳轉。j –stat 可以看你的歷史路徑庫。
6、目錄瀏覽和跳轉:輸入 d,即可列出你在這個會話裏訪問的目錄列表,輸入列表前的序號,即可直接跳轉。
7、在當前目錄下輸入 … 或 … ,或直接輸入當前目錄名都可以跳轉,你甚至不再需要輸入 cd 命令了。
8、通配符搜索:ls -l **/*.sh,可以遞歸顯示當前目錄下的 shell 文件,文件少時可以代替 find,文件太多就歇菜了。
git別名
// 比如
`git status`時,只需要輸入`gst`。
`git pull` 時,只需要輸入`gl`。
`git push 時,只需要輸入`gp`等等。
詳見 oh my zsh plugin git.plugin.zsh
參考:https://zhuanlan.zhihu.com/p/19556676