1. 程式人生 > >Linux終極shell-Z Shell--用強大的zsh oh-my-zsh把Bash換掉

Linux終極shell-Z Shell--用強大的zsh oh-my-zsh把Bash換掉

分享一下我老師大神的人工智慧教程!零基礎,通俗易懂!http://blog.csdn.net/jiangjunshow

也歡迎大家轉載本篇文章。分享知識,造福人民,實現我們中華民族偉大復興!

                              
CSDN GitHub
Linux終極shell-Z Shell-用強大的zsh & oh-my-zsh把Bash換掉 AderXCoding/system/tools/zsh


大多數的Linux使用者偏愛Bash,因為發行版通常預設的就是它。
Bash確實是不錯的Shell,但仍有用很多不盡人意的地方,如自動補全的功能不夠強大,定位較長路徑不夠方便,命令歷史管理不夠完善等。

介紹使用zsh,功能十分強大..推薦給大家!

1  zsh介紹


1.1   Linux shell


Linux/Unix提供了很多種Shell,為毛要這麼多Shell?

難道用來炒著吃麼?那我問你,你同類型的衣服怎麼有那麼多件?花色,質地還不一樣。寫程式比買衣服複雜多了,而且程式設計師往往負責把複雜的事情搞簡單,簡單的事情搞複雜。牛程式設計師看到不爽的Shell,就會自己重新寫一套,慢慢形成了一些標準,常用的Shell有這麼幾種,sh、bash、csh等,想知道你的系統有幾種shell,可以通過以下命令檢視:

cat /etc/shells
   
  • 1

顯示如下:

<code>cat /etc/shells</code>

1.2   zsh簡介


Zsh是一個Linux下強大的shell, 由於大多數Linux產品安裝,以及預設使用bash shell, 但是絲毫不影響極客們對zsh的熱衷, 幾乎每一款Linux產品都包含有zsh,通常可以用apt-get、urpmi或yum等包管理器進行安裝

Zsh具有以下主要功能

  • 開箱即用、可程式設計的命令列補全功能可以幫助使用者輸入各種引數以及選項

  • 在使用者啟動的所有shell中共享命令歷史

  • 通過擴充套件的檔案萬用字元,可以不利用外部命令達到find命令一般展開檔名

  • 改進的變數與陣列處理

  • 在緩衝區中編輯多行命令

  • 多種相容模式,例如使用/bin/sh執行時可以偽裝成Bourne shell

  • 可以定製呈現形式的提示符;包括在螢幕右端顯示資訊,並在鍵入長命令時自動隱藏

  • 可載入的模組,提供其他各種支援:完整的TCP與Unix域套接字控制,FTP客戶端與擴充過的數學函式

  • 完全可定製化

1.3   zsh與oh-my-zsh終極配置


之前是因為看到這篇文章:終極Shell——Zsh 才選擇使用zsh,被它的自動完成、補全功能吸引了。

<官網:www.zsh.org

這也是“工欲善其事,必先利其器”系列文章。

選擇oh-my-zsh, oh-my-zsh是基於zsh的功能做了一個擴充套件,方便的外掛管理、主題自定義,以及漂亮的自動完成效果。

在Github上找關於zsh的專案時發現的,試用了一下覺得很方便,不用像上面文章裡面提到的那麼複雜,配置一些外掛的名稱即可使用相應的功能。

 

官網:https://github.com/robbyrussell/oh-my-zsh

   

評價:https://github.com/robbyrussell/oh-my-zsh/wiki/Testimonials

2  安裝zsh


2.1   安裝zsh


對於一般的Ubuntu系統,配置好正確的源之後,就能直接鍵入以下命令安裝:

sudo apt-get install zsh
   
  • 1

2.2   配置zsh


zsh的配置是一門大學問,這裡不贅述,直接給出一個配置檔案,大家可以下載後放入zsh配置文件直接使用。(我的一個法國朋友手配的,相當順手)

把.zshrc拷貝到相應使用者的home目錄即可
(也可以把你的bash的配置檔案(~/.bash_prorile或者~/.profile等)給拷貝到zsh的配置檔案~/.zshrc裡,因為zsh相容bash)

2.3   取代bash,設為預設shell


sudo usermod -s /bin/zsh username
   
  • 1

或者

chsh -s /bin/zsh
   
  • 1
chsh -s `which zsh`
   
  • 1

如果要切換回去bash:

chsh -s /bin/bash
   
  • 1

當然你實在不願意把zsh當成預設的shell, 而又想使用它, 那麼你可以每次進入是都使用zsh進入, 而輸入exit退出

zsh的使用

2.4   安裝oh-my-zsh


直接用zsh會很蛋疼,因為zsh功能很強大但是太複雜,所以需要oh-my-zsh來將它簡單化

直接用git從github上面下載包

git clone git://github.com/robbyrussell/oh-my-zsh.git ~/.oh-my-zsh
   
  • 1

備份已有的zshrc, 替換zshrc

cp ~/.zshrc ~/.zshrc.origcp ~/.oh-my-zsh/templates/zshrc.zsh-template ~/.zshrc
   
  • 1
  • 2

直接使用指令碼安裝

cd oh-my-zsh/tools./install.sh
   
  • 1
  • 2

你可以直接直接使用如下命令安裝

curl

sh -c "$(curl -fsSL https://raw.githubusercontent.com/robbyrussell/oh-my-zsh/master/tools/install.sh)"
   
  • 1

wget

sh -c "$(wget https://raw.githubusercontent.com/robbyrussell/oh-my-zsh/master/tools/install.sh -O -)"
   
  • 1

其本質就是下載並執行了github上的install.sh指令碼, 該指令碼位於oh-my-zsh/tools/install.sh

配置主題

oh-my-zsh集成了大量的主題, 位於oh-my-zsh/theme

配置主題, 可以通過修改~/.zshrc中的環境變數ZSH_THEME來完成

ZSH_THEME="agnoster" # (this is one of the fancy ones)
   
  • 1

如果你覺得主題太多你可以選擇使用隨機模式, 來由系統隨機選擇

ZSH_THEME="random" # (...please let it be pie... please be some pie..)
   
  • 1

zsh隨機主題

詳細的主題資訊, 可以參見zsh主題介紹

配置外掛

修改~/.zshrcplugins

plugins=(git bundler osx rake ruby)
   
  • 1

詳細的外掛資訊, 可以參見zsh外掛Plugins介紹

更新oh-my-zsh

預設情況下, 您將被提示檢查每幾周的升級. 如果你想我ZSH自動升級本身沒有提示你, 修改`~/.zshrc

disable_update_prompt = true
   
  • 1

禁用自動升級, 修改~/.zshrc

disable_auto_update = true
   
  • 1

當然你也可以選擇手動更新

如果你想在任何時間點升級(也許有人剛剛釋出了一個新的外掛,你不想等待一個星期?)你只需要執行:

upgrade_oh_my_zsh
   
  • 1

解除安裝oh-my-zsh

如果你想解除安裝oh-my-zsh, 只需要執行uninstall_oh_my_zsh zsh, 從命令列執行. 這將刪除本身和恢復你以前的bash或者zsh配置.

uninstall_oh_my_zsh zsh
   
  • 1

此外, 更多任性的功能, 速度來感受吧

  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,檔案太多就歇菜了。

  9. 更強的別名

  10. 外掛支援

           

給我老師的人工智慧教程打call!http://blog.csdn.net/jiangjunshow

這裡寫圖片描述