Linux終極shell-zsh的完美配置方案!——oh-my-zsh
阿新 • • 發佈:2019-01-02
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
- 整個過程效果如下圖:
- CentOS 安裝:
- 在以 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!