當前位置: 妍妍網 > 碼農

Linux 超級漂亮的 Shell

2024-01-31碼農

來源:zhuanlan.zhihu.com/p/514153374

先來一張美圖

# zsh 介紹


1 Linux shell


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


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

cat/etc/shells

顯示如下:

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 客戶端與擴充過的數學函式

  • 完全可客製化

  • 3. zsh 與 oh-my-zsh 終極配置


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


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


    在 Github 上找關於 zsh 的計畫時發現的,試用了一下覺得很方便,不用像上面文章裏面提到的那麽復雜,配置一些外掛程式的名稱即可使用相應的功能。


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


    # 安裝 zsh


    1. 安裝 zsh

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

    sudoapt-getinstallzsh


    2. 配置 zsh

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

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

    3,取代 bash,設為預設 shell


    sudousermod-s/bin/zshusername

    或者

    chsh-s/bin/zsh chsh-s`whichzsh`

    如果要切換回去 bash:

    chsh-s/bin/bash

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

    4. 安裝 oh-my-zsh


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


    直接用 git 從 github 上面下載包

    gitclonegit://github.com/robbyrussell/oh-my-zsh.git~/.oh-my-zsh

    備份已有的 zshrc, 替換 zshrc

    cp~/.zshrc~/.zshrc.orig cp~/.oh-my-zsh/templates/zshrc.zsh-template~/.zshrc

    直接使用指令碼安裝

    cdoh-my-zsh/tools ./install.sh

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

    curl

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

    wget

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

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

    配置主題

    oh-my-zsh 整合了大量的主題, 位於oh-my-zsh/theme

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

    ZSH_THEME="agnoster"#(thisisoneofthefancyones)

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

    ZSH_THEME="random"#(...pleaseletitbepie...pleasebesomepie..)

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

    配置外掛程式

    修改~/.zshrc中plugins

    plugins=(gitbundlerosxrakeruby)

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

    更新 oh-my-zsh

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

    disable_update_prompt=true

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

    disable_auto_update=true

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

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

    upgrade_oh_my_zsh

    解除安裝 oh-my-zsh

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

    uninstall_oh_my_zshzsh

    熱門推薦