Mac 开发环境盘点与换机清单:VS Code、zsh、Homebrew、Mole 与 Kali
本文目录
本文于 2026-10-17 首次只读盘点,并于 2026-10-20 复核关键工具版本与虚拟机状态。它记录“这台机器上实际观察到什么”,不把安装状态包装成推荐,也不公开账号、密钥、工作管理信息、远程桌面配置或网络地址。版本和运行状态会变化,换机时应重新核对。
2026-10-20 复核:Visual Studio Code 应用及随附 CLI 均为 1.141.0,扩展列表仍有 89 个条目;code 命令依旧不在 shell 的 PATH,但应用内 CLI 可直接使用。zsh 为 5.9,当前 Node/npm 为 18.20.8/10.8.2,系统 python3 为 3.9.6;Parallels Desktop/prlctl 为 26.3.0。只读虚拟机清单显示 Kali VM 为 Suspended、Windows 11 VM 为 Running;这是瞬时状态,并非对来宾系统内容或补丁的检查。没有启动、停止或修改虚拟机,也没有导出扩展 ID 或读取 shell 私密配置。
2026-10-21 复核:macOS 为 15.7.3(arm64),VS Code 为 1.141.0,应用内 CLI 仍列出 89 个扩展条目;当前 Node/npm 为 18.20.8/10.8.2,zsh 为 5.9,Parallels Desktop/prlctl 为 26.3.0,Mole 图形应用为 1.9.0。只读 VM 清单显示 Kali Linux 2025.2 ARM64 为 Suspended、Windows 11 为 Stopped;VM 名称不等于来宾版本核验,未启动来宾、未读取磁盘内容或修改虚拟机。Homebrew 5.1.14 的已请求安装项与完整清单应在换机时通过 Brewfile 重新导出,不把本机依赖树误当作必装列表。
2026-10-21 后续运行时复核:当前终端仍使用 NVM Node 18.20.8/npm 10.8.2;NVM 已安装 Node 10.24.1、12.22.12、14.21.3、16.20.2、18.20.8、20.19.6、22.21.1、22.22.2、24.12.0,默认别名指向 18.20.8,node/stable 动态别名指向 24.12.0。Homebrew 的独立 Node 为 23.11.0。java -version 与 mvn --version 现在均成功,Maven 3.9.16 当前使用 Homebrew OpenJDK 17.0.20;OpenJDK 26.0.2 也已安装,但未验证它作为 Maven 运行时。该结果只说明本次 shell 的可用状态,不代表每个终端配置或项目都选择了同一运行时。
2026-10-22 只读复核:macOS 15.7.3(arm64)、VS Code 1.141.0(扩展 CLI 89 条)、Node/npm 18.20.8/10.8.2、zsh 5.9、Homebrew 5.1.14、Parallels Desktop/prlctl 26.3.0、Mole 图形应用 1.9.0。mo CLI 未通过 Homebrew 安装,且命令不在 PATH。只读取 Parallels 名称、发行版标签与状态:Kali Linux 2025.2 ARM64 为 suspended,Windows 11 为 stopped;没有启动应用或虚拟机,没有读取 shell 配置、扩展 ID、来宾磁盘或凭据。版本和 VM 状态是本次观察,不代表持续状态。
盘点范围
通过本机应用目录、Homebrew、VS Code 命令行、zsh、NVM 和 Parallels 管理工具读取安装状态;没有启动或修改虚拟机,也没有读取应用凭据。企业管理软件、工作账号、密钥、远控和网络配置器不纳入公开清单。
开发软件
图形应用
- Visual Studio Code 1.141.0:主力编辑器;当前扩展目录有 89 个条目。应用自带的
code命令当前不在终端 PATH 中。 - IntelliJ IDEA、Xcode:分别用于 JVM 与 Apple 平台开发。Homebrew 留有 Android Studio 2024.3.2.14 的 cask 记录,但
/Applications下没有 Android Studio 应用包;这属于安装状态不一致,暂不把 Android Studio 算作可用软件。 - Postman:接口调试。
- Google Chrome、Safari:浏览器开发与兼容性检查。
- iTerm:独立终端。另有 WeChat、Tencent Meeting、NetEase Music、Spotify、NeatReader、MacZip、Snipaste 和 uTools;这些应用的版本未逐一核对,换机时按实际用途重新选择。
- WeChat Developer Tools:小程序调试。
- ChatGPT:桌面 AI 助手。
Homebrew
本机 Homebrew 根安装在 Apple Silicon 常用路径 /opt/homebrew。盘点时直接安装的 cask:
| 软件 | 观察到的版本 | 用途 |
|---|---|---|
| Android Studio | 2024.3.2.14 | 仅有 Homebrew cask 记录;应用包未找到,Android 开发环境尚未确认可用 |
| Meslo LG 字体 | 1.2.1 | 终端 Powerline 字体 |
| mitmproxy | 12.2.3 | 受控测试环境的 HTTP(S) 调试 |
观察到的 Homebrew formula 顶层包:
| 包 | 观察到的版本 | 说明 |
|---|---|---|
| Maven | 3.9.16 | JVM 构建工具;本次 mvn --version 使用 Homebrew OpenJDK 17.0.20 |
| ffmpeg | 7.1.1_2 | 音视频格式识别与转换工具 |
| MySQL | 9.3.0 | 本机数据库软件;安装不等于服务正在运行 |
| NVM | 0.40.3 | Node.js 多版本管理 |
| OpenJDK | 26.0.2 | JDK |
| OpenJDK@17 | 17.0.20 | 兼容旧项目的 JDK |
| pyenv | 2.5.7 | Python 版本管理器;当前没有 pyenv 管理的 Python 版本 |
| scrcpy | 3.2 | Android 设备屏幕调试 |
| tesseract | 5.5.0_1 | OCR 引擎 |
| sshpass | 1.10 | 已安装的密码式 SSH 辅助程序;新脚本优先使用 SSH key,不要把密码放进命令行、历史记录或仓库 |
| tesseract-lang | 4.1.0 | OCR 语言数据 |
| Whistle | 2.9.98 | 本机代理调试工具 |
| jpeg、librsvg | 9f、2.60.0 | 图像处理依赖/工具 |
运行时现状与需要修复的地方
- 当前 shell 使用 NVM 的 Node 18.20.8、npm 10.8.2;当前安装快照和动态别名见 2026-10-21 后续复核。Node 的
stable/node别名会变化,项目应以.nvmrc和锁文件为准。 - Homebrew 另外安装了 Node 23.11.0。两个 Node 安装来源并存;当前实际使用 NVM 路径。项目目录优先保留 .nvmrc,进入项目后按项目版本执行 nvm use,不要靠全局 PATH 猜版本。
- python3 当前来自 macOS 系统,版本 3.9.6;pyenv 已装,但 pyenv versions 只有 system。需要项目 Python 时,先确定项目要求,再用 pyenv 安装并在项目目录固定版本。
- Homebrew 中有 OpenJDK 26 和 OpenJDK 17。此前快照曾观察到系统 Java wrapper 找不到运行时;2026-10-21 后续检查中
java -version已成功,Maven 也确认使用 OpenJDK 17.0.20。环境可能因 shell 或安装状态而不同,遇到 Maven/Java 故障时先分别运行java -version、mvn --version和/usr/libexec/java_home -V,不要盲目改符号链接或JAVA_HOME。 - VS Code 版本为 1.141.0,Parallels Desktop 为 26.3.0;zsh 版本为 5.9(arm64 宿主)。Parallels 中 Kali VM 的名称包含
2025.2 ARM64,但本次没有启动来宾,因此来宾实际系统版本和架构尚未验证。 - brew list 中同时出现依赖库是正常的;上表优先列出工具用途明确的包,不把整棵依赖树当成换机必装清单。
VS Code 外观与配置观察
当前默认配置观察到:
- 颜色主题:SynthWave '84;图标主题:Material Icon Theme。
- 集成终端:zsh,终端字体:Meslo LG S DZ for Powerline。
- editor.formatOnSave 为 false;格式化器按语言分别指定,换机后需要检查每种语言的 formatter,而不是只装一个 Prettier 就认为恢复完成。
- 已安装 vscode-custom-css。这类工作台外观定制不是普通编辑器主题;迁移前先确认自定义样式来源和兼容性,不要无审查地复制绝对路径或启用未知 CSS。
- VS Code 的 code 命令尚未进入 PATH。在 VS Code 命令面板执行 Shell Command: Install 'code' command in PATH,再重开终端。扩展 ID/版本清单含个人工具偏好,应只存入自己的私有备份,不要把完整清单原样发布。
导出当前默认 Profile 的扩展 ID 和安装版本:
mkdir -p "$HOME/Documents/dev-setup"
VSCODE_CLI="$(command -v code 2>/dev/null || true)"
if [ -z "$VSCODE_CLI" ]; then
VSCODE_CLI="/Applications/Visual Studio Code.app/Contents/Resources/app/bin/code"
fi
if [ -x "$VSCODE_CLI" ]; then
"$VSCODE_CLI" --list-extensions --show-versions > "$HOME/Documents/dev-setup/vscode-extensions.txt"
else
printf '找不到 VS Code CLI;先安装 Shell Command: Install code command in PATH,或手动设置 VSCODE_CLI。\n' >&2
fi
若 VS Code 安装在自定义位置或使用 Insiders 版本,将 VSCODE_CLI 改为对应应用内的 CLI 路径。
在新 Mac 安装 VS Code、把 code 命令加入 PATH 后,可按快照尝试恢复相同版本:
while IFS=@ read -r extension version; do
[ -n "$extension" ] || continue
code --install-extension "${extension}@${version}" || printf '安装失败,请单独核对:%s@%s\n' "$extension" "$version" >&2
done < "$HOME/Documents/dev-setup/vscode-extensions.txt"
版本在 Marketplace 下架、与新平台不兼容或需要发布者信任确认时,单项安装可能失败;先记录失败项,再决定升级到当前版本或跳过,不要为追求数量而关闭扩展安全提示。若有意改用最新版,将命令改为 code --install-extension "$extension"。VS Code CLI 支持 --list-extensions --show-versions 与 publisher.extension@version 安装语法,详见官方命令行文档。
扩展清单的隐私与可复现性
本机盘点曾记录 89 个扩展条目;这个数字可能包含平台目录或重复项,不等于应安装的独立扩展数量,也会随时间变化。完整 ID 和版本清单只通过上方命令在本机导出到私有备份,不放入公开文章。换机时按需恢复,并逐项确认发布者、兼容性和信任提示。
2026-10-21 通过 VS Code 应用内 CLI 再次盘点,仍有 89 个扩展条目。为避免公开企业或个人专用扩展,只列出本次确认的通用扩展子集;版本是当天快照,不代表推荐所有读者照单安装。
| 用途 | 扩展 ID | 观察版本 |
|---|---|---|
| 代码质量 | dbaeumer.vscode-eslint | 3.0.34 |
| 代码格式化 | esbenp.prettier-vscode | 12.4.0 |
| 路径补全 | christian-kohler.path-intellisense | 2.10.0 |
| 拼写检查 | streetsidesoftware.code-spell-checker | 4.10.0 |
| Git 历史与变更浏览 | eamodio.gitlens | 19.4.0 |
| HTML 标签辅助 | formulahendry.auto-close-tag | 0.5.15 |
| HTML 标签辅助 | formulahendry.auto-complete-tag | 0.1.0 |
| HTML 标签辅助 | formulahendry.auto-rename-tag | 0.1.10 |
| 运行单个代码文件 | formulahendry.code-runner | 0.12.2 |
| Python 语言支持 | ms-python.python | 2026.10.0 |
| Python 类型分析 | ms-python.vscode-pylance | 2026.4.1 |
| Python 环境管理 | ms-python.vscode-python-envs | 1.40.0 |
| Python 调试器 | ms-python.debugpy | 2026.6.0 |
| Python 格式化 | ms-python.black-formatter | 2026.6.0 |
| Notebook | ms-toolsai.jupyter | 2025.9.1 |
| Notebook 快捷键 | ms-toolsai.jupyter-keymap | 1.1.2 |
| Notebook 输出渲染 | ms-toolsai.jupyter-renderers | 1.3.0 |
| Notebook 单元格标签 | ms-toolsai.vscode-jupyter-cell-tags | 0.1.9 |
| Notebook 幻灯片 | ms-toolsai.vscode-jupyter-slideshow | 0.1.6 |
| C/C++ 语言支持与调试 | ms-vscode.cpptools | 1.34.4 |
| 测试适配 | ms-vscode.test-adapter-converter | 0.2.1 |
| JavaScript/TypeScript 预览版工具链 | ms-vscode.vscode-typescript-next | 6.0.20260416 |
| 文件图标 | pkief.material-icon-theme | 5.39.0 |
Code Runner 会执行当前文件,不提供安全沙箱;只运行自己信任的代码。JavaScript/TypeScript Nightly 是预览扩展,适合隔离验证新语言服务行为,不应在排查稳定项目问题时忘记它可能覆盖编辑器内置版本。其余未列出的扩展仍保存在本机快照中,没有把完整清单或企业专用工具发布到博客。
面向读者的通用扩展建议见VS Code 与 zsh 配置沉淀。该文章是经过筛选的公开参考,不是这台 Mac 的完整还原快照。
zsh 终端
当前观察到 Oh My Zsh、agnoster 主题,以及 git、zsh-autosuggestions、zsh-syntax-highlighting 插件;终端使用 Meslo LG S DZ Powerline 字体。zshrc 中既在 plugins=(...) 列表声明了两种语法插件,又在后面手动 source 它们。Oh My Zsh 会按插件列表加载插件,而配置还存在显式加载语句;新配置时只选一种加载方式,避免重复初始化和增加启动时间。.zprofile 与 .zshrc 也都包含 NVM 初始化语句;交互式登录 shell 可能连续执行两次,换机整理时应选定一个初始化入口,并检查 VS Code 集成终端的启动方式。本文不复制个人 zshrc,因为其中的路径、别名或未来加入的环境变量可能带有私密信息。
最小化的安全骨架示例:
export ZSH="$HOME/.oh-my-zsh"
ZSH_THEME="agnoster"
plugins=(git zsh-autosuggestions zsh-syntax-highlighting)
source "$ZSH/oh-my-zsh.sh"
还原前先备份旧配置,再检查 /.zprofile、/.zshrc 和 ~/.zshenv 的加载顺序。不要把真实 token、数据库密码、SSH 私钥或公司代理写进同步到 Git 的配置文件。想保存个人配置时,单独维护删掉私密值的模板。
Mole 清理工具
本机安装了 Mole 原生 Mac 应用,观察版本为 1.9.0;mo CLI 当前未安装,并非只因 PATH 未配置。Mole 的开源项目同时提供 CLI 和独立原生应用,brew install mole 只安装 CLI,不会安装或替代当前 GUI。需要命令行功能时先用 brew info mole 核对来源和安装计划,再决定是否单独安装;不要因命令不存在就重复安装桌面应用。
第一次清理先运行 mo clean --dry-run --debug 或 mo purge --dry-run,逐条确认路径、文件归属和备份是否可恢复。注意当前 CLI 的 mo clean 默认会清空用户废纸篓;需要保留时先在 mo clean --whitelist 中保护 Trash。卸载、清理和项目产物删除的恢复边界不同,不要把永久删除命令直接放进自动化脚本;不要仅为了释放空间就清理系统目录或不认识的 LaunchAgent,也不要用 sudo 扩大清理范围。可参考 Mac 前端工程师工具链 的 Mole 小节,并以 Mole 官方仓库当前说明核对具体命令。
Parallels Desktop 与 Kali Linux
本机 Parallels 管理器观察到两个虚拟机:
| Parallels 中显示的 VM 名称 | DIST 标签 | 盘点时状态 |
|---|---|---|
| Kali Linux 2025.2 ARM64 | kali | Suspended |
| Windows 11 | win-11 | Running |
表格状态是 2026-10-20 只读盘点的瞬时结果,不代表现在仍处于相同状态。VirtualBox 应用也已安装,但本次没有读取它的虚拟机清单或配置。表格中的 Kali 版本和架构文字来自 VM 名称,不是来宾系统内的版本检测结果;Windows 名称也不代表已核验来宾补丁状态。
盘点只读取了列表中的名称、发行版标签和运行状态,没有启动、停止虚拟机或执行来宾命令,也没有读取 UUID、磁盘路径、登录凭据或资源配额。VM 磁盘不是博客源码的组成部分;换机前应在 Parallels 中正常关机并通过加密备份迁移整个虚拟机包,先确认备份可恢复,再升级或删除旧副本。重要实验前建立快照,先在副本里试升级;快照不替代异机备份。
新建 Kali VM 时使用与宿主 CPU 匹配的官方 ARM64 镜像,按 Parallels 安装向导配置 CPU、内存和磁盘;资源配额需结合宿主容量设置,本文没有测量或建议具体数值。Kali 官方提供 Parallels 来宾安装说明,并建议用虚拟机快照回退实验状态。网络模式按阶段切换:下载系统更新时使用 NAT/Shared;做隔离靶场时使用 Host-Only/仅主机网络,并让测试靶机也接入同一隔离网段。桥接会让来宾直接出现在当前物理网络中,不要对家庭、公司或公网设备扫描;除非有明确授权和隔离方案,不要配置端口转发。只对自己拥有或明确获准测试的靶场操作。
Kali / Linux 常用命令索引
先看清当前机器和磁盘,再进行写操作:
pwd
whoami
uname -a
cat /etc/os-release
df -h
lsblk
free -h
文件与文本:
ls -lah
cd ~/path
mkdir -p lab
cp -av source backup/
mv old-name new-name
less file.txt
grep -Rni "pattern" ./project
find ./project -type f -name "*.log"
chmod 640 private-file
进程、服务和网络排查:
ps aux
top
systemctl status service-name
journalctl -u service-name --since "1 hour ago"
ip addr
ip route
ss -tulpn
curl -I https://example.com
软件包管理:
sudo apt update
apt list --upgradable
sudo apt install package-name
dpkg -l | less
apt-cache policy package-name
更多日常操作:
# 搜索、查看和检查文本
rg -n "pattern" ./project
grep -Rni "pattern" ./project
head -n 40 file.txt
tail -n 100 file.txt
tail -f /var/log/example.log
sort names.txt | uniq -c
# 压缩与备份;先列出归档内容再解压
tar -czf backup.tar.gz project/
tar -tzf backup.tar.gz
tar -xzf backup.tar.gz -C ./restore/
# 权限与磁盘占用
stat private-file
du -sh ./project
df -h
lsblk -f
# 进程、服务与日志
ps -ef | less
pgrep -af process-name
systemctl status service-name
journalctl -u service-name --since "1 hour ago" --no-pager
# 网络状态与连通性;ss 不带 sudo 时只显示当前用户可见信息
ip -br addr
ip route
ss -lntup
curl -I https://example.com
# SSH 只连接自己管理或获准访问的主机
ssh user@host.example
scp ./file.txt user@host.example:~/
管道符 | 把前一个命令的输出交给下一个命令;> 会覆盖目标文件,追加应使用 >>。查命令优先用 man command、command --help、apropos keyword;Kali 的工具索引会说明用途并链接上游项目。需要提权时只对单条命令使用 sudo,不要长期用 root shell 做日常操作;Kali 默认以普通用户工作。
Kali 日常维护流程
Kali 是滚动发行版。先在 Parallels 建立快照,再检查 /etc/apt/sources.list.d/kali.sources 使用官方 Kali 软件源;不要把其他发行版的软件源混进 Kali,也不要随意添加第三方仓库或导入未知签名密钥。日常更新按这个顺序手动执行:
sudo apt update
apt list --upgradable
sudo apt full-upgrade
full-upgrade 可能为了满足依赖而移除软件包,确认提示中的安装、升级和移除清单后再继续;不要机械追加 -y。不要在重要实验进行中更新,先验证工具和虚拟机快照回退路径。只装当前任务需要的工具,并在安装前检查来源与候选版本:
apt-cache policy package-name
apt show package-name
sudo apt install package-name
dpkg -L package-name
apt update 只刷新软件包索引,不会升级已安装程序。遇到签名、依赖或仓库错误时先按 Kali 官方 APT 排障文档处理;不要用关闭签名校验、切换到不明镜像或覆盖系统仓库文件的方式“修好”安装。
Kali 隔离实验工作流
- 在 Parallels 对 Kali 和靶机分别创建快照,记录当前虚拟网络模式。
- Kali 与自建靶机都接入 Host-Only 网络;用
ip -br addr和ip route确认地址及路由,确认目标是自己的实验虚拟机。 - 从工具菜单或官方 Kali Tools 目录了解工具;先读
man、--help和工具上游文档,理解命令将读取或发送什么数据。 - 若课程要求做服务发现,仅对实验靶机的明确 IP 执行经课程允许的低强度检查;不要把占位符替换成不属于自己的公网地址,也不要扩展到网段扫描、漏洞利用或凭据测试。
- 抓包、代理和日志练习只使用实验流量与虚构账号;结束后保存必要笔记,清理实验数据并恢复快照。
Host-Only 不提供互联网访问。需要下载更新时切换到 NAT/Shared,完成后再切回隔离网络;不要为了让靶场“更方便”改成桥接或开放入站端口。涉及单位设备、他人网络、真实账号或公网目标时,必须先获得明确书面授权;本篇不提供绕过登录、隐匿扫描或利用真实目标的步骤。
rm -rf、chmod -R 777、把未知脚本 curl | bash、关闭 APT 签名验证或对外网扫描,都不是日常 Linux 指令,避免照抄。执行删除、权限递归修改、磁盘分区和系统升级前,先复核目标路径、影响清单和可恢复备份。
换机恢复顺序
- 安装 Homebrew,并先审查待恢复包清单。
- 在旧机通过
brew bundle dump --file "$HOME/Brewfile" --describe保存 Homebrew 快照;新机查看清单后用brew bundle --file "$HOME/Brewfile"安装。不要先运行brew bundle cleanup --force,它会卸载清单外的包。 - 从 VS Code 命令面板安装 code CLI,再导出:code --list-extensions --show-versions > ~/vscode-extensions.txt。恢复时逐条检查扩展是否仍可信、必要,再执行 code --install-extension "publisher.extension@version";若指定版本已不可用,先用兼容版本而非盲目降级。
- 安装 NVM 后,按每个项目的 .nvmrc 安装对应 Node;用项目锁文件确定包管理器与 Node 版本。
- Python、Java、MySQL、Android SDK 和 Xcode 命令行工具按具体项目恢复;不要把这台机器上的 system Python 直接当成新机标准。
- 单独迁移 Parallels VM 加密备份;先启动副本验证,再恢复个人文档和设置。
- 对比 zsh --version、node -v、npm -v、python3 --version、java -version、brew list、code --list-extensions 和 prlctl list -a,再开始开发。
Homebrew 官方提供 brew bundle dump 保存支持的已安装包、用 brew bundle 从 Brewfile 恢复;VS Code 官方 CLI 支持导出/安装扩展;NVM 官方说明支持 lts/* 等动态别名。快照适合复现“某次机器状态”,项目锁文件和 .nvmrc 才是项目运行时版本的来源。
参考资料
- Homebrew Bundle 与 Brewfile
- VS Code 命令行与扩展管理
- NVM 官方说明
- Oh My Zsh
- Mole CLI 官方仓库与 GUI/CLI 区分
- Kali Linux:在 Parallels 中安装来宾虚拟机
- Kali Linux:更新系统
- Kali Linux:sudo 与默认非 root 用户
- Kali Linux:官方工具索引
- Kali Linux:常见 APT 错误
- Kali Linux:软件源配置原则
- Parallels 网络设置:Host-Only 与共享网络
这是一份按当前个人设备观察制作的快照,不是完整的 macOS 软件目录,也不是安装某个工具的背书。文中没有检查每个应用的授权、登录状态或版本更新策略;安装前请以软件官方来源和项目实际需求为准。
Live Notes
留言提交后会先进入审核,审核通过后对其他读者公开。