zsh安裝、使用

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

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章