给Debian安装Oh my zsh
最近使用WSL频率较高,由于Windows配置了OhMyPosh,看习惯了花里胡哨忽然进入简约的Debian有些别扭,于是就想干脆给Debian也安装一个Oh my zsh算了。
目前Debian就两个用户,一个普通,一个root,建议给这两个用户分开安装,不要全系统共享,避免因为更新后出现权限问题。
安装Oh My ZSH
对于debian,使用如下命令即可安装(对于需要zsh的用户,每个都执行一次)
1 | sh -c "$(curl -fsSL https://raw.githubusercontent.com/ohmyzsh/ohmyzsh/master/tools/install.sh)" |
安装过程中会提示你是否将zsh设置为默认shell,选择Y
1 | Do you want to change your default shell to zsh? [Y/n] y |
安装主题
Oh My ZSH的主题有很多,具体看一参考这里,个人比较推荐**powerlevel10k**。
1 | git clone --depth=1 https://github.com/romkatv/powerlevel10k.git "${ZSH_CUSTOM:-$HOME/.oh-my-zsh/custom}/themes/powerlevel10k" |
打开 ~/.zshrc ,将ZSH_THEME的值修改为powerlevel10k/powerlevel10k
1 | vim ~/.zshrc |
安装字体
为了显示一些特殊的图标字符,需要安装一些字体,官方推荐MesloLGS NF,而我Windows上安装的是JetBrainsMono NF(除了个别图标,其他的基本上没区别,甚至JetBrainsMono NF更适合程序员),会造成一些小图标显示为□。
点击下载链接,下载这四个文件:
下载到Windows后,分别双击安装即可。
配置PowerShell
打开PowerShell,点击标题栏的下三角,打开设置(快捷键:ctrl + .)

点击外观,将字体修改为MesloLGS NF。点击保存即可。
接着在Debian(在PowerShell打开Debian标签)中输入如下,检查字体是否正确
1 | echo "\ue0b0 \u00b1 \ue0a0 \u27a6 \u2718 \u26a1 \u2699" |
此时会输出一些图标。
配置主题
字体安装完成后,就可以配置主题了,使用p10k configure打开配置
1 | p10k configure |
当然,越花里胡哨,执行命令时越卡顿。
安装插件
oh my zsh自带一些插件,包括powerlevel10k也有自己的插件,如果需要更强的功能,那么还需要单独安装三个插件
自动提示插件
根据历史记录建议命令(按 → 键补全)。安装命令如下:
1 | git clone https://github.com/zsh-users/zsh-autosuggestions ${ZSH_CUSTOM:-~/.oh-my-zsh/custom}/plugins/zsh-autosuggestions |
增强补全
为命令提供更强大的 Tab 键补全。
1 | git clone https://github.com/zsh-users/zsh-completions ${ZSH_CUSTOM:-~/.oh-my-zsh/custom}/plugins/zsh-completions |
语法高亮
命令正确显示绿色,错误显示红色,提前发现拼写错误。
1 | git clone https://github.com/zsh-users/zsh-syntax-highlighting.git ${ZSH_CUSTOM:-~/.oh-my-zsh/custom}/plugins/zsh-syntax-highlighting |
配置到插件时,务必配置在插件列表的最后一项,如果它放在中间,会和其他插件冲突导致输入字符时有明显的粘滞感。
配置插件,打开~/.zshrc,在plugins选项中配置如下:
1 | plugins=( |
每个插件用空格隔开(单行),或者如上方式(多行)。注意插件越多,敲命令也会月卡顿。非不要插件尽量不要开启。下面介绍下插件介绍
- git :zsh默认自带插件,提供了非常多git的缩写命令,例如git status 可以直接输入 gst
- sudo:执行命令是会提示权限不够,按两下esc,自动在命令前面添加sudo
- z :最强路径跳转。它会记住你常去的目录,输入 z spark 就能直接跳到你那个深层的 Spark 项目目录。
- extract(未启用):一个命令解压所有压缩包,个人还是习惯敲对应的命令,敲习惯了也忘不了。
解决卡顿问题
以上配置完,终端是好看了,但一个很影响体验的就是卡顿。输入命令会有明显卡顿,这主要来自三个方面:zsh本身插件过多、主题自带的一些功能(例如检查jdk版本,git仓库等)、还有就是wsl会扫描Windows的一些环境变量,每次都会很慢。
过滤Windows的环境变量
如果在WSL的Debian中输入echo $PATH,会输出大量的Windows的环境变量例如
1 | /mnt/d/devtools/go/bin:/mnt/d/devtools/scala/scala-2.13.8/bin:/mnt/d/devtools/gradle-7.5.1/bin:/mnt/d/devtools/python/python310: |
WSL本身访问/mnt这类的路径就很慢,所以每次执行命令都要扫描一边就会更慢了,解决办法就是将其过略,在~/.zshrc配置文件的最顶部,添加如下代码:
1 | path=(${path:#/mnt/*}) |
即可过滤掉/mnt/c/的一些环境变量。source一下使其生效,效果还比较明显。
禁用右侧提示
这里需要编辑powerlevel10k主题的配置文件,编辑~/.p10k.zsh,找到java_version,将不需要的全部注释
1 | typeset -g POWERLEVEL9K_RIGHT_PROMPT_ELEMENTS=( |
修改完成后,source ~/.zshrc即可生效。










