Ubuntu 全局终端美化指南(Oh My Zsh 与 Zim 框架、JetBrains Mono Nerd 字体、背景模糊透明及标题栏透明、ASCII 艺术与终端玩具)
本指南基于 Arch Linux 终端美化教程 改编,适用于 Ubuntu 系列系统(如 Ubuntu 22.04 或 24.04)。本指南提供两种 zsh 美化方案:使用 Oh My Zsh 框架(经典且功能丰富)和 Zim 框架(轻量快速),并包含配置 Powerlevel10k 主题、插件(zsh-autosuggestions、zsh-syntax-highlighting、autojump 或 zsh-z、zsh-completions)、ttf-jetbrains-mono-nerd 字体、ASCII 艺术工具(figlet、lolcat、fortune、cmatrix、fastfetch 等),以及终端背景模糊透明和标题栏透明的设置。所有配置将设置为全局可用,适用于所有用户(包括未来创建的用户)。本指南还提供了详细的故障排查步骤,解决 dircolors 错误、重复 compinit 警告、Zim 安装失败(如 /root/.zim already exists、本地运行 install.zsh 时的语法错误、网络连接问题导致的模块下载失败、/usr/local/share/zim already exists、zimfw: 没有那个文件或目录、新用户未自动获取 .p10k.zsh 文件、compinit 重复调用警告、completion was already initialized 警告、p10k: command not found 问题、/usr/local/share/zim/modules/powerlevel10k 不存在 问题、/etc/zsh/.zimrc 和 /etc/zsh/zimrc 冲突问题、zsh-completions 的在线和离线安装方案,以及 figlet 和 lolcat 的安装问题。
准备工作
- 系统要求:Ubuntu 22.04 或 24.04(GNOME 桌面环境)。
- 权限:需要 root 或 sudo 权限以安装系统级软件和配置。
- 工具:需要联网以安装软件包和下载插件(若网络不可用,可使用离线方法)。
- 终端:默认使用 GNOME Terminal,但推荐 Kitty 以实现完整的模糊透明效果(包括标题栏)。
- 注意:
Oh My Zsh和Zim不能同时使用,需选择一种框架,并在切换时卸载另一框架。
效果图

步骤 1:安装 Zsh 并设置为全局默认 Shell
zsh 是一个功能强大的 Shell,相较于 Ubuntu 默认的 bash 提供更多定制选项。
-
安装 Zsh:
sudo apt update sudo apt install zsh -
验证安装:
zsh --version确保版本为 5.8 或更高。
-
设置为全局默认 Shell:
- 修改系统默认 Shell 为
zsh,适用于所有用户(包括未来创建的用户):sudo chsh -s $(which zsh) - 为所有现有用户设置默认 Shell:
对其他用户重复此命令,或通过脚本批量设置:sudo usermod -s $(which zsh) $(whoami)for user in $(getent passwd | awk -F: '$7 ~ /bash/ {print $1}'); do sudo usermod -s $(which zsh) $user done - 为新用户设置默认 Shell,编辑
/etc/adduser.conf: 找到sudo vim /etc/adduser.confDSHELL行,修改为: 保存并退出(在DSHELL=/bin/zshvim中,按Esc,输入:wq并按 Enter)。
系统需要注销才会生效
- 修改系统默认 Shell 为
步骤 2:清理现有配置(避免冲突)
在安装 Oh My Zsh 或 Zim 之前,清理可能导致冲突的现有配置,并防止 Zim 的 compinit 重复加载问题。
-
检查并修复
~/.dir_colors问题:- 对于当前用户,检查
~/.dir_colors: 如果是目录,删除:ls -ld ~/.dir_colorsrm -rf ~/.dir_colors - 为所有用户清理(包括 root):
sudo find / -type d -name ".dir_colors" -exec rm -rf {} + 2>/dev/null - 创建系统级的
dircolors配置文件(可选,若需要自定义ls颜色):sudo dircolors -p > /etc/dircolors
- 对于当前用户,检查
-
清理
~/.zcompdump文件:- 为当前用户清理:
rm -f ~/.zcompdump* - 为所有用户清理(包括 root):
sudo find / -type f -name ".zcompdump*" -delete 2>/dev/null
- 为当前用户清理:
-
检查磁盘空间和权限:
- 确保有足够的磁盘空间:
df -h - 确保
/etc和/usr/local有写入权限:sudo chmod 755 /etc /usr/local
- 确保有足够的磁盘空间:
-
备份并清理
/etc/zsh下的所有配置文件:- 备份现有的
/etc/zsh配置文件:sudo cp -r /etc/zsh /etc/zsh.bak - 检查
/etc/zsh下的文件是否有compinit调用,并清理可能导致冲突的配置: 如果发现sudo grep -r "compinit" /etc/zshcompinit调用(例如在/etc/zsh/zshrc或/etc/zsh/zprofile中),编辑对应文件并删除相关代码: 删除任何包含sudo vim /etc/zsh/zshrc sudo vim /etc/zsh/zprofileautoload -Uz compinit或compinit的行,保存并退出(在vim中,按Esc,输入:wq并按 Enter)。 - 禁用
/etc/zsh/newuser.zshrc.recommended的compinit调用:- 检查
/etc/zsh/newuser.zshrc.recommended是否包含compinit:grep "compinit" /etc/zsh/newuser.zshrc.recommended - 如果存在,编辑文件并注释掉相关代码:
找到以下行:sudo vim /etc/zsh/newuser.zshrc.recommended 注释掉:autoload -Uz compinit compinit 保存并退出(在# autoload -Uz compinit # compinitvim中,按Esc,输入:wq并按 Enter)。
- 检查
- 备份现有的
-
清理
/root目录下的 Zim 配置文件:- 解决
/root/.zim already exists错误,并清理可能存在的/root/.zimrc和/root/.zshrc:sudo rm -rf /root/.zim sudo rm -f /root/.zimrc /root/.zshrc
- 解决
-
清理
/usr/local/share/zim目录:- 解决
/usr/local/share/zim already exists错误,确保安装目录干净:sudo rm -rf /usr/local/share/zim
- 解决
-
清理用户级的 Zim 配置和 Zsh 配置文件(避免冲突):
- 删除所有用户目录下的
.zim、.zimrc和可能干扰的 Zsh 配置文件:sudo find /home -type d -name ".zim" -exec rm -rf {} + 2>/dev/null sudo find /home -type f -name ".zimrc" -exec rm -f {} + 2>/dev/null sudo find /home -type f -name ".zshrc" -exec rm -f {} + 2>/dev/null sudo find /home -type f -name ".zprofile" -exec rm -f {} + 2>/dev/null sudo find /home -type f -name ".zlogin" -exec rm -f {} + 2>/dev/null sudo find /home -type f -name ".zshenv" -exec rm -f {} + 2>/dev/null - 删除
/etc/zsh/.zimrc和/etc/zsh/zimrc,确保后续安装使用正确的配置文件路径:sudo rm -f /etc/zsh/.zimrc /etc/zsh/zimrc
- 删除所有用户目录下的
-
防止 Zim 的
compinit重复加载(针对completion was already initialized警告):- 如果您计划使用
Zim框架,需在安装Zim之前修改其补全模块的初始化脚本,防止重复调用compinit。 - 下载
Zim的completion模块文件:sudo mkdir -p /usr/local/share/zim/modules/completion sudo curl -fsSL https://raw.githubusercontent.com/zimfw/completion/master/init.zsh -o /usr/local/share/zim/modules/completion/init.zsh - 修改
$ZIM_HOME/modules/completion/init.zsh:- 编辑文件:
sudo vim /usr/local/share/zim/modules/completion/init.zsh - 找到以下行:
替换为:print -u2 'warning: completion was already initialized before completion module. Will call compinit again. See https://github.com/zimfw/zimfw/wiki/Troubleshooting#completion-is-not-working'# 防止重复加载 if [[ "${GLOBAL_COMPINIT_LOADED}" -ne 1 ]]; then print -u2 'warning: completion was already initialized before completion module. Will call compinit again. See https://github.com/zimfw/zimfw/wiki/Troubleshooting#completion-is-not-working#completion-is-not-working' fi - 找到以下行:
替换为:# Load and initialize the completion system autoload -Uz compinit && compinit -C -d ${zdumpfile} || return 1# 防止重复加载 if [[ "${GLOBAL_COMPINIT_LOADED}" -ne 1 ]]; then # Load and initialize the completion system autoload -Uz compinit && compinit -C -d ${zdumpfile} || return 1 export GLOBAL_COMPINIT_LOADED=1 fi - 保存并退出(在
vim中,按Esc,输入:wq并按 Enter)。
- 编辑文件:
- 说明:
GLOBAL_COMPINIT_LOADED变量用于标记compinit是否已被加载,避免重复调用。- 这一修改确保警告仅在第一次加载时打印(实际上只会加载一次,后续调用会被跳过)。
- 验证文件修改:
确认修改已正确应用。grep "GLOBAL_COMPINIT_LOADED" /usr/local/share/zim/modules/completion/init.zsh
- 如果您计划使用
步骤 3:选择 Zsh 美化框架(全局配置)
以下提供两种 zsh 美化方案:Oh My Zsh(经典方案)和 Zim(轻量方案)。请根据需求选择一种框架,并按照对应步骤配置。
方案 1:使用 Oh My Zsh 美化 Zsh(全局)
3.1 安装 Oh My Zsh(系统级)
-
安装 Oh My Zsh 到系统目录:
- 默认情况下,
Oh My Zsh安装在用户目录(~/.oh-my-zsh)。为实现全局配置,我们将其安装到/usr/local/share/oh-my-zsh:sudo git clone https://github.com/ohmyzsh/ohmyzsh.git /usr/local/share/oh-my-zsh
- 默认情况下,
-
创建全局 Zsh 配置文件:
- 编辑
/etc/zsh/zshrc: 添加以下内容:sudo vim /etc/zsh/zshrc 保存并退出(在# 防止重复加载 /etc/zsh/zshrc if [[ "${GLOBAL_ZSHRC_LOADED}" == "1" ]]; then return 0 fi export GLOBAL_ZSHRC_LOADED=1 # 跳过 Zsh 默认的全局 compinit 调用 skip_global_compinit=1 export ZSH="/usr/local/share/oh-my-zsh" ZSH_THEME="powerlevel10k/powerlevel10k" plugins=(git zsh-autosuggestions zsh-syntax-highlighting autojump) source $ZSH/oh-my-zsh.sh # 加载 Powerlevel10k 即时提示 if [[ -r "${XDG_CACHE_HOME:-$HOME/.cache}/p10k-instant-prompt-${(%):-%n}.zsh" ]]; then source "${XDG_CACHE_HOME:-$HOME/.cache}/p10k-instant-prompt-${(%):-%n}.zsh" fi # 加载 Powerlevel10k 配置文件,优先使用用户自己的配置,否则使用系统默认配置 if [[ -f ~/.p10k.zsh ]]; then source ~/.p10k.zsh elif [[ -f /etc/zsh/.p10k.zsh ]]; then source /etc/zsh/.p10k.zsh else echo "Powerlevel10k configuration not found. Please run 'p10k configure' to set up your prompt." fi # 防止重复显示欢迎消息 if [[ -z "${WELCOME_MESSAGE_SHOWN}" ]]; then figlet "Welcome, $USER" | lolcat fortune | lolcat export WELCOME_MESSAGE_SHOWN=1 fivim中,按Esc,输入:wq并按 Enter)。
- 编辑
-
安装 Powerlevel10k 主题(系统级):
sudo git clone --depth=1 https://github.com/romkatv/powerlevel10k.git /usr/local/share/oh-my-zsh/custom/themes/powerlevel10k- 如果网络问题导致下载失败,使用离线方法:
sudo mkdir -p /usr/local/share/oh-my-zsh/custom/themes/powerlevel10k sudo wget https://github.com/romkatv/powerlevel10k/archive/refs/heads/master.tar.gz -O /tmp/powerlevel10k.tar.gz sudo tar -xzf /tmp/powerlevel10k.tar.gz -C /usr/local/share/oh-my-zsh/custom/themes/powerlevel10k --strip-components=1 sudo rm /tmp/powerlevel10k.tar.gz - 验证安装:
确认目录存在且包含ls -ld /usr/local/share/oh-my-zsh/custom/themes/powerlevel10kpowerlevel10k.zsh-theme文件:ls /usr/local/share/oh-my-zsh/custom/themes/powerlevel10k/powerlevel10k.zsh-theme
- 如果网络问题导致下载失败,使用离线方法:
3.2 安装 Oh My Zsh 插件(系统级)
-
安装依赖:
sudo apt install git autojump -
安装插件:
sudo git clone https://github.com/zsh-users/zsh-autosuggestions /usr/local/share/oh-my-zsh/custom/plugins/zsh-autosuggestions sudo git clone https://github.com/zsh-users/zsh-syntax-highlighting.git /usr/local/share/oh-my-zsh/custom/plugins/zsh-syntax-highlighting sudo git clone https://github.com/zsh-users/zsh-completions.git /usr/local/share/oh-my-zsh/custom/plugins/zsh-completions- 如果网络问题导致下载失败,使用离线方法:
sudo mkdir -p /usr/local/share/oh-my-zsh/custom/plugins/zsh-completions sudo wget https://github.com/zsh-users/zsh-completions/archive/refs/heads/master.tar.gz -O /tmp/zsh-completions.tar.gz sudo tar -xzf /tmp/zsh-completions.tar.gz -C /usr/local/share/oh-my-zsh/custom/plugins/zsh-completions --strip-components=1 sudo rm /tmp/zsh-completions.tar.gz
- 如果网络问题导致下载失败,使用离线方法:
-
为新用户设置默认
~/.zshrc:- 创建
/etc/skel/.zshrc,新用户创建时会自动复制此文件: 添加:sudo vim /etc/skel/.zshrc 保存并退出(在# Enable Powerlevel10k instant prompt. Should stay close to the top of ~/.zshrc. # Initialization code that may require console input (password prompts, [y/n] # confirmations, etc.) must go above this block; everything else may go below. if [[ -r "${XDG_CACHE_HOME:-$HOME/.cache}/p10k-instant-prompt-${(%):-%n}.zsh" ]]; then source "${XDG_CACHE_HOME:-$HOME/.cache}/p10k-instant-prompt-${(%):-%n}.zsh" fi # 加载全局配置 source /etc/zsh/zshrc # To customize prompt, run `p10k configure` or edit ~/.p10k.zsh. [[ ! -f $HOME/.p10k.zsh ]] || source $HOME/.p10k.zshvim中,按Esc,输入:wq并按 Enter)。
- 创建
-
为现有用户应用配置:
- 将
/etc/skel/.zshrc复制到现有用户目录:for user in $(getent passwd | awk -F: '$1 !~ /^(root|nobody|daemon|bin|sys|sync)/ {print $1}'); do sudo cp /etc/skel/.zshrc /home/$user/.zshrc sudo chown $user:$user /home/$user/.zshrc done
- 将
-
配置 Powerlevel10k(全局):
- 下载一个预配置的
Powerlevel10k配置文件(如p10k-lean.zsh)作为系统默认配置,并放置在/etc/zsh/.p10k.zsh:sudo mkdir -p /etc/zsh sudo curl -fsSL https://raw.githubusercontent.com/romkatv/powerlevel10k/master/config/p10k-lean.zsh -o /etc/zsh/.p10k.zsh sudo chmod 644 /etc/zsh/.p10k.zsh - 检查
/etc/zsh/.p10k.zsh是否成功下载:if [[ ! -s /etc/zsh/.p10k.zsh ]]; then echo "Failed to download Powerlevel10k configuration. Please check your network and try again." exit 1 fi - 将
.p10k.zsh复制到/etc/skel以供新用户使用:sudo cp /etc/zsh/.p10k.zsh /etc/skel/.p10k.zsh sudo chmod 644 /etc/skel/.p10k.zsh - 为现有用户复制
.p10k.zsh:for user in $(getent passwd | awk -F: '$1 !~ /^(root|nobody|daemon|bin|sys|sync)/ {print $1}'); do sudo cp /etc/zsh/.p10k.zsh /home/$user/.p10k.zsh sudo chown $user:$user /home/$user/.p10k.zsh done - 验证 Powerlevel10k 加载:
- 重新加载配置:
source /etc/zsh/zshrc - 检查
p10k命令是否可用: 如果输出为空,说明command -v p10kPowerlevel10k未正确加载,参考“注意事项”中的p10k: command not found排查步骤。
- 重新加载配置:
- 自定义提示符样式:
- 在确保
Powerlevel10k已加载后,用户可以运行以下命令自定义提示符样式:p10k configure - 如果遇到
p10k: command not found错误,请参考“注意事项”中的排查步骤。
- 在确保
- 下载一个预配置的
方案 2:使用 Zim 美化 Zsh(全局)
3.1 安装 Zim(系统级)
-
清理现有
~/.zim目录(包括 root):- 确保
/root/.zim和其他用户目录下的.zim都被清理(已在“步骤 2”中完成)。
- 确保
-
检查网络连接:
- 确保可以访问 GitHub:
ping -c 4 github.com - 如果无法访问 GitHub,可能需要配置代理:
替换export http_proxy=http://your-proxy:port export https_proxy=$http_proxy git config --global http.proxy $http_proxy git config --global https.proxy $https_proxyyour-proxy:port为您的代理地址(例如http://127.0.0.1:7890)。 - 或者,使用国内镜像(如果可用):
git config --global url."https://github.com/".insteadOf "https://github.com/"
- 确保可以访问 GitHub:
-
安装 Zim 到系统目录:
- 我们将
Zim安装到/usr/local/share/zim。以下提供两种方法:- 方法 1:在线安装(推荐):
说明:设置sudo env ZIM_HOME=/usr/local/share/zim ZDOTDIR=/etc/zsh zsh -c 'curl -fsSL https://raw.githubusercontent.com/zimfw/install/master/install.zsh | zsh'ZDOTDIR=/etc/zsh确保配置文件写入/etc/zsh/.zimrc,而不是/root。 - 方法 2:使用本地 install.zsh 脚本:
如果您已下载install.zsh到本地(例如/home/yan/下载/install.zsh),可以运行:sudo env ZIM_HOME=/usr/local/share/zim ZDOTDIR=/etc/zsh zsh /home/yan/下载/install.zsh
- 方法 1:在线安装(推荐):
- 我们将
-
检查并修复
zimfw.zsh文件:- 确保
/usr/local/share/zim/zimfw.zsh文件存在:ls -l /usr/local/share/zim/zimfw.zsh - 如果文件不存在,可能是下载失败,手动下载:
或者使用sudo mkdir -p /usr/local/share/zim sudo curl -fsSL https://github.com/zimfw/zimfw/releases/latest/download/zimfw.zsh -o /usr/local/share/zim/zimfw.zshwget:sudo mkdir -p /usr/local/share/zim sudo wget -O /usr/local/share/zim/zimfw.zsh https://github.com/zimfw/zimfw/releases/latest/download/zimfw.zsh - 确保文件可执行:
sudo chmod +x /usr/local/share/zim/zimfw.zsh
- 确保
-
创建全局 Zim 配置文件(如果未自动生成):
- 检查
/etc/zsh/.zimrc是否存在,若不存在,手动创建: 添加以下内容:sudo vim /etc/zsh/.zimrc 保存并退出(在zmodule romkatv/powerlevel10k --use degit zmodule zsh-users/zsh-autosuggestions zmodule zsh-users/zsh-syntax-highlighting zmodule zsh-users/zsh-history-substring-search zmodule zsh-users/zsh-completions --fpath src zmodule agkozak/zsh-z zmodule environment zmodule git zmodule input zmodule termtitle zmodule utility zmodule duration-info zmodule git-info zmodule asciiship zmodule completionvim中,按Esc,输入:wq并按 Enter)。 - 注意:
Zim默认使用/etc/zsh/.zimrc作为配置文件。如果存在/etc/zsh/zimrc,请将其重命名为/etc/zsh/.zimrc:sudo mv /etc/zsh/zimrc /etc/zsh/.zimrc
- 检查
-
安装
zsh-completions模块(在线和离线方案):- 方案 1:在线安装(推荐):
- 如果网络正常,
zimfw install会自动下载zsh-completions:sudo env ZIM_HOME=/usr/local/share/zim ZDOTDIR=/etc/zsh zsh /usr/local/share/zim/zimfw.zsh install - 观察输出,确认
zsh-completions已安装:) zsh-completions: Installed
- 如果网络正常,
- 方案 2:离线安装:
- 如果网络不可用或下载失败,手动下载
zsh-completions:sudo mkdir -p /usr/local/share/zim/modules/zsh-completions sudo wget https://github.com/zsh-users/zsh-completions/archive/refs/heads/master.tar.gz -O /tmp/zsh-completions.tar.gz sudo tar -xzf /tmp/zsh-completions.tar.gz -C /usr/local/share/zim/modules/zsh-completions --strip-components=1 sudo rm /tmp/zsh-completions.tar.gz - 确保
/etc/zsh/.zimrc中zsh-completions条目指向本地路径: 找到以下行:sudo vim /etc/zsh/.zimrc 替换为:zmodule zsh-users/zsh-completions --fpath src 保存并退出(在zmodule /usr/local/share/zim/modules/zsh-completions --fpath srcvim中,按Esc,输入:wq并按 Enter)。 - 重新运行安装命令:
sudo env ZIM_HOME=/usr/local/share/zim ZDOTDIR=/etc/zsh zsh /usr/local/share/zim/zimfw.zsh install
- 如果网络不可用或下载失败,手动下载
- 方案 1:在线安装(推荐):
-
安装其他 Zim 模块:
- 使用正确的
zimfw调用方式:sudo env ZIM_HOME=/usr/local/share/zim ZDOTDIR=/etc/zsh zsh /usr/local/share/zim/zimfw.zsh install - 验证 Powerlevel10k 模块安装:
确认目录存在且包含ls -ld /usr/local/share/zim/modules/powerlevel10kpowerlevel10k.zsh-theme文件:ls /usr/local/share/zim/modules/powerlevel10k/powerlevel10k.zsh-theme - 如果模块未安装(例如因网络问题):
- 确认
/etc/zsh/.zimrc包含所有必要的模块。 - 手动安装缺失的模块(以
Powerlevel10k为例): 如果网络问题导致sudo mkdir -p /usr/local/share/zim/modules/powerlevel10k sudo git clone --depth=1 https://github.com/romkatv/powerlevel10k.git /usr/local/share/zim/modules/powerlevel10kgit clone失败,使用压缩包方式:sudo mkdir -p /usr/local/share/zim/modules/powerlevel10k sudo wget https://github.com/romkatv/powerlevel10k/archive/refs/heads/master.tar.gz -O /tmp/powerlevel10k.tar.gz sudo tar -xzf /tmp/powerlevel10k.tar.gz -C /usr/local/share/zim/modules/powerlevel10k --strip-components=1 sudo rm /tmp/powerlevel10k.tar.gz - 修改
/etc/zsh/.zimrc,使用本地模块: 将:sudo vim /etc/zsh/.zimrc 替换为:zmodule romkatv/powerlevel10k --use degit 保存并退出(在zmodule /usr/local/share/zim/modules/powerlevel10kvim中,按Esc,输入:wq并按 Enter)。 - 重新运行安装命令:
sudo env ZIM_HOME=/usr/local/share/zim ZDOTDIR=/etc/zsh zsh /usr/local/share/zim/zimfw.zsh install - 再次验证:
ls -ld /usr/local/share/zim/modules/powerlevel10k
- 确认
- 使用正确的
-
配置全局 Zsh 加载 Zim:
- 编辑
/etc/zsh/zshrc: 添加以下内容:sudo vim /etc/zsh/zshrc 保存并退出(在# 跳过 Zsh 默认的全局 compinit 调用 skip_global_compinit=1 # 优化历史记录 HISTSIZE=10000 SAVEHIST=10000 setopt HIST_IGNORE_DUPS # 确保不会重复加载 Zim if [[ -z "${ZIM_LOADED}" ]]; then export ZIM_HOME=/usr/local/share/zim if [[ -e $ZIM_HOME/init.zsh ]]; then source $ZIM_HOME/init.zsh else echo "Zim initialization failed: $ZIM_HOME/init.zsh not found." fi fi export ZIM_LOADED=1 # 防止重复加载 /etc/zsh/zshrc if [[ "${GLOBAL_ZSHRC_LOADED}" -eq 1 ]]; then return 0 fi export GLOBAL_ZSHRC_LOADED=1 # 别名 alias zimfw='$ZIM_HOME/zimfw.zsh' alias ls='exa --icons' alias ll='exa -laF --icons' alias ff='fastfetch | lolcat' alias curlp="curl -x 127.0.0.1:7890" # 控制台打开时打印信息(防止重复显示) if [[ -z "${WELCOME_MESSAGE_SHOWN}" ]]; then if [[ "$USER" != "root" ]]; then ff fi echo "Hello $USER !" | figlet | lolcat fortune | lolcat export WELCOME_MESSAGE_SHOWN=1 fi # 加载 Powerlevel10k 即时提示(在 Zim 加载之后) if [[ -r "${XDG_CACHE_HOME:-$HOME/.cache}/p10k-instant-prompt-${(%):-%n}.zsh" ]]; then source "${XDG_CACHE_HOME:-$HOME/.cache}/p10k-instant-prompt-${(%):-%n}.zsh" fi # 强制加载 Powerlevel10k 主题 if [[ -d /usr/local/share/zim/modules/powerlevel10k ]]; then if [[ -f /usr/local/share/zim/modules/powerlevel10k/powerlevel10k.zsh-theme ]]; then source /usr/local/share/zim/modules/powerlevel10k/powerlevel10k.zsh-theme else echo "Powerlevel10k theme not found at /usr/local/share/zim/modules/powerlevel10k/powerlevel10k.zsh-theme." fi # 确保 p10k 命令可用(加载 p10k.zsh) if [[ -f /usr/local/share/zim/modules/powerlevel10k/p10k.zsh ]]; then source /usr/local/share/zim/modules/powerlevel10k/p10k.zsh else echo "p10k.zsh not found at /usr/local/share/zim/modules/powerlevel10k/p10k.zsh." fi else echo "Powerlevel10k module not installed at /usr/local/share/zim/modules/powerlevel10k. Please run 'zimfw install' to install it." fi # 加载 Powerlevel10k 配置文件,优先使用用户自己的配置,否则使用系统默认配置 if [[ -f ~/.p10k.zsh ]]; then source ~/.p10k.zsh elif [[ -f /etc/zsh/.p10k.zsh ]]; then source /etc/zsh/.p10k.zsh else echo "Powerlevel10k configuration not found. Please run 'p10k configure' to set up your prompt." fivim中,按Esc,输入:wq并按 Enter)。
- 编辑
-
为新用户设置默认
~/.zshrc:- 创建
/etc/skel/.zshrc,新用户创建时会自动复制此文件: 添加以下内容:sudo vim /etc/skel/.zshrc 保存并退出(在# Enable Powerlevel10k instant prompt. Should stay close to the top of ~/.zshrc. # Initialization code that may require console input (password prompts, [y/n] # confirmations, etc.) must go above this block; everything else may go below. if [[ -r "${XDG_CACHE_HOME:-$HOME/.cache}/p10k-instant-prompt-${(%):-%n}.zsh" ]]; then source "${XDG_CACHE_HOME:-$HOME/.cache}/p10k-instant-prompt-${(%):-%n}.zsh" fi # 加载全局配置 source /etc/zsh/zshrc # To customize prompt, run `p10k configure` or edit ~/.p10k.zsh. [[ ! -f $HOME/.p10k.zsh ]] || source $HOME/.p10k.zshvim中,按Esc,输入:wq并按 Enter)。
- 创建
-
为现有用户应用配置:
- 将
/etc/skel/.zshrc复制到现有用户目录:for user in $(getent passwd | awk -F: '$1 !~ /^(root|nobody|daemon|bin|sys|sync)/ {print $1}'); do sudo cp /etc/skel/.zshrc /home/$user/.zshrc sudo chown $user:$user /home/$user/.zshrc done
- 将
-
配置 Powerlevel10k(全局):
- 如果
/etc/zsh/.p10k.zsh尚未创建(例如选择了Zim方案),下载并设置:sudo mkdir -p /etc/zsh sudo curl -fsSL https://raw.githubusercontent.com/romkatv/powerlevel10k/master/config/p10k-lean.zsh -o /etc/zsh/.p10k.zsh sudo chmod 644 /etc/zsh/.p10k.zsh - 检查
/etc/zsh/.p10k.zsh是否成功下载:if [[ ! -s /etc/zsh/.p10k.zsh ]]; then echo "Failed to download Powerlevel10k configuration. Please check your network and try again." exit 1 fi - 将
.p10k.zsh复制到/etc/skel以供新用户使用:sudo cp /etc/zsh/.p10k.zsh /etc/skel/.p10k.zsh sudo chmod 644 /etc/skel/.p10k.zsh - 为现有用户复制
.p10k.zsh:for user in $(getent passwd | awk -F: '$1 !~ /^(root|nobody|daemon|bin|sys|sync)/ {print $1}'); do sudo cp /etc/zsh/.p10k.zsh /home/$user/.p10k.zsh sudo chown $user:$user /home/$user/.p10k.zsh done - 验证 Powerlevel10k 加载:
- 重新加载配置:
source /etc/zsh/zshrc - 检查
p10k命令是否可用: 如果输出为空,说明command -v p10kPowerlevel10k未正确加载,参考“注意事项”中的p10k: command not found排查步骤。
- 重新加载配置:
- 自定义提示符样式:
- 在确保
Powerlevel10k已加载后,用户可以运行以下命令自定义提示符样式:p10k configure - 如果遇到
p10k: command not found错误,请参考“注意事项”中的排查步骤。
- 在确保
- 如果
步骤 4:安装 JetBrains Mono Nerd 字体(全局)
此步骤将安装 JetBrains Mono Nerd 字体,并为 GNOME Terminal 和 Kitty 设置默认字体,确保所有用户都能使用。
-
下载 JetBrains Mono Nerd 字体到系统字体目录:
sudo mkdir -p /usr/share/fonts/truetype/jetbrains-mono-nerd cd /usr/share/fonts/truetype/jetbrains-mono-nerd sudo curl -fLo "JetBrainsMonoNerdFont-Regular.ttf" https://github.com/ryanoasis/nerd-fonts/raw/master/patched-fonts/JetBrainsMono/Ligatures/Regular/JetBrainsMonoNerdFont-Regular.ttf sudo curl -fLo "JetBrainsMonoNerdFont-Bold.ttf" https://github.com/ryanoasis/nerd-fonts/raw/master/patched-fonts/JetBrainsMono/Ligatures/Bold/JetBrainsMonoNerdFont-Bold.ttf -
刷新字体缓存:
sudo fc-cache -fv -
设置 GNOME Terminal 默认字体和配置文件(全局):
- 创建默认配置文件:
- 确保配置文件
b1dcc9dd-5262-4d8d-a863-c897e6d979b9存在,或者获取实际的配置文件 ID: 输出可能为gsettings get org.gnome.Terminal.ProfilesList list['b1dcc9dd-5262-4d8d-a863-c897e6d979b9']或其他 ID。如果输出为空或不包含b1dcc9dd-5262-4d8d-a863-c897e6d979b9,需要创建配置文件: 记下新的配置文件 ID(例如dconf reset -f /org/gnome/terminal/ gsettings get org.gnome.Terminal.ProfilesList listnew-profile-id),替换下面的b1dcc9dd-5262-4d8d-a863-c897e6d979b9。
- 确保配置文件
- 设置字体和禁用系统字体:
sudo gsettings set org.gnome.Terminal.Legacy.Profile:/org/gnome/terminal/legacy/profiles:/:b1dcc9dd-5262-4d8d-a863-c897e6d979b9/ font 'JetBrainsMono Nerd Font 12' sudo gsettings set org.gnome.Terminal.Legacy.Profile:/org/gnome/terminal/legacy/profiles:/:b1dcc9dd-5262-4d8d-a863-c897e6d979b9/ use-system-font false - 设置默认配置文件(全局):
- 使用
org.gnome.Terminal.ProfilesList设置默认配置文件:sudo gsettings set org.gnome.Terminal.ProfilesList default 'b1dcc9dd-5262-4d8d-a863-c897e6d979b9' - 如果
gsettings命令失败(例如权限问题),使用 DConf 配置文件设置: 添加以下内容:sudo mkdir -p /etc/dconf/db/local.d sudo vim /etc/dconf/db/local.d/00-terminal 保存并退出(在[org/gnome/Terminal/ProfilesList] default='b1dcc9dd-5262-4d8d-a863-c897e6d979b9' [org/gnome/terminal/legacy/profiles:/:b1dcc9dd-5262-4d8d-a863-c897e6d979b9] font='JetBrainsMono Nerd Font 12' use-system-font=falsevim中,按Esc,输入:wq并按 Enter)。 - 更新 DConf 数据库:
sudo dconf update
- 使用
- 验证设置:
输出应为gsettings get org.gnome.Terminal.ProfilesList default'b1dcc9dd-5262-4d8d-a863-c897e6d979b9'。
- 创建默认配置文件:
-
设置 Kitty 默认字体(全局,若使用):
- 创建全局 Kitty 配置文件:
添加:sudo mkdir -p /etc/xdg/kitty sudo vim /etc/xdg/kitty/kitty.conf 保存并退出(在font_family JetBrainsMono Nerd Font font_size 12vim中,按Esc,输入:wq并按 Enter)。
- 创建全局 Kitty 配置文件:
步骤 5:配置终端背景模糊透明(包括标题栏,全局)
方案 1:调整 GNOME Terminal 标题栏透明
方法 1:使用 User Themes 和自定义 CSS
-
安装 User Themes 扩展:
sudo apt install gnome-shell-extension-prefs- 访问 extensions.gnome.org,安装浏览器插件。
- 搜索并安装 User Themes.
-
创建全局 GNOME Shell 主题:
sudo mkdir -p /usr/share/themes/CustomTheme/gnome-shell sudo vim /usr/share/themes/CustomTheme/gnome-shell/gnome-shell.css添加:
.titlebar, .header-bar { background: rgba(0, 0, 0, 0.3) !important; border: none; } .titlebar, .header-bar { backdrop-filter: blur(10px); }保存并退出(在
vim中,按Esc,输入:wq并按 Enter)。 -
为所有用户启用自定义主题:
- 安装 GNOME Tweaks:
sudo apt install gnome-tweaks - 为所有用户设置 Shell 主题:
sudo gsettings set org.gnome.shell.extensions.user-theme name 'CustomTheme' - 为新用户设置:
sudo mkdir -p /etc/skel/.config/dconf sudo gsettings set org.gnome.shell.extensions.user-theme name 'CustomTheme'
- 安装 GNOME Tweaks:
-
设置 GNOME Terminal 透明(全局):
sudo gsettings set org.gnome.Terminal.Legacy.Profile:/org/gnome/terminal/legacy/profiles:/:b1dcc9dd-5262-4d8d-a863-c897e6d979b9/ use-theme-transparency false sudo gsettings set org.gnome.Terminal.Legacy.Profile:/org/gnome/terminal/legacy/profiles:/:b1dcc9dd-5262-4d8d-a863-c897e6d979b9/ background-transparency-percent 20- 如果遇到权限问题,添加到 DConf 配置文件:
追加:sudo vim /etc/dconf/db/local.d/00-terminal 保存并退出(在[org/gnome/terminal/legacy/profiles:/:b1dcc9dd-5262-4d8d-a863-c897e6d979b9] use-theme-transparency=false background-transparency-percent=20vim中,按Esc,输入:wq并按 Enter)。- 更新 DConf 数据库:
sudo dconf update
- 更新 DConf 数据库:
- 如果遇到权限问题,添加到 DConf 配置文件:
方法 2:移除标题栏(全局)
-
安装 Hide Top Bar 扩展:
sudo apt install gnome-shell-extension-hide-top-bar -
启用并配置(全局):
- 为所有用户启用扩展:
sudo gnome-extensions enable hide-top-bar@gnome-shell-extensions.gcampax.github.com - 为新用户设置:
sudo mkdir -p /etc/skel/.config/gnome-shell echo "hide-top-bar@gnome-shell-extensions.gcampax.github.com" | sudo tee -a /etc/skel/.config/gnome-shell/extensions
- 为所有用户启用扩展:
方案 2:使用 Kitty 终端实现完整的模糊透明(推荐)
-
安装 Kitty:
sudo apt install kitty -
配置全局 Kitty 设置:
- 编辑
/etc/xdg/kitty/kitty.conf: 添加:sudo vim /etc/xdg/kitty/kitty.conf 保存并退出(在background_opacity 0.8 dynamic_background_opacity yes background_blur 10 hide_window_decorations yes shell zsh font_family JetBrainsMono Nerd Font font_size 12vim中,按Esc,输入:wq并按 Enter)。
- 编辑
步骤 6:安装并配置 ASCII 艺术与终端玩具(全局,系统级别)
此步骤将在系统级别安装 ASCII 艺术工具和终端玩具(包括 figlet、lolcat、fortune、cmatrix 和 fastfetch),并配置全局欢迎消息,确保所有用户(包括现有用户和新用户)都能使用,同时避免重复显示。以下提供在线和离线两种安装方案。
6.1 安装 figlet(系统级)
figlet 是一个生成 ASCII 艺术文本的工具,可以将文本转换为各种艺术字体样式。
在线安装(推荐)
-
使用
apt安装figlet:sudo apt update sudo apt install figlet -yapt update更新软件包索引。apt install figlet安装figlet软件包,-y自动确认安装。
-
验证安装:
which figlet- 输出应为
/usr/bin/figlet,表示figlet已安装在系统路径中。 - 测试
figlet是否正常工作: 输出示例:figlet "Hello"_ _ _ _ | | | | (_) | | |_| | __ _ _| | | _ |/ _` | | | | | | | (_| | | | |_| |_|__,_|_|_|_|
- 输出应为
离线安装
如果网络不可用,可以从 Ubuntu 软件包仓库手动下载 figlet 的 .deb 包并安装。
-
下载
figlet的.deb包:- 访问 Ubuntu 软件包仓库(例如
http://archive.Ubuntu.com/ubuntu/pool/main/f/figlet/)。 - 找到适用于您的 Ubuntu 版本的
figlet包,例如figlet_2.2.5-3_amd64.deb(适用于 Ubuntu 22.04)。 - 在另一台有网络的机器上下载:
wget http://archive.ubuntu.com/ubuntu/pool/main/f/figlet/figlet_2.2.5-3_amd64.deb -O /tmp/figlet.deb - 将下载的
.deb文件传输到目标机器(例如通过 USB 驱动器)。
- 访问 Ubuntu 软件包仓库(例如
-
安装
.deb包:- 假设
.deb文件已复制到/tmp/figlet.deb:sudo dpkg -i /tmp/figlet.deb - 如果提示缺少依赖,修复依赖:
sudo apt install -f
- 假设
-
验证安装:
which figlet- 输出应为
/usr/bin/figlet。 - 测试:
figlet "Test"
- 输出应为
6.2 安装 lolcat(系统级)
lolcat 是一个为终端输出添加彩色渐变效果的工具,常与 figlet 配合使用,使 ASCII 艺术更生动。
在线安装(推荐)
-
使用
apt和gem安装lolcat:- 在 Ubuntu 22.04 或 24.04 中,
lolcat默认不在官方仓库中,但可以通过 Ruby 的包管理器gem安装。 - 首先安装 Ruby(
lolcat是一个 Ruby 脚本):sudo apt update sudo apt install ruby -y - 使用
gem安装lolcat:sudo gem install lolcat gem install会将lolcat安装到系统路径(如/usr/local/bin/lolcat)。
- 在 Ubuntu 22.04 或 24.04 中,
-
验证安装:
which lolcat- 输出应为
/usr/local/bin/lolcat(路径可能因系统而异)。 - 测试
lolcat是否正常工作:echo "Hello" | lolcat- 输出应为彩色的 "Hello" 文本。
- 与
figlet结合测试:figlet "Hello" | lolcat- 输出将是彩色的 ASCII 艺术文本。
- 输出应为
离线安装
如果网络不可用,可以手动下载 lolcat 的 Ruby Gem 包并安装。
-
准备 Ruby 环境:
- 确保 Ruby 已安装(离线安装 Ruby 需要下载 Ruby 的
.deb包)。 - 下载 Ruby 的
.deb包(例如ruby_3.0.2-7ubuntu2.7_amd64.deb):wget http://archive.Ubuntu.com/ubuntu/pool/main/r/ruby3.0/ruby_3.0.2-7Ubuntu2.7_amd64.deb -O /tmp/ruby.deb - 安装:
sudo dpkg -i /tmp/ruby.deb sudo apt install -f
- 确保 Ruby 已安装(离线安装 Ruby 需要下载 Ruby 的
-
下载
lolcat的 Gem 包:- 在有网络的机器上下载
lolcat的 Gem 包:gem fetch lolcat- 这将下载一个
.gem文件,例如lolcat-100.0.1.gem。
- 这将下载一个
- 将
.gem文件传输到目标机器(例如/tmp/lolcat-100.0.1.gem)。
- 在有网络的机器上下载
-
离线安装
lolcat:- 使用
gem安装本地 Gem 包:sudo gem install --local /tmp/lolcat-100.0.1.gem
- 使用
-
验证安装:
which lolcat- 输出应为
/usr/local/bin/lolcat。 - 测试:
echo "Test" | lolcat
- 输出应为
6.3 安装其他终端玩具(fortune、cmatrix 和 fastfetch)
安装 fortune
fortune 是一个显示随机名言或趣味消息的工具,安装后所有用户都可以使用。
- 在线安装:
sudo apt install fortune -y - 离线安装:
- 下载
fortune的.deb包:wget http://archive.ubuntu.com/ubuntu/pool/main/f/fortune-mod/fortune-mod_1.99.1-7build2_amd64.deb -O /tmp/fortune.deb - 安装:
sudo dpkg -i /tmp/fortune.deb sudo apt install -f
- 下载
- 验证安装:
which fortune- 输出应为
/usr/games/fortune。 - 测试:
fortune
- 输出应为
安装 cmatrix
cmatrix 提供类似《黑客帝国》的矩阵风格动画效果,安装后所有用户都可以运行。
- 在线安装:
sudo apt install cmatrix -y - 离线安装:
- 下载
cmatrix的.deb包:wget http://archive.Ubuntu.com/ubuntu/pool/universe/c/cmatrix/cmatrix_2.0-2_amd64.deb -O /tmp/cmatrix.deb - 安装:
sudo dpkg -i /tmp/cmatrix.deb sudo apt install -f
- 下载
- 验证安装:
which cmatrix- 输出应为
/usr/bin/cmatrix。 - 测试:
cmatrix
- 输出应为
安装 fastfetch
fastfetch 是一个显示系统信息的工具,类似于 neofetch,但速度更快,安装后所有用户都可以运行。
- 在线安装:
- 从
fastfetch的 GitHub Releases 页面下载最新版本的.deb包:sudo apt install wget wget https://github.com/fastfetch-cli/fastfetch/releases/download/2.14.0/fastfetch-linux-amd64.deb -O /tmp/fastfetch.deb - 安装:
sudo dpkg -i /tmp/fastfetch.deb sudo apt install -f
- 从
- 离线安装:
- 在有网络的机器上下载
fastfetch的.deb包(同上)。 - 将
.deb文件传输到目标机器(例如/tmp/fastfetch.deb)。 - 安装:
sudo dpkg -i /tmp/fastfetch.deb sudo apt install -f
- 在有网络的机器上下载
- 验证安装:
which fastfetch- 输出应为
/usr/bin/fastfetch。 - 测试:
fastfetch
- 输出应为
6.4 确保全局可用性
figlet、lolcat、fortune、cmatrix和fastfetch的路径:figlet通常安装在/usr/bin/figlet。lolcat通常安装在/usr/local/bin/lolcat(通过gem安装)。fortune通常安装在/usr/games/fortune。cmatrix通常安装在/usr/bin/cmatrix.fastfetch通常安装在/usr/bin/fastfetch.- 确认
/usr/local/bin和/usr/games在系统PATH中:echo $PATH- 输出应包含
/usr/local/bin和/usr/games。 - 如果缺失,编辑
/etc/zsh/zshrc,添加:export PATH=$PATH:/usr/local/bin:/usr/games
- 输出应包含
- 权限:
- 确保工具对所有用户可执行:
sudo chmod 755 /usr/bin/figlet sudo chmod 755 /usr/local/bin/lolcat sudo chmod 755 /usr/games/fortune sudo chmod 755 /usr/bin/cmatrix sudo chmod 755 /usr/bin/fastfetch
- 确保工具对所有用户可执行:
- 测试全局可用性:
- 创建一个新用户并测试:
sudo adduser testuser su - testuser figlet "Hello" | lolcat fortune cmatrix fastfetch | lolcat - 如果输出正常,说明工具已全局可用。
- 创建一个新用户并测试:
6.5 配置全局欢迎消息(系统级别)
- 全局欢迎消息已在
/etc/zsh/zshrc中配置(见“步骤 3.2.8”),内容如下:# 控制台打开时打印信息(防止重复显示) if [[ -z "${WELCOME_MESSAGE_SHOWN}" ]]; then if [[ "$USER" != "root" ]]; then ff fi echo "Hello $USER !" | figlet | lolcat fortune | lolcat export WELCOME_MESSAGE_SHOWN=1 fiWELCOME_MESSAGE_SHOWN变量用于防止欢迎消息在同一会话中重复显示。if [[ "$USER" != "root" ]]; then ff; fi确保非 root 用户显示fastfetch系统信息。echo "Hello $USER !" | figlet | lolcat使用figlet生成欢迎消息,并通过lolcat添加彩色效果。fortune | lolcat添加随机名言或趣味消息,并使用lolcat添加彩色效果。- 注意:不建议将
cmatrix添加到欢迎消息中,因为cmatrix是一个交互式动画,会阻塞终端。
- 验证欢迎消息对所有用户生效:
- 现有用户:由于
/etc/skel/.zshrc已配置为source /etc/zsh/zshrc,现有用户在登录或打开新终端时会自动加载/etc/zsh/zshrc,从而显示欢迎消息。 - 新用户:新用户创建时会从
/etc/skel/.zshrc复制配置,同样会加载/etc/zsh/zshrc,因此也会看到欢迎消息。 - 测试:
确认欢迎消息显示,且不会重复。source /etc/zsh/zshrc
- 现有用户:由于
步骤 7:附加美化选项(全局)
-
安装
exa:sudo apt install exa在
/etc/zsh/zshrc中已添加以下别名:alias ls='exa --icons' alias ll='exa -laF --icons' -
自定义配色(全局):
- 为 GNOME Terminal 安装
Dracula主题:sudo git clone https://github.com/dracula/gnome-terminal /usr/local/share/dracula-gnome-terminal cd /usr/local/share/dracula-gnome-terminal sudo ./install.sh - 为 Kitty 设置 Dracula 主题:
编辑sudo curl -fsSL https://raw.githubusercontent.com/dracula/kitty/master/dracula.conf -o /etc/xdg/kitty/dracula.conf/etc/xdg/kitty/kitty.conf: 添加:sudo vim /etc/xdg/kitty/kitty.conf 保存并退出(在include dracula.confvim中,按Esc,输入:wq并按 Enter)。
- 为 GNOME Terminal 安装
-
优化历史记录(全局):
在/etc/zsh/zshrc中已添加:HISTSIZE=10000 SAVEHIST=10000 setopt HIST_IGNORE_DUPS
步骤 8:测试和微调
-
应用配置:
- 为当前用户测试:
source /etc/zsh/zshrc - 新用户创建后会自动加载
/etc/zsh/zshrc。
- 为当前用户测试:
-
测试功能:
- 检查标题栏是否透明。
- 验证背景模糊效果。
- 确认 ASCII 艺术显示(
figlet欢迎消息是否显示,是否重复)。 - 测试终端玩具(运行
fortune | lolcat、cmatrix、fastfetch | lolcat是否正常)。 - 测试插件(命令建议、语法高亮、
j或z跳转)。 - 检查提示符样式(Powerlevel10k)和字体(JetBrains Mono Nerd)。
- 验证补全功能是否正常(例如输入
git后按 Tab 是否显示补全选项)。 - 确认 GNOME Terminal 使用了
JetBrainsMono Nerd Font字体:gsettings get org.gnome.Terminal.Legacy.Profile:/org/gnome/terminal/legacy/profiles:/:b1dcc9dd-5262-4d8d-a863-c897e6d979b9/ font - 如果使用
Zim,确认终端打开时不再打印completion was already initialized警告。 - 确认
p10k configure命令可用: 如果遇到p10k configurep10k: command not found错误,参考“注意事项”中的排查步骤。
-
调整:
- 若标题栏透明不理想,切换到 Kitty。
- 调整 Kitty 的
background_opacity和background_blur. - 若欢迎消息未显示,检查
/etc/zsh/zshrc是否被正确加载,或者工具是否安装成功。 - 若字体未生效,检查
/etc/dconf/db/local.d/00-terminal是否正确,或者重新运行sudo dconf update.
-
测试新用户:
- 创建一个新 user 以验证
.p10k.zsh和欢迎消息是否生效:sudo adduser testuser - 登录新用户,检查
~/.p10k.zsh是否存在:ls -l /home/testuser/.p10k.zsh - 打开终端,确认欢迎消息显示:
zsh - 如果欢迎消息未显示,检查
/etc/skel/.zshrc是否正确加载了/etc/zsh/zshrc. - 确认新用户使用正确的字体:
gsettings get org.gnome.Terminal.Legacy.Profile:/org/gnome/terminal/legacy/profiles:/:b1dcc9dd-5262-4d8d-a863-c897e6d979b9/ font - 如果使用
Zim,确认新用户打开终端时不打印completion was already initialized警告。 - 确认新用户可以运行
p10k configure: 如果遇到p10k configurep10k: command not found错误,参考“注意事项”中的排查步骤。
- 创建一个新 user 以验证
步骤 9:卸载 Oh My Zsh 或 Zim(全局)
卸载 Oh My Zsh(全局)
-
备份
/etc/zsh/zshrc:sudo cp /etc/zsh/zshrc /etc/zsh/zshrc.bak -
删除 Oh My Zsh 文件:
sudo rm -rf /usr/local/share/oh-my-zsh -
清理
/etc/zsh/zshrc:sudo vim /etc/zsh/zshrc删除
Oh My Zsh相关配置:if [[ "${GLOBAL_ZSHRC_LOADED}" == "1" ]]; then return 0 fi export GLOBAL_ZSHRC_LOADED=1 skip_global_compinit=1 export ZSH="/usr/local/share/oh-my-zsh" ZSH_THEME="powerlevel10k/powerlevel10k" plugins=(git zsh-autosuggestions zsh-syntax-highlighting autojump) source $ZSH/oh-my-zsh.sh同时删除
Powerlevel10k相关配置:if [[ -r "${XDG_CACHE_HOME:-$HOME/.cache}/p10k-instant-prompt-${(%):-%n}.zsh" ]]; then source "${XDG_CACHE_HOME:-$HOME/.cache}/p10k-instant-prompt-${(%):-%n}.zsh" fi if [[ -f ~/.p10k.zsh ]]; then source ~/.p10k.zsh elif [[ -f /etc/zsh/.p10k.zsh ]]; then source /etc/zsh/.p10k.zsh else echo "Powerlevel10k configuration not found. Please run 'p10k configure' to set up your prompt." fi同时删除欢迎消息相关配置:
if [[ -z "${WELCOME_MESSAGE_SHOWN}" ]]; then figlet "Welcome, $USER" | lolcat fortune | lolcat export WELCOME_MESSAGE_SHOWN=1 fi保存并退出(在
vim中,按Esc,输入:wq并按 Enter)。 -
清理用户目录:
sudo find /home -type f -name ".zshrc" -exec rm -f {} + sudo find /home -type f -name ".p10k.zsh" -exec rm -f {} + -
清理系统级配置:
sudo rm -f /etc/zsh/.p10k.zsh /etc/skel/.p10k.zsh -
卸载 ASCII 艺术和终端玩具工具(可选):
sudo apt remove figlet lolcat fortune cmatrix fastfetch -y sudo apt autoremove -y -
清理字体和 GNOME Terminal 设置:
sudo rm -rf /usr/share/fonts/truetype/jetbrains-mono-nerd sudo fc-cache -fv sudo rm -f /etc/dconf/db/local.d/00-terminal sudo dconf update
卸载 Zim(全局)
-
备份
/etc/zsh/zshrc和/etc/zsh/.zimrc:sudo cp /etc/zsh/zshrc /etc/zsh/zshrc.bak sudo cp /etc/zsh/.zimrc /etc/zsh/.zimrc.bak -
删除 Zim 文件和配置:
sudo rm -rf /usr/local/share/zim sudo rm -f /etc/zsh/.zimrc -
清理
/etc/zsh/zshrc:sudo vim /etc/zsh/zshrc删除
Zim相关配置:if [[ "${GLOBAL_ZSHRC_LOADED}" -eq 1 ]]; then return 0 fi export GLOBAL_ZSHRC_LOADED=1 skip_global_compinit=1 if [[ -z "${ZIM_LOADED}" ]]; then export ZIM_HOME=/usr/local/share/zim if [[ -e $ZIM_HOME/init.zsh ]]; then source $ZIM_HOME/init.zsh else echo "Zim initialization failed: $ZIM_HOME/init.zsh not found." fi export ZIM_LOADED=1 fi同时删除
Powerlevel10k相关配置(与卸载Oh My Zsh时相同)。
同时删除欢迎消息相关配置(与卸载Oh My Zsh时相同)。
保存并退出(在vim中,按Esc,输入:wq并按 Enter)。 -
清理用户目录:
sudo find /home -type f -name ".zshrc" -exec rm -f {} + sudo find /home -type f -name ".p10k.zsh" -exec rm -f {} + sudo find /home -type d -name ".zim" -exec rm -rf {} + 2>/dev/null sudo find /home -type f -name ".zimrc" -exec rm -f {} + 2>/dev/null -
清理系统级配置:
sudo rm -f /etc/zsh/.p10k.zsh /etc/skel/.p10k.zsh -
卸载 ASCII 艺术和终端玩具工具(可选):
sudo apt remove figlet lolcat fortune cmatrix fastfetch -y sudo apt autoremove -y -
清理字体和 GNOME Terminal 设置:
sudo rm -rf /usr/share/fonts/truetype/jetbrains-mono-nerd sudo fc-cache -fv sudo rm -f /etc/dconf/db/local.d/00-terminal sudo dconf update
步骤 10:可选 - 桌面集成优化(全局)
-
安装 GNOME Tweaks:
sudo apt install gnome-tweaks -
安装 Dash to Dock:
sudo apt install gnome-shell-extension-dashtodock
注意事项
- 全局配置注意:
- 所有用户共享
/etc/zsh/zshrc配置,个性化设置需在用户自己的~/.zshrc中添加。 - 新用户会自动从
/etc/skel复制配置文件(包括.zshrc和.p10k.zsh)。
- 所有用户共享
- 故障排查:
- 若
/usr/local/share/zim/modules/powerlevel10k 不存在:- 确认
/etc/zsh/.zimrc是否包含Powerlevel10k模块: 输出应包含:grep "powerlevel10k" /etc/zsh/.zimrc 如果缺失,编辑zmodule romkatv/powerlevel10k --use degit/etc/zsh/.zimrc添加该行: 添加上述行,保存并退出(在sudo vim /etc/zsh/.zimrcvim中,按Esc,输入:wq并按 Enter),然后重新运行:sudo env ZIM_HOME=/usr/local/share/zim ZDOTDIR=/etc/zsh zsh /usr/local/share/zim/zimfw.zsh install - 检查网络连接,确保可以访问 GitHub:
如果网络不可用,配置代理或使用手动安装:ping -c 4 github.com 如果sudo mkdir -p /usr/local/share/zim/modules/powerlevel10k sudo git clone --depth=1 https://github.com/romkatv/powerlevel10k.git /usr/local/share/zim/modules/powerlevel10kgit clone失败,使用压缩包:sudo mkdir -p /usr/local/share/zim/modules/powerlevel10k sudo wget https://github.com/romkatv/powerlevel10k/archive/refs
- 确认
- 若