1. 程式人生 > >Linux終極shell-zsh的完美配置方案!——oh-my-zsh

Linux終極shell-zsh的完美配置方案!——oh-my-zsh

Zsh 介紹

  • Zsh 相容 Bash,據傳說 99% 的 Bash 操作 和 Zsh 是相同的
  • 先看下你的 Linux支援哪些 shell:cat /etc/shells,正常結果應該是這樣的:
/bin/sh
/bin/bash
/sbin/nologin
/bin/dash
/bin/tcsh
/bin/csh
  • 預設 CentOS / Ubuntu / Mac 系統用的是 Bash,倒也不是說 Bash 不好,而是說我們有更好的選擇。

    Zsh 安裝

    • CentOS 安裝:sudo yum install -y zsh
    • Ubuntu 安裝:sudo apt-get install -y zsh
    • 在檢查下系統的 shell:cat /etc/shells
      ,你會發現多了一個:/bin/zsh

    使用 Zsh 擴充套件集合:oh-my-zsh

    • 我們無需自己去搗搞 Zsh,直接用 oh-my-zsh 就足夠了,如果你想繼續深造的話那再去弄。
    • 先安裝 git:sudo yum install -y git
    • 安裝 oh-my-zsh(這個過程可能會有點慢,或者需要重試幾次):wget https://raw.github.com/robbyrussell/oh-my-zsh/master/tools/install.sh -O - | sh
    • 整個過程效果如下圖:

  • 在以 root 使用者為前提下,oh-my-zsh 的安裝目錄:/root/.oh-my-zsh
  • 在以 root 使用者為前提下,Zsh 的配置檔案位置:/root/.zshrc
  • 為 root 使用者設定 zsh 為系統預設 shell:chsh -s /bin/zsh root
  • 如果你要重新恢復到 bash:chsh -s /bin/bash root
  • 現在你關掉終端或是重新連上 shell,現在開頭是一個箭頭了,如下圖:

現在zsh和oh-my-zsh都安裝好了,現在重點講下zsh的配置!

建立~/.zshrc配置檔案,先給看下我的配置,可以憑自己喜好更改:

# If you come from bash you might have to change your $PATH.
# export PATH=$HOME/bin:/usr/local/bin:$PATH

# Path to your oh-my-zsh installation.
  export ZSH=/home/amoscykl/.oh-my-zsh

# Set name of the theme to load. Optionally, if you set this to "random"
# it'll load a random theme each time that oh-my-zsh is loaded.
# See https://github.com/robbyrussell/oh-my-zsh/wiki/Themes
# zhs的主題
ZSH_THEME="ys"		
# Set list of themes to load
# Setting this variable when ZSH_THEME=random
# cause zsh load theme from this variable instead of
# looking in ~/.oh-my-zsh/themes/
# An empty array have no effect
# ZSH_THEME_RANDOM_CANDIDATES=( "robbyrussell" "agnoster" )

# Uncomment the following line to use case-sensitive completion.
# CASE_SENSITIVE="true"

# Uncomment the following line to use hyphen-insensitive completion. Case
# sensitive completion must be off. _ and - will be interchangeable.
# HYPHEN_INSENSITIVE="true"

# Uncomment the following line to disable bi-weekly auto-update checks.
# DISABLE_AUTO_UPDATE="true"

# Uncomment the following line to change how often to auto-update (in days).
# export UPDATE_ZSH_DAYS=13

# Uncomment the following line to disable colors in ls.
# DISABLE_LS_COLORS="true"

# Uncomment the following line to disable auto-setting terminal title.
# DISABLE_AUTO_TITLE="true"

# Uncomment the following line to enable command auto-correction.
# ENABLE_CORRECTION="true"

# Uncomment the following line to display red dots whilst waiting for completion.
# COMPLETION_WAITING_DOTS="true"

# Uncomment the following line if you want to disable marking untracked files
# under VCS as dirty. This makes repository status check for large repositories
# much, much faster.
# DISABLE_UNTRACKED_FILES_DIRTY="true"

# Uncomment the following line if you want to change the command execution time
# stamp shown in the history command output.
# The optional three formats: "mm/dd/yyyy"|"dd.mm.yyyy"|"yyyy-mm-dd"
# HIST_STAMPS="mm/dd/yyyy"

# Would you like to use another custom folder than $ZSH/custom?
# ZSH_CUSTOM=/path/to/new-custom-folder

# Which plugins would you like to load? (plugins can be found in ~/.oh-my-zsh/plugins/*)
# Custom plugins may be added to ~/.oh-my-zsh/custom/plugins/
# Example format: plugins=(rails git textmate ruby lighthouse)
# Add wisely, as too many plugins slow down shell startup.

# z命令快速跳轉目錄     x命令解壓一切檔案         命令列可以直接google  
plugins=(
  git z zsh-autosuggestions extract web-search zsh-syntax-highlighting 
)

source $ZSH/oh-my-zsh.sh

# User configuration

# export MANPATH="/usr/local/man:$MANPATH"

# You may need to manually set your language environment
# export LANG=en_US.UTF-8

# Preferred editor for local and remote sessions
# if [[ -n $SSH_CONNECTION ]]; then
#   export EDITOR='vim'
# else
#   export EDITOR='mvim'
# fi

# Compilation flags
# export ARCHFLAGS="-arch x86_64"

# ssh
# export SSH_KEY_PATH="~/.ssh/rsa_id"

# Set personal aliases, overriding those provided by oh-my-zsh libs,
# plugins, and themes. Aliases can be placed here, though oh-my-zsh
# users are encouraged to define aliases within the ZSH_CUSTOM folder.
# For a full list of active aliases, run `alias`.
#
# Example aliases
# alias zshconfig="mate ~/.zshrc"
# alias ohmyzsh="mate ~/.oh-my-zsh"
#
#自動補全外掛
source ~/.oh-my-zsh/plugins/incr/incr.zsh

# 自動更新的時間間隔,單位是天,這裡設定 30 天更新一次
export UPDATE_ZSH_DAYS=1

最終效果:

主題:


自動補全:


一鍵google:



z命令快速跳轉目錄(根據記錄):


x命令自動解壓各種壓縮檔案,不用再牢記繁雜的解壓命令!


我常用的配置基本就這些,還可以新增更多的外掛來武裝你的shell!