这是一个用于初始化 Ubuntu 开发环境的 Bash 脚本集合,能够自动安装常用开发工具,并配置 zsh、tmux、vim 与可选的 Neovim 环境。脚本支持静默模式、预览模式、卸载模式,并通过日志记录主脚本操作过程。
- 安装常用编程工具和开发环境
- 安装并配置
oh-my-zsh - 配置 tmux、vim 用户配置
- 可选安装并配置 Neovim
- 支持静默模式、预览模式和部分卸载功能
- 支持运行日志记录
- 覆盖部分用户配置前会创建备份文件
当前脚本面向以下环境:
- Ubuntu 或基于
apt的 Ubuntu 兼容环境 - Bash
sudo权限- 可访问 Ubuntu apt 软件源
WSL 可能可用,但当前仓库尚未明确验证完整 WSL 兼容性。
git clone https://github.com/storious/ubuntu-setup-tool.git
cd ubuntu-setup-tool默认情况下,脚本将以详细模式运行,输出到终端并记录到以当前日期命名的日志文件中。
bash common.sh查看可用命令和参数:
bash common.sh --help| 参数 | 说明 |
|---|---|
--help, -h |
显示帮助信息 |
--quiet, -q |
以静默模式运行脚本,隐藏命令输出 |
--dry-run |
预览将执行的操作,不执行系统修改命令 |
--with-ssh |
初始化时启用并启动 SSH 服务;默认不启用 |
--uninstall |
卸载或移除脚本管理的部分配置 |
详细模式执行初始化:
bash common.sh静默模式执行初始化:
bash common.sh --quiet预览初始化操作,不实际执行系统修改命令:
bash common.sh --dry-run初始化并启用 SSH 服务:
bash common.sh --with-ssh卸载脚本管理的部分配置:
bash common.sh --uninstall预览卸载操作:
bash common.sh --dry-run --uninstall安装并配置 Neovim:
bash nvim_setup.sh预览 Neovim 安装与配置操作:
bash nvim_setup.sh --dry-run每次运行 common.sh,都会将输出日志保存在以当前日期命名的 .log 文件中。日志文件会记录脚本的主要操作步骤,便于排查问题。
# 日志文件示例
2026-06-04.log主初始化脚本会执行以下操作:
- 请求并验证
sudo权限;在--dry-run模式下跳过实际验证 - 执行
apt-get update - 执行
apt-get upgrade - 安装基础开发工具和 CLI 工具,包括:
sshbuild-essentialvimgcc-docgdbwgetripgrepvalgrindbeargittmuxzshcurl
- 默认仅安装
ssh包,不启用 SSH 服务;如传入--with-ssh,则启用并启动ssh服务 - 从
pkg/复制oh-my-zsh、zsh 插件和主题资源 - 复制
config/.zshrc到~/.zshrc - 将默认 Shell 切换为 zsh
- 复制
config/.vimrc到~/.vimrc - 复制 tmux 配置到
~/.config/tmux/ - 执行
apt-get autoremove --purge
Neovim 安装脚本支持:
| 参数 | 说明 |
|---|---|
--help, -h |
显示帮助信息 |
--dry-run |
预览将执行的 Neovim 安装与配置操作,不执行系统修改命令 |
Neovim 安装脚本会执行以下操作:
- 添加
ppa:neovim-ppa/unstable - 安装
neovim、python3-dev、python3-pip - 检查 Neovim 是否包含 Lua 支持
- 创建
~/.config/nvim - 复制
config/nvim配置到用户 Neovim 配置目录
当前 Neovim 配置目标版本为 >= 0.12,附带基础配置,支持文件浏览、代码补全、LSP 管理和 Lua 配置。
该工具会修改用户系统和用户目录配置。运行前请确认你理解以下影响:
- 会使用
sudo安装和升级 apt 软件包 - 默认仅安装
ssh包,不启用 SSH 服务;传入--with-ssh时会启用并启动ssh服务 - 会尝试将默认 Shell 修改为 zsh
- 会写入用户目录下的配置文件
- 会复制仓库内的
pkg/和config/资源到用户目录 nvim_setup.sh会添加 Neovim unstable PPA
--dry-run 可用于预览 common.sh 和 nvim_setup.sh 将执行的命令,不会执行 apt 安装、服务启用、文件复制、删除或移动等系统修改命令。common.sh 仍会通过日志函数输出内容,并可能生成当天的 .log 文件。
建议首次运行前备份重要 dotfiles 和 Neovim/tmux/zsh 配置。
common.sh 在覆盖以下文件前,会将已存在的文件移动为带时间戳的备份文件:
~/.zshrc~/.vimrc~/.config/tmux/tmux.conf~/.config/tmux/tmux.conf.local
备份文件示例:
~/.zshrc.bak.20260604120000
nvim_setup.sh 在覆盖已有 Neovim 配置前,也会将 ~/.config/nvim 移动为带时间戳的备份目录,例如:
~/.config/nvim.bak.20260604120000
bash common.sh --uninstall 当前主要处理以下内容:
- 调用
~/.oh-my-zsh/tools/uninstall.sh,如果不存在则尝试手动删除~/.oh-my-zsh和~/.zshrc - 将 tmux 配置移动为
.bak文件:~/.config/tmux/tmux.conf~/.config/tmux/tmux.conf.local
卸载模式不会保证完整恢复系统到运行脚本前的状态,也不会自动卸载所有 apt 软件包或回滚 apt-get upgrade 的结果。
修改脚本后,建议优先运行一键检查:
make check也可以直接运行检查脚本:
bash scripts/check.sh检查内容包括:
bash -n common.sh
bash -n nvim_setup.sh
bash -n scripts/check.sh
shellcheck common.sh nvim_setup.sh scripts/check.sh
shfmt -i 4 -d common.sh nvim_setup.sh scripts/check.sh
bash common.sh --help
bash common.sh --dry-run --uninstall
bash common.sh --dry-run --with-ssh
bash nvim_setup.sh --help
bash nvim_setup.sh --dry-run如需自动格式化 Bash 脚本,可运行:
make format完整安装/卸载测试建议在一次性 Ubuntu 虚拟机、容器或测试环境中执行,避免影响个人工作机。
- 该脚本需要
sudo权限执行,以安装、升级和卸载系统软件或配置。 - 默认安装的开发环境包括 zsh、tmux、vim、git、curl 等工具。
- 如需 Neovim,单独运行
bash nvim_setup.sh。 - 在执行脚本前,请确保系统有足够磁盘空间,并确认可以访问所需软件源。
- 如果你不需要某些工具,可以根据需要修改脚本中的软件包列表。
该项目遵循 MIT License。