本方案是在Win10 1903版本、WSL 1.13及Ubuntu 20.04上实现的
安装和配置WSL
Windows本地需要先在微软应用商店安装WSL,然后可以看此处的教程进行配置
安装和配置oh-my-zsh
安装zsh
1
sudo apt-install zsh
查看当前系统可使用的shell
1
cat /etc/shells
查看当前系统默认的shell
1
echo $SHELL
将默认的bash改成zsh,然后保存
1
sudo vim /etc/passwd
- 第一行的
/bin/bash
换成/bin/zsh
,这个是root用户 - 本系统中你的用户账号下那一行将
/home/account:/bin/bash
也换成/home/account:/bin/zsh
- 第一行的
安装oh-my-zsh
使用 curl 下载安装
1
sh -c "$(curl -fsSL https://raw.githubusercontent.com/robbyrussell/oh-my-zsh/master/tools/install.sh)"
修改oh-my-zsh默认主题
- 配置主题可以通过修改
~/.zshrc
中的环境变量ZSH_THEME
来完成
使用
source ~/.zsh
使配置文件生效。注意此时终端可能会出现乱码,使用以下方式解决
打开本地的Git bash终端下载字体
1
2# windos 下需先安装 git
git clone https://github.com/powerline/fonts.git --depth=1克隆下来的文件里有个使用Power Shell打开的文件,使用右击Power Shell打开就会自动安装字体。
安装完成后在WSL中进行配置
重新打开WSL就可以看到字体显示正常了。
- 配置主题可以通过修改
安装oh-my-zsh插件
安装自动提示插件zsh-autosuggestions
1
git clone https://github.com/zsh-users/zsh-autosuggestions ${ZSH_CUSTOM:-~/.oh-my-zsh/custom}/plugins/zsh-autosuggestions
使用方法:输入命令时观察指令,若出现淡色提示则可以使用
->
进行所有补全,使用CTRL + ->
进行单词补全。安装语法高亮插件zsh-syntax-highlighting
1
git clone https://github.com/zsh-users/zsh-syntax-highlighting ${ZSH_CUSTOM:-~/.oh-my-zsh/custom}/plugins/zsh-syntax-highlighting
安装The fuck插件
1
2
3sudo apt update
sudo apt install python3-dev python3-pip python3-setuptools
sudo pip3 install thefuck然后将
eval $(thefuck --alias)
添加到~/.zshrc
,此时就配置完成了。使用方法:输入
ppthon
,得到错误停止,然后再输入fuck
进行修正。
安装completions插件
1
git clone https://github.com/zsh-users/zsh-completions ${ZSH_CUSTOM:-~/.oh-my-zsh/custom}/plugins/zsh-completions
通过在
source "$ZSH/oh-my-zsh.sh"
之前添加以下行,将其添加到.zshrc
中的fpath
:1
fpath+=${ZSH_CUSTOM:-~/.oh-my-zsh/custom}/plugins/zsh-completions/src
注意:每次Zsh调用时重新构建两次完成缓存
安装autojump插件
1
sudo apt-get install autojump
除了在还要在
~/.zshrc
中配置plugins,还要将下面这句写到文件中:1
2# 放在source "$ZSH/oh-my-zsh.sh"之前
[[ -s ~/.autojump/etc/profile.d/autojump.sh ]] && . ~/.autojump/etc/profile.d/autojump.shautojump
的使用:命令 example d 在终端输入d,可以显示刚刚走过的路径,然后按数字选择进入哪一个目录 j libs 可以匹配到之前访问的地址 j {foo} 跳转到一个包含foo字符串的目录 jc {foo} 跳转到一个包含foo字符串目录的子目录 jo {foo} 在终端直接打开包含foo字符串目录的文件管理器(必须安装有Linux桌面环境,如GNOME,通过XShell/SecureCRT远程连的服务器那么这个不可用) jco {foo} 在终端直接打开包含foo字符串目录的子目录的的文件管理器 j {w} {foo} 那么 j bar
会跳转到权重最大的目录,
你也可以通过j w bar
跳转到权重相对较小的目录j --purge 清除不再需要的目录 注意:只有打开过的目录 autojump 才会记录,所以使用时间越长,autojump 才会越智能;可以使用
autojump
命令,或者使用短命令j
.当我们输入命令需要管理员身份时,不必让光标回到开始打一个
sudo
,可以直接按两次Esc
,就会自动帮你加上sudo
。注意:Thefuck 也绑定了快捷键
Esc-Esc
,我们需要使用bindkey
命令进行更改。
使用
cat
指令,接着敲击Esc-Esc
来查看其编码,将^[^[
更改到模板中,并将如下命令添加到.zshrc
的最后:1
2# bindkey
bindkey '^[^[' sudo-command-line最后我们打开文件
.zshrc
配置插件:
然后使用
source ~/.zshrc
使配置生效。在zsh中配置命令的别名
打开配置文件
vim ~/.zshrc
,将别名配置到后面:1
2
3
4
5
6
7alias gcm="git commit
alias gck="git checkout"
alias gbr="git branch
alias gss="git status
alias gmg="git merge"
alias gpullo="git pull origin"
alias gpusho="git push origin"重新执行文件
source ~/.zshrc
;到git仓库下看看,使用
gck master
验证成功,可以节省很多开发时间。卸载oh-my-zsh
卸载
1
sudo sh -c "$(curl -fsSL https://raw.github.com/robbyrussell/oh-my-zsh/master/tools/uninstall.sh)"
将/bin/bash变成/bin/zsh
1
sudo vim /etc/passwd //打开将第一行和最后变成/bin/zsh