Dotfiles for macOS and Ubuntu - configuration files that personalize your development environment
这份 dotfiles 基于 zoumo/dotfiles 并根据个人需求进行了定制和扩展。
更多 dotfiles 参考: GitHub does dotfiles
如需从全新的 Mac 环境开始,参考 OS X: 如何清除并安装:
- 登出 iCloud 和 iMessage
- 进入恢复模式:
- Apple Silicon (M1/M2/M3等): 关机后长按电源键,直到看到"正在载入启动选项"
- Intel Mac: 重启时按住 Command + R
- 使用磁盘工具抹掉硬盘
- 重新安装 macOS
关于安全擦除:
- Apple Silicon Mac: 使用 APFS 加密卷宗,直接抹掉即可安全删除数据,无需额外擦除
- Intel Mac (HDD): 可选择安全擦除空闲空间
# Intel Mac HDD 安全擦除命令(仅在必要时使用)
diskutil secureErase freespace VALUE /Volumes/DRIVE
# VALUE 说明:
# 0: 单次覆写 0
# 1: 单次随机数覆写
# 2: 7 次覆写
# 3: 35 次覆写
# 4: 3 次覆写注意:SSD(固态硬盘)不建议频繁擦除,会缩短使用寿命。现代 Mac 基本都使用 SSD,直接抹掉即可。
- 更新系统至最新版本
- 从 App Store 安装 Xcode
- 安装 Xcode Command Line Tools
# 方式 1: 命令行安装(推荐)
xcode-select --install
# 方式 2: 输入 gcc 或 git 会自动提示安装克隆仓库到 ~/.dotfiles 目录:
git clone https://github.com/dubuqingfeng/dotfiles.git ~/.dotfiles
cd ~/.dotfiles
./script/bootstrapbootstrap 脚本会自动完成以下工作:
- 检查并安装 Homebrew
- 检查并安装 Oh My Zsh
- 链接 dotfiles (
.zshrc,.vimrc,.gitconfig,.gitignore等) - 安装 Homebrew packages (binaries, fonts, apps)
- 配置 macOS 系统默认设置
- 安装 Python packages (powerline-status, pyenv 等)
- 美化 vim、ls、terminal (Solarized 配色 + Powerline 状态栏)
安装完成后,需要配置 Homebrew 环境变量:
eval "$(/opt/homebrew/bin/brew shellenv)"使用 Mackup 恢复应用程序配置:
mackup restore管理多台设备的配置建议:
- 为不同设备创建分支或使用条件配置
- 使用 Mackup 同步应用程序配置
- 在
.gitignore中排除设备特定的配置文件
问题 1: 连接 raw.githubusercontent.com 失败
curl: (7) Failed to connect to raw.githubusercontent.com port 443
解决方法:配置网络代理或修改 hosts 文件
问题 2: Cargo 环境未找到
.zshenv:.:2: no such file or directory: ~/.cargo/env
解决方法:安装 Rust 工具链
# 方式 1: 使用 Homebrew
brew install rustup
rustup-init
# 方式 2: 官方安装脚本
curl https://sh.rustup.rs -sSf | sh -s -- --no-modify-path -y执行 script/bootstrap 时,脚本会将所有 *.symlink 文件链接到 $HOME 目录:
| Topic | *.symlink | Link Path |
|---|---|---|
| vim | vimrc.symlink | ~/.vimrc |
| zsh | zshrc.symlink | ~/.zshrc |
| git | gitconfig.symlink | ~/.gitconfig |
采用主题化的目录结构,每个环境配置独立存放:
- bin/: 可执行脚本,会自动添加到 PATH
- topic/*.zsh: shell 启动时自动加载
- topic/path.zsh: 优先加载的路径配置
- topic/*.symlink: 自动链接到
$HOME目录
bin/dot 在 script/bootstrap 最后执行,负责安装软件和配置系统。
使用方式:
# 完整安装(默认)- 包含所有软件包和开发环境
dot
# 轻量安装 - 跳过 Python 和 Node.js 环境配置,只安装必要软件
dot light完整安装执行流程:
os/macos/install.sh- 安装 Homebrew packagesos/macos/set-defaults.sh- 配置 macOS 系统设置pkg/python/install.sh- 配置 Python 环境pkg/node/install.sh- 配置 Node.js 环境os/beautify/install.sh- 美化终端环境
轻量安装执行流程:
os/macos/set-defaults.sh- 配置 macOS 系统设置os/beautify/install.sh- 美化终端环境os/macos/install.sh light- 安装必要的 Homebrew packages
在 os/macos/install.sh 中自定义需要安装的软件包:
# 命令行工具
binaries=(
git
tree
wget
...
)
# 字体 (格式: font-XXX)
fonts=(
font-source-code-pro
...
)
# 应用程序
apps=(
iterm2
google-chrome
visual-studio-code
...
)os/macos/set-defaults.sh 会修改系统默认设置,可根据需求自定义。
主要配置项:
-
性能优化
- 加快窗口 resize 速度
- 加速进入睡眠模式
- 关闭不必要的动画效果
-
触控板/鼠标
- 开启轻触点击
- 开启三指拖拽
- 开启右键菜单
- 提高移动速度
-
键盘
- 开启全键盘控制
- 加快按键重复速度
- 关闭按键长按限制
-
Finder
- 显示隐藏文件
- 显示文件扩展名
- 显示状态栏和路径栏
- 允许文本选择
- 设置默认搜索范围
- 使用列视图
-
Dock
- 窗口最小化到应用图标
- 自动隐藏/显示
- 半透明显示隐藏应用
更多配置参考: Mathias's dotfiles
Mackup 用于备份和同步应用程序配置到云端。
工作原理:
将配置文件移动到云盘同步目录(如 ~/Dropbox/Mackup),然后创建符号链接。
安装:
brew install mackup配置:
创建 ~/.mackup.cfg 文件:
[storage]
engine = dropbox # 支持 dropbox, google_drive, icloud
directory = Mackup # 同步目录名称
[applications_to_sync]
iterm2
oh-my-zsh
sublime-text-3
ssh
[applications_to_ignore]
# 不想同步的应用自定义应用配置:
在 ~/.mackup/ 目录下创建配置文件(会覆盖默认配置):
# ~/.mackup/sublime-text-3.cfg
[application]
name = Sublime Text 3
[configuration_files]
Library/Application Support/Sublime Text 3/Packages
Library/Application Support/Sublime Text 3/Installed Packages
.config/sublime-text-3/Packages/User使用:
# 备份配置
mackup backup
# 恢复配置
mackup restore
# 取消同步
mackup uninstall支持的应用:
| 应用 | 备份内容 |
|---|---|
| git | .gitconfig, .config/git/ignore |
| iterm2 | 所有设置 |
| oh-my-zsh | ~/.oh-my-zsh |
| sublime-text-3 | 插件和配置 |
| pycharm | 配置 |
| vim | .vimrc, .vim |
更多支持的应用: Mackup 文档
在对应的 topic 目录下创建 .zsh 文件定义别名:
# 文件格式转换
alias dos2mac="dos2unix -c mac"
alias gbk2utf8="iconv -f GBK -t UTF-8"
alias utf82gbk="iconv -f UTF-8 -t GBK"
# 常用命令
alias tailf="tail -f"
alias ve="pyenv local"
# 安全删除(需要先 brew install trash)
alias rm="trash"| 工具 | 说明 |
|---|---|
| dos2unix | 文本格式转换 |
| wget | 文件下载工具 |
| curl | HTTP 客户端 |
| python | Python 解释器(含 pip) |
| ctags | 代码标签生成器 |
| grc | 日志着色工具 |
| git-flow | Git 分支管理模型 |
| tree | 目录树显示 |
| mackup | 应用配置同步 |
| z | 智能目录跳转 |
| tmux | 终端多路复用器 |
| htop | 系统监控工具 |
| trash | 安全删除文件 |
| proxychains-ng | 代理工具 |
| pyenv | Python 版本管理 |
| rustup | Rust 工具链 |
| jq | JSON 处理工具 |
| ripgrep | 快速文本搜索 |
| fd | 快速文件查找 |
| bat | cat 的增强版 |
| exa | ls 的现代化替代 |
| 字体 | 说明 |
|---|---|
| font-source-code-pro | Adobe 开源等宽字体 |
| font-fira-code | 带连字的编程字体 |
| 应用 | 说明 |
|---|---|
| iterm2 | 终端增强工具 |
| visual-studio-code | 代码编辑器 |
| zed | 高性能现代化代码编辑器 |
| sublime-text | 文本编辑器 |
| docker | 容器平台 |
| 应用 | 说明 |
|---|---|
| google-chrome | Chrome 浏览器 |
| firefox | Firefox 浏览器 |
| 应用 | 说明 |
|---|---|
| scroll-reverser | 鼠标/触控板滚动方向分离 |
| the-unarchiver | 解压缩工具 |
| appcleaner | 应用卸载工具 |
| charles | HTTP 抓包工具 |
| nutstore | 坚果云网盘 |
| 应用 | 说明 |
|---|---|
| xmind | 思维导图 |
| licecap | GIF 录屏工具 |
| grandperspective | 磁盘空间分析 |
| wireshark | 网络协议分析 |
| 应用 | 说明 |
|---|---|
| mysql | MySQL 数据库 |
| mongodb | MongoDB 数据库 |
| nginx | Web 服务器 |
| postgresql | PostgreSQL 数据库 |
| redis | Redis 缓存 |
| virtualbox | 虚拟机 |
| dash | API 文档浏览器 |
| sourcetree | Git 客户端 |
| beyond-compare | 文件对比工具 |
| 扩展 | 用途 |
|---|---|
| Vimium | Vim 风格键盘导航 |
| MetaSuites - Builders' Swiss Army Knife | 开发者工具集合 |
| Octotree | GitHub 代码树 |
| Markdown Here | Markdown 渲染 |
| JSONView | JSON 格式化 |
# 更新 Homebrew 本身
brew update
# 升级所有软件包
brew upgrade
# 升级指定软件包
brew upgrade <package>
# 重新安装软件包
brew reinstall <package>
# 清理旧版本
brew cleanupcd ~/.dotfiles
git pull origin master
./script/bootstrap- First steps with Mac OS X as a Developer
- 如何优雅地在 Mac 上使用 dotfiles?
- Awesome Dotfiles
- GitHub does dotfiles
- Holman's dotfiles
- Mathias's dotfiles
- Mackup Documentation
- Oh My Zsh
- Homebrew
MIT License
