先运行 zsh --version 验证是否安装及版本≥5.1;若未安装,按系统用 apt/yum/dnf 安装;再执行 chsh -s $(which zsh) 并新开终端验证 echo $shell 和 ps -p $$。

怎么确认 Zsh 没装或版本太低
很多问题其实不是配置错,而是 zsh 根本没装,或者系统仓库里给的版本太老(比如 CentOS 7 默认 zsh-5.0.2),而 powerlevel10k 要求至少 zsh-5.1。直接运行 zsh --version 最快验证;如果报 command not found,说明得先装。
- Ubuntu/Debian:
sudo apt update && sudo apt install zsh - CentOS/RHEL 7:
sudo yum install zsh(但大概率是 5.0.x,建议跳到 rpm 或源码安装) - CentOS/RHEL 8+ 或 Fedora:
sudo dnf install zsh(通常 ≥5.8,够用) - 装完别忘了检查:
zsh --version和cat /etc/shells | grep zsh,后者确保zsh被系统认可为合法 shell
切换默认 Shell 为什么有时不生效
chsh -s $(which zsh) 只改了 /etc/passwd 里的记录,但新终端是否用它,还取决于终端模拟器的启动方式和登录类型。常见失效场景:SSH 连接未启用 login shell、VS Code 集成终端默认不读取 login 配置、或者用户没重启会话就急着测试。
- 执行后必须新开一个终端窗口(不是
exec zsh后就以为 OK —— 那只是子 shell,$SHELL不变) - 验证是否真生效:
echo $SHELL应输出类似/usr/bin/zsh;ps -p $$看当前进程名是不是zsh - 如果仍显示
/bin/bash,检查终端设置:GNOME Terminal / Tilix / Kitty 一般默认开 login shell;VS Code 需在settings.json中设"terminal.integrated.defaultProfile.linux": "zsh"
Oh My Zsh 安装失败的三个真实原因
官方 install.sh 依赖 curl + GitHub 原始链接,国内网络下失败率极高,错误常表现为超时、空响应或 sh: syntax error near unexpected token `elif'(其实是脚本没下载全)。这不是你操作错,是网络链路卡在中间。
- 优先换国内镜像源:
sh -c "$(curl -fsSL https://gitee.com/mirrors/oh-my-zsh/raw/master/tools/install.sh)" - 若连
curl都没有,先装:sudo apt install curl(Ubuntu)或sudo yum install curl(RHEL7) - 极端情况(如内网服务器):手动下载
install.sh到本地,chmod +x install.sh && ./install.sh;注意脚本里硬编码的路径可能需微调
Powerlevel10k 首次启动卡住或图标乱码
p10k 启动时会自动运行配置向导(p10k configure),但它强依赖等宽字体支持 Nerd Fonts 图标。如果终端没装 Hack Nerd Font 或类似字体,向导会卡在“Select your preferred icons”环节,或后续提示符显示方块、问号。
- Linux 桌面环境:去 Nerd Fonts Releases 下载
Hack.zip,解压后双击安装字体,再在终端设置里手动选中该字体 - SecureCRT / Xshell:需在外观设置中显式指定字体名(如
Hack Nerd Font Mono),不能只写Hack - 已装字体但还不行?运行
locale确保LANG是 UTF-8(如en_US.UTF-8),否则图标解析失败
最常被忽略的一点:Powerlevel10k 的配置缓存存在 ~/.p10k.zsh,一旦你中途退出向导或改错配置,下次 source ~/.zshrc 还会尝试加载旧缓存——直接删掉它,再跑一次 p10k configure 才是最干净的重试方式。










