zsh高效命令列

來源:互聯網
上載者:User

標籤:

Zsh

Zsh 也許是目前最好用的 shell,是 bash 替代品中較為優秀的一個。這裡列舉了 zsh 的一些優點:為什麼要使用 zsh。

Mac 內建 zsh,不過我們當然要用最新版啦,其他發行版請參照各自的軟體安裝方法。安裝完畢後,重新開啟 iTerm2。

brew install zshchsh -s `which zsh`

補全

zsh 的命令補全功能非常強大,可以補齊路徑,補齊命令,補齊參數等。(請問你記住 tar 的所有參數了嗎??,只要 tar -加 tab 鍵,再也不用 rtfm 了??)

 zsh auto complete

按下 tab 鍵顯示出所有待選項後,再按一次 tab 鍵,即進入選擇模式,進入選擇模式後,按 tab 切向下一個選項,按 shift+tab 鍵切向上一個選項,ctrl+f/b/n/p 可以向前後左右切換。

 zsh tab 切換

以前殺進程是ps aux | grep xxx查進程的 PID,然後kill PID。有了 zsh,直接kill xxx然後按下 tab 鍵即可~

kill emacs# 按下 tab,變成:kill 59683

別名

zsh 不僅支援普通 alias,還支援針對檔案類型的 alias。我配置的檔案類型 alias 如下:

alias -s gz=‘tar -xzvf‘alias -s tgz=‘tar -xzvf‘alias -s zip=‘unzip‘alias -s bz2=‘tar -xjvf‘alias -s php=vialias -s py=vialias -s rb=vialias -s html=vialias gcid="git log | head -1 | awk ‘{print substr(\$2,1,7)}‘ | pbcopy"

配置完畢之後,在 zsh 下直接輸入xxx.rb,將自動用 vi 開啟,直接輸入xxx.tgz,將直接按照tar -xzvf解壓。最後一個gcid將當前 git 項目的第一個 commit 的 id 複製到系統剪下板(pbcopy是 Mac 下的複製到系統剪下板命令,linux 請參考相應的發行版更改),在執行 rebase 的時候特別方便。

跳轉

zsh 的目錄跳轉更為智能,你無需輸入cd,直接輸入路徑即可。..表示後退一級目錄,../../表示後退兩級,依次類推。(...的作用和../../相同)

輸入d,將列出當前 session 訪問過的所有目錄,再按提示的數字即可進入相應目錄。

~> d0~1~/Applications2~/.proxychains3/opt/homebrew-cask/Caskroom~> 1~/Applications

記錄

zsh 的記錄跨 session,可以共用。記錄支援受限尋找。比如,輸入git,再按向上箭頭,會搜尋用過的所有 git 命令。

萬用字元搜尋

ls *.png尋找目前的目錄下所有 png 檔案,ls **/*.png遞迴尋找。

oh-my-zsh

oh-my-zsh 是最為流行的 zsh 設定檔,提供了大量的主題和外掛程式,極大的拓展了 zsh 的功能,推動了 zsh 的流行,有點類似於 rails 之於 ruby。

# install# via curlsh -c "$(curl -fsSL https://raw.github.com/robbyrussell/oh-my-zsh/master/tools/install.sh)"# via wget sh -c "$(wget https://raw.github.com/robbyrussell/oh-my-zsh/master/tools/install.sh -O -)"

安裝過後,source ~/.zshrc使之生效。

主題

oh-my-zsh 內建了大量主題,可在~/.oh-my-zsh/themes中查看具體的配置。官網提供了一些主題的。也可參見我的知乎回答。

# 我用的主題是 avit,可以很好的顯示 git 資訊/Volumes/Disk Image/cloudoffice  master ?                                     37m> 滑鼠在新一行

外掛程式

oh-my-zsh 提供極為豐富的外掛程式,在~/.oh-my-zsh/plugins目錄下查看具體的配置。在.zshrc中寫入plugin(git autojump osx)即可使用外掛程式,下面介紹幾個特別優秀的外掛程式。

git

精簡 git 命令,減少輸入字元數。參見 Plugin:git。該外掛程式提供的快捷命令比較多,挑幾個常用和好記的記憶即可,不必全記。我常用的有gst, ggp, gco, gcm, gcp 等。

autojump

autojump 按照你的使用頻率記錄路徑,使得目錄的跳轉更為方便。安裝brew install autojump。如需跳轉到包含 ‘foo’ 的目錄,執行j foo,這是最基礎,也是最常用的命令。除此之外,還有jc, jo,jco命令,查看官網文檔擷取更多的使用方法。

osx

該外掛程式增強 Mac 下的使用體驗,提供了如下命令:

  • cdf: 在 Finder 中開啟要 cd 的目錄;

  • quick-look: 快速預覽該檔案,類似於在 Finder 中按下空格鍵;

  • man preview: 在 preview 中開啟 man page;

  • itunes: 命令列操作 iTunes。

> itunesitunes:shift:2: shift count must be <= $#Usage: itunes <option>option:launch|play|pause|stop|rewind|resume|quitmute|unmutecontrol volume setnext|previousplay next or previous trackshuf|shuffle [on|off|toggle]Set shuffled playback. Default: toggle. Note: toggle doesn‘t support the MiniPlayer.volSet the volume, takes an argument from 0 to 100helpshow this message and exit

其他命令可查看外掛程式。

proxychains

proxychains 是命令列的科學上網工具。安裝brew install proxychains-ng。,亞馬遜 S3 儲存服務和 github 並不穩定,有時候需要科學上網才能訪問。

# 原命令brew cask install xxx# 使用 proxychainsproxychains4 brew cask install xxx

 proxychains

其他ag

ag 是一個新的搜尋工具:

  • 與ack相比,速度有了巨大的提升,這裡有一個對比;

  • 搜尋會忽略.gitignore和.hgignore中的 pattern;

  • 不想搜尋的檔案可以把對應的 pattern 寫到.agignore中;

  • 命令比ack短 33%,且一隻手可以按全。

最後一條雖然看似戲謔,卻道出了工具的本質:哪怕是能減少輸入一個字元,也是必要的進步。

htop

htop 是一款運行於 Linux 系統監控與進程管理軟體,用於取代 Unix 下傳統的 top。與 top 只提供最消耗資源的進程列表不同,htop 提供所有進程的列表,並且使用彩色標識出處理器、swap 和記憶體狀態。1

 htop

htop 命令優點2:

  • 快速查看關鍵效能統計資料,如 CPU(多核布局)、記憶體/交換使用;

  • 可以橫向或縱向滾動瀏覽進程列表,以查看所有的進程和完整的命令列;

  • 殺掉進程時可以直接選擇而不需要輸入進程號;

  • 通過滑鼠操作條目;

  • 比 top 啟動得更快。

ccat

ccat 是上色的cat,在 cat 的基礎上提供了文法高亮。可通過brew install ccat安裝。目前已支援ruby, python, javascript, java, c, go。


zsh高效命令列

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.