这是一个专为 Linux 系统(主要支持 Debian/Ubuntu,其他发行版可自行测试)设计的自动化终端环境配置工具。主要功能是在创建新用户时,自动为用户配置现代化的终端环境,提升开发效率和用户体验。
- 🎨 美观主题:采用 powerlevel10k 主题,提供丰富的视觉信息
- 🤖 智能补全:zsh-autosuggestions 插件提供命令自动建议
- 🌈 语法高亮:zsh-syntax-highlighting 插件实时显示命令合法性
- 🐍 Conda 集成:可选的 Miniconda 环境配置
- 🚀 一键部署:单条命令完成所有配置
- 🔄 重复执行保护:智能检测避免重复配置
zsh_init/
├── oh-my-zsh-pkg.tar.gz # Oh My Zsh 预配置包(包含主题和插件)
├── user-setup-zsh.sh # 系统管理员执行脚本(仅 zsh 版本)
├── user-setup-zsh-conda.sh # 系统管理员执行脚本(zsh + conda 版本)
├── setup-oh-my-zsh.sh # 用户登录时自动执行的配置脚本(仅 zsh)
├── setup-zsh-conda.sh # 用户登录时自动执行的配置脚本(zsh + conda)
└── README.md # 项目文档
适用场景:只需要现代化终端环境,不需要 Python 开发环境
包含组件:
- Shell: Zsh (替代默认 bash)
- 框架: Oh My Zsh
- 主题: powerlevel10k
- 插件:
zsh-autosuggestions:根据历史命令智能提示,按右箭头采纳建议zsh-syntax-highlighting:实时语法检查,合法命令显示绿色,非法命令显示红色
一键安装:
curl -fsSL https://ghfast.top/https://raw.githubusercontent.com/biubushy/zsh_init/main/user-setup-zsh.sh | sudo bash适用场景:需要 Python 开发环境或数据科学工作环境
包含组件:
- 基础环境:与方案一完全相同的 zsh 配置
- Python 环境:Miniconda3-py39_24.9.2-0-Linux-x86_64
- 包管理器集成:conda 与 zsh 完美集成
- 镜像源优化:自动配置清华大学镜像源,提升下载速度
一键安装:
curl -fsSL https://ghfast.top/https://raw.githubusercontent.com/biubushy/zsh_init/main/user-setup-zsh-conda.sh | sudo bash- 操作系统:Debian/Ubuntu(推荐)或其他 Linux 发行版
- 权限要求:需要 sudo 权限执行系统级配置
- 网络要求:需要能够访问 GitHub 和清华镜像源
- 依赖软件:curl、tar、zsh、bash、chsh
注意:脚本会自动检测并安装缺失的依赖项,支持 apt-get、yum、dnf 等包管理器
-
选择配置方案:根据需求选择纯 zsh 或 zsh+conda 方案
-
执行安装命令:以管理员权限运行对应的一键安装命令
-
创建用户:使用
adduser命令创建新用户sudo adduser 用户名
-
用户登录:新用户首次登录时会自动进行环境配置
-
完成配置:用户可能需要输入密码完成 powerlevel10k 的初始化向导
用户登录后可以通过以下方式验证配置是否成功:
# 检查当前 shell
echo $SHELL
# 应该显示:/usr/bin/zsh 或 /bin/zsh
# 检查 Oh My Zsh 安装
ls -la ~/.oh-my-zsh
# 应该显示 Oh My Zsh 目录结构
# 检查 conda 安装(仅 conda 版本)
conda --version
# 应该显示 conda 版本信息两个入口脚本(user-setup-zsh.sh 和 user-setup-zsh-conda.sh)都具备完善的依赖项检测功能:
-
命令检测:自动检测必需命令是否存在
curl:用于下载文件tar:用于解压缩zsh:目标 shellbash:脚本运行环境chsh:修改默认 shellmkdir、chmod:文件系统操作
-
网络连接检测:
- 测试网络连通性
- 确保能够下载所需文件
-
磁盘空间检测:
- 纯 zsh 版本:至少 200MB
- zsh + conda 版本:至少 500MB
-
目录权限检测:
- 检查
/home/share目录权限 - 检查
/etc/profile.d目录权限
- 检查
-
自动安装缺失依赖:支持多种包管理器
- Debian/Ubuntu:使用
apt-get - RHEL/CentOS:使用
yum - Fedora:使用
dnf
- Debian/Ubuntu:使用
-
智能错误提示:
- 彩色输出:成功(绿色)、错误(红色)、警告(黄色)
- 详细的错误信息和修复建议
- 安装失败时提供手动安装指引
-
/home/share/:存放共享的安装包和配置文件oh-my-zsh-rc.tar.gz:预配置的 Oh My Zsh 环境包Miniconda3-py39_24.9.2-0-Linux-x86_64.sh:Miniconda 安装程序
-
/etc/profile.d/:存放用户登录时自动执行的脚本setup-oh-my-zsh.sh或setup-zsh-conda.sh
-
用户目录配置:
~/.oh-my-zsh/:Oh My Zsh 框架目录~/.zshrc:zsh 配置文件~/.p10k.zsh:powerlevel10k 主题配置~/.condarc:conda 配置文件(仅 conda 版本)~/miniconda3/:Miniconda 安装目录(仅 conda 版本)
系统使用标记文件防止重复配置:
~/.oh-my-zsh_setup_done:标记 Oh My Zsh 配置完成~/.miniconda_setup_done:标记 Miniconda 安装完成
- 系统文件权限:755(可执行脚本)/ 644(数据文件)
- 用户文件权限:755(目录)/ 644(配置文件)
- 安全考虑:所有脚本都包含权限检查和错误处理
- 备份重要数据:虽然脚本只配置新用户,建议备份重要的 shell 配置
- 网络连接:确保网络稳定,安装过程需要下载约 100MB 数据
- 磁盘空间:预留至少 500MB 空间用于安装
- 系统兼容性:在非 Debian/Ubuntu 系统上可能需要手动调整
Q: 为什么需要 sudo 权限?
A: 需要在系统级目录(/home/share/、/etc/profile.d/)创建文件,并修改用户的默认 shell。
Q: 如何卸载配置? A: 可以手动删除相关文件:
# 删除系统级文件
sudo rm -rf /home/share/oh-my-zsh-rc.tar.gz
sudo rm -rf /home/share/Miniconda3-py39_24.9.2-0-Linux-x86_64.sh
sudo rm -f /etc/profile.d/setup-*.sh
# 删除用户配置(针对特定用户)
rm -rf ~/.oh-my-zsh ~/.p10k.zsh ~/.condarc ~/miniconda3
rm -f ~/.oh-my-zsh_setup_done ~/.miniconda_setup_done
chsh -s /bin/bash # 恢复默认 shellQ: 配置过程中断了怎么办? A: 删除对应的标记文件,重新登录即可继续配置:
rm -f ~/.oh-my-zsh_setup_done ~/.miniconda_setup_doneQ: 如何自定义配置?
A: 可以修改 ~/.zshrc 和 ~/.p10k.zsh 文件进行个性化定制。
欢迎提交 Issue 和 Pull Request 来改进这个项目!