记录一下我的 zsh 配置

记录一下我的 zsh 配置
背景
最近想写点东西记录一下自己折腾这些工具的经历,之前没想到记录什么,今年实验室的服务器迁移需要重新配置一下 zsh,于是想着干脆顺手写一下自己折腾 zsh 出来的方案。
什么是 Zsh
Zsh 也是一种 shell 软件,可以看成是一个更好用的 Bash,目前 MacOS 中的默认 shell 已经是 Zsh 了。Zsh 完全兼容 Bash,拥有极其丰富的插件,其强大的自动补全参数、文件名以及自定义功能,可以大大提高我们使用 Linux 的效率。
Zsh 可以通过大部分主流 Linux 发行版的包管理器进行安装,若在没有 sudo 权限的服务器上也可以通过conda进行安装。
oh-my-zsh
Zsh 固然好用,但初始时只有白板没有任何插件,距离理想的使用体验还有一些差距,这里我们介绍 oh-my-zsh。
oh-my-zsh 是社区为 zsh 收集的一个第三方插件和主题合集,我们可以通过国内镜像快速安装,这里使用了南京大学镜像站。
git clone https://mirror.nju.edu.cn/git/ohmyzsh.git
cd ohmyzsh/tools
REMOTE=https://mirror.nju.edu.cn/git/ohmyzsh.git sh install.sh
通过这三条指令可以在境内快速安装我们的 oh-my-zsh,同时也可以选择将 zsh 设置为默认 shell。
Powerlevel10k
oh-my-zsh 中的主题我认为还是不够美观和定制,我希望有个更好的体验,这里我们引入 Powerlevel10k 主题。在众多主题中,Powerlevel10k 因其美观性和高度定制的特性脱颖而出,截止到 2026年4月28日,Powerlevel10k 在 github 已累计收获 54k 个 star。
在国内,安装 Powerlevel10k 可以使用 gitee 的镜像进行安装,安装指令如下:
git clone --depth=1 https://gitee.com/romkatv/powerlevel10k.git "${ZSH_CUSTOM:-$HOME/.oh-my-zsh/custom}/themes/powerlevel10k"
echo 'source /usr/share/zsh-theme-powerlevel10k/powerlevel10k.zsh-theme' >>~/.zshrc
之后需要安装一款推荐字体,这里我个人使用的 0xProtoNerdFont 字体,大家也可以在其他博客或者官方仓库中使用其他人推荐的字体。
之后修改 ~/.zshrc 文件,将变量 ZSH_THEME 修改为 powerlevel10k/powerlevel10k,即 ZSH_THEME="powerlevel10k/powerlevel10k" 即可,之后重启终端即可根据个人喜好开始配置。
插件设置
现在主题已经搞定了,下一步开始设置真正能帮助我们提高生产力的插件。
zsh-autosuggestions
一个非常有用的插件,它根据历史记录和补全信息在输入时建议命令。
安装指令:
git clone https://github.com/zsh-users/zsh-autosuggestions $ZSH_CUSTOM/plugins/zsh-autosuggestions
zsh-syntax-highlighting
提供指令和文件路径的高亮限制,方便你检查指令和路径的正确性。
安装指令:
git clone https://github.com/zsh-users/zsh-syntax-highlighting $ZSH_CUSTOM/plugins/zsh-syntax-highlighting
git
oh-my-zsh 自带的插件,将大量常用的 git 指令简化,具体怎么使用可以参考 $ZSH/plugins/git/git.plugin.zsh 这个文件。
一些软件
nvm
一个好用的 node.js 版本管理器,无需 sudo 权限。
参考 https://github.com/nvm-sh/nvm 安装。
conda
无需多言。
fastfetch
获取本机发行版和硬件信息,比较酷炫,装逼使用。
可以进行美化,参考指令:
cd $HOME/.config
# 下载并解压然后删除
wget https://github.com/sqlsec/fastfetch/releases/download/v0.1/fastfetch-for-Linux.zip
unzip fastfetch-for-Linux.zip && rm fastfetch-for-Linux.zip
onefetch
获取当前 git 项目信息,使用时需保证当前目录已经 git 初始化。