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主题
- 执行修改
打开配置文件,并修改内容:
ZSH_THEME = "some-thene"
值得一提的是,可以修改成 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
2
3
|
cd /d/w/t/0
# 等价于
cd /data/work/test/01
|
- 智能替换
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
2
3
4
5
|
alias ..='cd ..'
alias ...='cd ../..'
alias ....='cd ../../..'
alias .....='cd ../../../..'
alias ......='cd ../../../../..'
|
2.2 智能补全
#
zsh 的历史记录支持跨 session 共享。支持匹配查找,输入git,键入上下箭头,会搜索历史中包含 git 命令。
三、拓展插件
#
效率插件
#
简直是 kubectl 命令的福音,强烈建议研究研究相关插件。
-
GitHub根据子字符串搜索历史记录 history-substring-search:oh-my-zsh/plugins/
-
GitHubarch用户的plugin:oh-my-zsh/plugins/archlinux
-
fish的法高亮plugin: zsh-syntax-highlighting
-
fish自动建议:zsh-autosuggestions
-
官方插件列表 robbyrussell/oh-my-zsh
主题拓展
#
官方
主题列表有数量巨大的主题列表,风格各有千秋,以下为 risto 的 demo
四、别名
#
识记或者查阅相关别名时,可以考虑
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'
|