同事问我:“你Mac咋这么快?”
我默默打开终端,敲了几个命令。今天就把我3年积攒的Mac配置清单,一次性分享给你。
一、 开箱即用:基础配置(30分钟搞定)
1.1 Homebrew:Mac的包管理神器
别用官方源,慢到你怀疑人生。国内镜像快10倍不止。
# 安装Homebrew(国内镜像,速度快)
/bin/zsh -c "$(curl -fsSL https://gitee.com/cunkai/HomebrewCN/raw/master/Homebrew.sh)"
# 选择中科大镜像源
# 等待10分钟,安装完成
# 验证安装
$ brew --version
Homebrew 4.2.0
# 踩坑:如果提示command not found
# 解决:添加环境变量
$ echo 'eval "$(/opt/homebrew/bin/brew shellenv)"' >> ~/.zprofile
$ eval "$(/opt/homebrew/bin/brew shellenv)"
# 常用命令
$ brew install git # 安装软件
$ brew uninstall git # 卸载软件
$ brew upgrade git # 升级软件
$ brew search jdk # 搜索软件
$ brew list # 查看已安装软件
效率对比 :
| 操作 |
Mac + Homebrew |
Windows + 安装包 |
节省时间 |
| 安装Git |
10秒 |
5分钟 |
97% |
| 升级Git |
10秒 |
10分钟 |
98% |
| 卸载软件 |
5秒 |
5分钟 |
98% |
1.2 iTerm2:终端的终极形态
# 安装iTerm2
$ brew install --cask iterm2
# 安装后配置
# 1. 设置快捷键(Preferences → Keys → Hotkey)
# 设置 Ctrl+` 全局呼出
# 2. 配置配色方案(Preferences → Profiles → Colors)
# 导入 Solarized Dark 主题
# 下载:https://github.com/mbadolato/iTerm2-Color-Schemes
# 3. 配置字体(Preferences → Profiles → Text)
# 字体:MesloLGS NF(支持Powerline图标)
$ brew install --cask font-meslo-lg-nerd-font
# 4. 配置窗口(Preferences → Profiles → Window)
# Style: Full-Width Top of Screen
# Screen: Screen with Cursor
# 5. 配置状态栏(Preferences → Profiles → Session)
# 开启 Status Bar
# 添加组件:CPU、内存、网络、当前目录
# 踩坑:iTerm2默认不支持鼠标滚动
# 解决:Preferences → Profiles → Terminal → 勾选"Report mouse wheel events"
# 踩坑:iTerm2默认不支持256色
# 解决:Preferences → Profiles → Terminal → Terminal Emulation → Report Terminal Type: xterm-256color
iTerm2 vs Mac自带终端 :
- 分屏:Cmd+D垂直分屏,Cmd+Shift+D水平分屏
- 搜索:Cmd+F搜索,支持正则
- 复制:选中即复制
- 粘贴:Cmd+V或右键
- 历史:Cmd+Shift+H查看历史命令
- 自动补全:Cmd+; 自动补全命令
1.3 Oh My Zsh:Shell的终极形态
# 安装Oh My Zsh(国内镜像)
$ sh -c "$(curl -fsSL https://gitee.com/mirrors/oh-my-zsh/raw/master/tools/install.sh)"
# 等待2分钟,安装完成
# 配置主题(~/.zshrc)
$ vim ~/.zshrc
# 主题推荐(我用agnoster)
ZSH_THEME="agnoster"
# 配置插件
plugins=(
git
zsh-autosuggestions
zsh-syntax-highlighting
brew
docker
kubectl
maven
gradle
)
# 安装插件
$ git clone https://gitee.com/zsh-users/zsh-autosuggestions ${ZSH_CUSTOM:-~/.oh-my-zsh/custom}/plugins/zsh-autosuggestions
$ git clone https://gitee.com/zsh-users/zsh-syntax-highlighting.git ${ZSH_CUSTOM:-~/.oh-my-zsh/custom}/plugins/zsh-syntax-highlighting
# 生效配置
$ source ~/.zshrc
# 启动Powerlevel10k配置向导
$ p10k configure
# 踩坑:如果提示command not found: p10k
# 解决:source ~/.zshrc 或重启iTerm2
# 配置完成后,终端会变成这样:
# 用户@主机名 当前目录 git分支
# ❯ 输入命令
Oh My Zsh插件功能 :
git:显示git分支、状态
zsh-autosuggestions:自动补全历史命令(灰色提示)
zsh-syntax-highlighting:命令语法高亮(错误红色,正确绿色)
brew:brew命令补全
docker:docker命令补全
maven:mvn命令补全
gradle:gradle命令补全
二、必备开发工具:JDK + Maven + Git + Docker
2.1 JDK:多版本管理
# 安装JDK 8(LTS)
$ brew install --cask adoptopenjdk8
# 安装JDK 11(LTS)
$ brew install --cask adoptopenjdk11
# 安装JDK 17(LTS)
$ brew install --cask adoptopenjdk17
# 安装JDK管理工具jenv
$ brew install jenv
# 配置jenv
$ echo 'export PATH="$HOME/.jenv/bin:$PATH"' >> ~/.zshrc
$ echo 'eval "$(jenv init -)"' >> ~/.zshrc
$ source ~/.zshrc
# 添加JDK到jenv
$ jenv add /Library/Java/JavaVirtualMachines/adoptopenjdk-8.jdk/Contents/Home
$ jenv add /Library/Java/JavaVirtualMachines/adoptopenjdk-11.jdk/Contents/Home
$ jenv add /Library/Java/JavaVirtualMachines/adoptopenjdk-17.jdk/Contents/Home
# 查看已安装的JDK
$ jenv versions
* system (set by /Users/yourname/.jenv/version)
1.8
11.0
17.0
# 切换JDK版本
$ jenv global 11.0 # 全局切换
$ jenv local 1.8 # 当前目录切换
$ jenv shell 17.0 # 当前shell切换
# 验证
$ java -version
openjdk version "11.0.19" 2023-04-18
OpenJDK Runtime Environment Temurin-11.0.19+7 (build 11.0.19+7)
OpenJDK 64-Bit Server VM Temurin-11.0.19+7 (build 11.0.19+7, mixed mode)
# 踩坑:IDEA找不到JDK
# 解决:在IDEA中配置JDK路径
# IDEA → Preferences → Build, Execution, Deployment → SDKs
# 点击+,选择JDK安装路径:/Library/Java/JavaVirtualMachines/adoptopenjdk-11.jdk/Contents/Home
效率提升 :
| 场景 |
传统方式 |
jenv方式 |
节省时间 |
| 切换JDK版本 |
修改JAVA_HOME,重启终端 |
jenv local 1.8 |
90% |
| 多项目不同JDK |
手动切换 |
自动识别 |
95% |
2.2 Maven:加速依赖下载
# 安装Maven
$ brew install maven
# 验证
$ mvn -version
Apache Maven 3.9.4
# 配置阿里云镜像(关键!)
$ vim ~/.m2/settings.xml
<settings>
<mirrors>
<mirror>
<id>aliyunmaven</id>
<mirrorOf>*</mirrorOf>
<name>阿里云公共仓库</name>
<url>https://maven.aliyun.com/repository/public</url>
</mirror>
</mirrors>
<profiles>
<profile>
<id>jdk-11</id>
<activation>
<activeByDefault>true</activeByDefault>
<jdk>11</jdk>
</activation>
<properties>
<maven.compiler.source>11</maven.compiler.source>
<maven.compiler.target>11</maven.compiler.target>
<maven.compiler.compilerVersion>11</maven.compiler.compilerVersion>
</properties>
</profile>
</profiles>
</settings>
# 踩坑:mvn命令找不到
# 解决:brew install maven后,可能需要重启iTerm2
# Maven常用命令别名(~/.zshrc)
alias mci='mvn clean install'
alias mcp='mvn clean package'
alias mct='mvn clean test'
alias mcs='mvn clean compile -DskipTests'
alias mdep='mvn dependency:tree'
alias midea='mvn idea:idea'
# 生效
$ source ~/.zshrc
加速效果 :
| 操作 |
默认镜像 |
阿里云镜像 |
加速效果 |
| 首次构建 |
15分钟 |
2分钟 |
86% |
| 依赖下载 |
10分钟 |
1分钟 |
90% |
2.3 Git:配置与别名
# 安装Git
$ brew install git
# 配置用户信息
$ git config --global user.name "Your Name"
$ git config --global user.email "your.email@example.com"
# 配置别名(~/.gitconfig)
$ git config --global alias.co checkout
$ git config --global alias.br branch
$ git config --global alias.ci commit
$ git config --global alias.st status
$ git config --global alias.unstage 'reset HEAD --'
$ git config --global alias.last 'log -1 HEAD'
$ git config --global alias.visual '!gitk'
$ git config --global alias.lg "log --color --graph --pretty=format:'%Cred%h%Creset -%C(yellow)%d%Creset %s %Cgreen(%cr) %C(bold blue)<%an>%Creset' --abbrev-commit"
# 配置SSH(关键!)
$ ssh-keygen -t rsa -b 4096 -C "your.email@example.com"
# 一路回车
# 查看公钥
$ cat ~/.ssh/id_rsa.pub
ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAACAQC... your.email@example.com
# 添加到GitHub/GitLab
# Settings → SSH and GPG keys → New SSH key
# 测试SSH连接
$ ssh -T git@github.com
Hi yourname! You've successfully authenticated, but GitHub does not provide shell access.
# 配置GPG签名(可选,但推荐)
$ brew install gnupg
$ gpg --full-generate-key
# 选择RSA and RSA,4096位,1年有效期
$ gpg --list-secret-keys --keyid-format LONG
$ git config --global user.signingkey <你的GPG密钥ID>
$ git config --global commit.gpgsign true
# 踩坑:Git提示Permission denied (publickey)
# 解决:1. 确保SSH key已添加 2. 确保ssh-agent运行
$ eval "$(ssh-agent -s)"
$ ssh-add ~/.ssh/id_rsa
Git效率对比 :
| 操作 |
无别名 |
有别名 |
节省时间 |
| 查看日志 |
git log --oneline --graph --decorate --all |
git lg |
80% |
| 切换分支 |
git checkout develop |
git co develop |
70% |
| 提交代码 |
git commit -m "message" |
git ci -m "message" |
60% |
2.4 Docker:容器化开发
# 安装Docker Desktop
$ brew install --cask docker
# 启动Docker
$ open /Applications/Docker.app
# 验证
$ docker --version
Docker version 24.0.6, build ed223bc
$ docker-compose --version
Docker Compose version v2.21.0
# 配置镜像加速(关键!)
$ vim ~/.docker/daemon.json
{
"registry-mirrors": [
"https://mirror.gcr.io",
"https://docker.mirrors.ustc.edu.cn",
"https://registry.docker-cn.com"
],
"insecure-registries": [],
"debug": false,
"experimental": false,
"features": {
"buildkit": true
}
}
# 重启Docker
$ killall Docker && open /Applications/Docker.app
# 拉取镜像测试
$ docker pull mysql:8.0
# 加速前:10分钟
# 加速后:1分钟
# 常用命令别名(~/.zshrc)
alias dps='docker ps'
alias dpa='docker ps -a'
alias dimg='docker images'
alias drm='docker rm'
alias drmi='docker rmi'
alias dlog='docker logs'
alias dexec='docker exec -it'
alias dcup='docker-compose up -d'
alias dcdown='docker-compose down'
alias dcps='docker-compose ps'
alias dclogs='docker-compose logs -f'
# 生效
$ source ~/.zshrc
Docker开发效率提升 :
| 场景 |
传统方式 |
Docker方式 |
节省时间 |
| 安装MySQL |
30分钟 |
1分钟 |
97% |
| 安装Redis |
15分钟 |
30秒 |
97% |
| 环境一致性 |
手动配置 |
一键启动 |
95% |
2.5. 终端效率工具
# 文件树(替代ls)
brew install exa
# 替代cat(代码高亮)
brew install bat
# 替代grep(更快)
brew install ripgrep
# 替代find(智能搜索)
brew install fd
配置别名 (加到~/.zshrc):
# 常用别名
alias ll='exa -la --git --icons'
alias cat='bat'
alias grep='rg'
alias find='fd'
对比效果 :
# 传统ls
$ ls -la
drwxr-xr-x 12 user staff 384B May 20 10:30 .
drwxr-xr-x 5 user staff 160B May 19 14:20 ..
-rw-r--r-- 1 user staff 1.2K May 20 09:15 .gitignore
# exa(带图标,更清晰)
$ ll
📁 .git/ 📄 .gitignore 📄 pom.xml 📁 src/
三、日常开发:我的工作流
1. 终端分屏:tmux
brew install tmux
# 配置 ~/.tmux.conf
# 设置前缀为Ctrl+a(默认Ctrl+b太远)
set -g prefix C-a
unbind C-b
bind C-a send-prefix
# 分屏快捷键
bind | split-window -h # 垂直分屏
bind - split-window -v # 水平分屏
# 鼠标支持
set -g mouse on
使用场景 :
- 左边:跑服务
./mvnw spring-boot:run
- 右边:看日志
tail -f app.log
- 下面:Git操作
2. 快速跳转:z
brew install z
# 自动记录目录访问频率
# 用 z 目录名 快速跳转
$ z proj # 跳转到最近访问的project目录
$ z doc # 跳转到文档目录
3. 剪贴板增强
# 终端复制粘贴增强
brew install reattach-to-user-namespace
# 配置到 ~/.tmux.conf
set -g default-command "reattach-to-user-namespace -l zsh"
效果:在tmux里也能用Command+C/V复制粘贴了。
四、性能优化:让Mac飞起来
1. SSD优化
# 关闭休眠(16G内存以上建议)
sudo pmset -a hibernatemode 0
sudo rm /var/vm/sleepimage
# 关闭本地Time Machine快照
sudo tmutil disablelocal
# 查看磁盘空间
sudo ncdu / # 比df -h更直观
2. 内存优化
# 查看内存占用
$ memory_pressure
# 输出:
# 当前内存压力:Normal
# 物理内存:16GB
# 使用中:12GB
# 缓存文件:2GB
# 可用:2GB
清理内存:
# 清理DNS缓存
sudo dscacheutil -flushcache
sudo killall -HUP mDNSResponder
# 清理系统日志
sudo rm -rf /private/var/log/asl/*.asl
3. 电池优化(MacBook)
# 查看电池健康
$ system_profiler SPPowerDataType | grep -A 3 "Condition"
# 输出:Condition: Normal
# 查看耗电应用
$ sudo powermetrics --samplers smc | grep -i "cpu"
五、故障排查:常见问题解决
1. 端口被占用
# 查看8080端口被谁占用
lsof -ti:8080 | xargs kill -9
# 或者更优雅
kill -9 $(lsof -ti:8080)
2. 文件句柄泄漏
# 查看已删除但未释放的文件
lsof | grep deleted
# 输出示例:
# java 1234 user 123w REG 1,1 1GB 0 /tmp/app.log (deleted)
# 解决方法:重启对应进程
3. 磁盘空间告急
# 找出大文件
sudo find / -type f -size +100M 2>/dev/null | head -20
# 或者用可视化工具
brew install --cask grandperspective
4. 网络问题
# DNS解析慢
cat /etc/resolv.conf
# 如果只有8.8.8.8,改成114.114.114.114
# 查看网络连接
netstat -an | grep ESTABLISHED | wc -l
# 如果太多,可能有连接泄漏
以上就是我个人在Mac上为Java后端开发精心打磨的一套环境配置与工作流。从基础工具安装到日常效率提升,再到故障排查,几乎覆盖了开发中的常见场景。特别是利用Docker等技术栈进行容器化开发,能极大保证环境一致性并提升效率。
如果你也在用Mac做开发,不妨试试这些配置,相信能让你的开发体验更上一层楼。更多技术实践和深度讨论,欢迎到云栈社区与广大开发者一起交流。