可通过networksetup命令管理网络位置(如-switchlocation切换、“-setdnsservers”配置dns),用diskutil或hdiutil实现磁盘/映像挂载自动化;两者均支持脚本集成,无需图形界面,适用于多场景快速切换与配置。
你可以用 networksetup 管理网络位置,用 diskutil 或 hdiutil 实现磁盘挂载自动化——两者都无需图形界面,适合脚本集成和多场景切换。
快速切换与配置网络位置
macOS 的网络位置(如“家庭”“办公室”)保存了各服务的启用状态、IP、DNS 和代理设置。终端命令能绕过系统设置界面直接操作:
- 查看当前使用的位置:
networksetup -getcurrentlocation - 列出所有已建位置:
networksetup -listlocations - 切换到指定位置(例如“开发环境”):
networksetup -switchlocation "开发环境" - 切换后建议手动重载网络服务:在终端运行
sudo ifconfig en0 down && sudo ifconfig en0 up(将en0替换为你实际的网卡名,可用networksetup -listallhardwareports查看)
为特定位置预设 DNS 并验证
DNS 设置绑定在“位置 + 网络服务”组合上,不是全局生效。需先切换位置,再针对 Wi-Fi 或以太网设置:
部署和使用军舰的 macOS Automator 自动化服务集合。包含 5 个实用工作流:PDF转JPG、PNG重命名并转JPG、图像拼接、解压RAR、顺序命名图像文件。一键安装所有服务到 ~/Library/Services/ 目录。使用场景:(1) "安装我的自动化服务",(2) "部署所有 Automato...
- 切换至目标位置:
networksetup -switchlocation "家庭" - 查看该位置下可用服务:
networksetup -listallnetworkservices - 为“Wi-Fi”设置两个 DNS:
networksetup -setdnsservers "Wi-Fi" 223.5.5.5 119.29.29.29 - 恢复自动获取 DNS:
networksetup -setdnsservers "Wi-Fi" automatic - 确认是否写入成功:
networksetup -getdnsservers "Wi-Fi" - 刷新系统 DNS 缓存确保立即生效:
sudo dscacheutil -flushcache; sudo killall -HUP mDNSResponder
自动化挂载本地磁盘或磁盘映像
挂载行为分两类:物理/外置磁盘用 diskutil,磁盘映像(.dmg/.iso)必须用 hdiutil:
- 挂载未识别的宗卷(如外接硬盘分区
disk2s1):diskutil mount /dev/disk2s1 - 卸载整个物理磁盘(含所有分区):
diskutil unmountDisk /dev/disk2 - 挂载 .dmg 文件到默认路径:
hdiutil attach /path/to/app.dmg - 静默挂载(不弹 Finder 窗口):
hdiutil attach -quiet /path/to/data.dmg - 挂载到自定义空目录(需提前创建):
mkdir -p ~/mnt && hdiutil attach /image.iso -mountpoint ~/mnt - 卸载统一用
hdiutil detach,避免残留:hdiutil detach /Volumes/MyApp
组合脚本实现一键切换+挂载
把网络和磁盘操作写进 shell 脚本,就能一键完成环境切换:
- 例如新建
~/bin/switch-home,内容为:
networksetup -switchlocation "家庭"
networksetup -setdnsservers "Wi-Fi" 223.5.5.5 114.114.114.114
sudo dscacheutil -flushcache; sudo killall -HUP mDNSResponder
hdiutil attach ~/backup.dmg -quiet
open -a "Finder" /Volumes/Backup
- 赋予执行权限:
chmod +x ~/bin/switch-home - 之后只需运行
switch-home,就自动切位置、设 DNS、挂映像、打开 Finder










