ZSH

zsh 安装|配置|使用 #

一、ZSH 配置安装 #

1.1 源码安装 #

一般系统默认安装了 zsh,只需 oh-my-zsh 安装即可。下列方式任选其一即可。

1
2
3
4
5
# curl 方式
sh -c "$(curl -fsSL https://raw.githubusercontent.com/robbyrussell/oh-my-zsh/master/tools/install.sh)"

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

如遇到科学上网导致无法下载,可直接打开 下载链接,拷贝内容至任意位置并重命名为 install.sh 执行即可, 执行权限记得要提前赋好.

1.2 相关配置文件 #

文件 内容及作用
~/.zprofile zsh环境启动入口文件
~/.zshrc 类似 .bashrc
~/.zsh_env.zsh 环境变量放在这个文件内
~/.zsh_alias.zsh 通用的alias
~/.zsh_custom/ 存放一写自定义的内容和oh-my-zsh插件

1.3 主题配置 #

1.c查看oh my zsh主题

1
ls ~/.oh-my-zsh/themes
  1. 执行修改 打开配置文件,并修改内容:ZSH_THEME = "some-thene"
1
vim ~/.zshrc

值得一提的是,可以修改成 random,随机体验各式皮肤。不想折腾的话,risto 主题就很好用, 不过我觉得 risto 还是有点过于拖沓,这里画蛇添足改了一点:

1
2
3
4
5
6
7
# ~/.oh-my-zsh/themes/myristo.zsh-theme
# -*- sh -*- vim:set ft=sh ai et sw=4 sts=4:
# It might be bash like, but I can't have my co-workers knowing I use zsh
PROMPT='%{$fg[green]%}%n@%m.dev:%{$fg_bold[blue]%}%2~ $(git_prompt_info)%{$reset_color%}%(!.#.$) '

ZSH_THEME_GIT_PROMPT_PREFIX="%{$fg[red]%}‹"
ZSH_THEME_GIT_PROMPT_SUFFIX="›%{$reset_color%}"

二、目录切换 #

2.1 自动补全&自动替换 #

  1. 强大的简写识别功能
1
2
3
cd /d/w/t/0 
# 等价于
cd /data/work/test/01
  1. 智能替换
1
2
3
cd /data/www/apps/first/logic/test && cd first second
# 操作等价于如下, 此衷利好自行体会
cd /data/www/apps/first/logic/test && cd ../../../../apps/second/logic/test
  1. 回退辅助
1
2
3
4
5
alias ..='cd ..'
alias ...='cd ../..'
alias ....='cd ../../..'
alias .....='cd ../../../..'
alias ......='cd ../../../../..'

2.2 智能补全 #

zsh 的历史记录支持跨 session 共享。支持匹配查找,输入git,键入上下箭头,会搜索历史中包含 git 命令。

三、拓展插件 #

效率插件 #

简直是 kubectl 命令的福音,强烈建议研究研究相关插件。

  1. GitHub根据子字符串搜索历史记录 history-substring-search:oh-my-zsh/plugins/

  2. GitHubarch用户的plugin:oh-my-zsh/plugins/archlinux

  3. fish的法高亮plugin: zsh-syntax-highlighting

  4. fish自动建议:zsh-autosuggestions

  5. 官方插件列表 robbyrussell/oh-my-zsh

主题拓展 #

官方 主题列表有数量巨大的主题列表,风格各有千秋,以下为 risto 的 demo

risto

四、别名 #

识记或者查阅相关别名时,可以考虑

1
alias | grep "git status"

GIT 常用快捷操作 #

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
20
21
22
alias g='git'
alias ga='git add'
alias gaa='git add --all'

alias gb='git branch'

alias gc='git commit -v'

alias gd='git diff'

alias gl='git pull'
alias glgg='git log --graph'

alias gm='git merge'

alias gp='git push'
alias gpoat='git push origin --all && git push origin --tags'

alias gr='git remote'

alias gts='git tag -s'
alias gtv='git tag | sort -V'

别名糖 #

zsh 上,数字需要谨慎使用

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
1='cd -'
2='cd -2'
3='cd -3'
4='cd -4'
5='cd -5'
6='cd -6'
7='cd -7'
8='cd -8'
9='cd -9'
_='sudo '

ls #

1
2
3
l='ls -lah'
la='ls -lAh'
ll='ls -lh'