资讯详情

Mac CLI 完全指南:用一套命令行工具自动化管理你的 macOS 开发环境

📅 2026/10/14 20:55:12 | 华诺云谱 👁 阅读
Mac CLI 完全指南:用一套命令行工具自动化管理你的 macOS 开发环境
开发工具【免费下载链接】Mac-CLI macOS command line tool for developers – The ultimate tool to manage your Mac. It provides a huge set of command line commands that automatize the usage of your Mac.项目地址https://gitcode.com/gh_mirrors/ma/Mac-CLI点击查看免费下载Mac CLI 是一个面向开发者的 macOS 命令行工具集它将系统更新、蓝牙/Wi-Fi 控制、DNS 管理、SSH 文件传输、Git 仓库操作、性能监控等高频运维场景封装为mac一条命令下的几十个简洁子命令。阅读完本文你将掌握 Mac CLI 的安装配置流程、全部命令的分类与用法、每个命令背后的真实系统调用以及它的插件扩展架构从而在日常开发中直接用一条命令替代繁琐的原生命令序列。Mac CLI 是什么Mac CLImac command line tools由主脚本 mac版本 2.0和一组可插拔的分类插件构成。它设计的核心理念有两个教学友好每执行一个功能终端都会先显示这条功能背后的真实命令通过echocommand开关控制让使用者在完成操作的同时记住底层命令方便日后脱离工具直接用原生命令。易于扩展命令按类别拆分为独立的 shell 插件文件新增功能只需向插件目录添加一个case分支即可无需改动主脚本。从主入口脚本 mac 可以看出所有命令都集中登记在一个COMMANDS数组里主脚本依次source各插件文件插件通过case $fn匹配用户输入的第一个参数并执行对应逻辑COMMANDS( list help usage categories general search network dns ssh ... ) # 依次加载插件 source $MAC/mac-cli/plugins/brew source $MAC/mac-cli/plugins/general source $MAC/mac-cli/plugins/git source $MAC/mac-cli/plugins/network # ... 其余插件如果输入的命令不在COMMANDS数组中脚本会提示Command not found并引导你选择一个分类来查看用法见 mac。可用分类由 mac-cli/misc/help 中的MacCategories数组定义general、git、homebrew、lamp、network、dns、performance、search、ssh、terminal、web_utilities、webdev。一键安装与配置向导Mac CLI 的安装被设计为单步完成一条命令即可完成拉取仓库、运行配置向导、安装依赖三步。安装脚本位于 mac-cli/tools/install官方推荐两种方式方式一curlsh -c $(curl -fsSL https://raw.githubusercontent.com/guarinogabriel/mac-cli/master/mac-cli/tools/install)方式二wgetsh -c $(wget https://raw.githubusercontent.com/guarinogabriel/mac-cli/master/mac-cli/tools/install -O -)安装完成后需要重新打开终端客户端之后即可直接使用例如运行mac help查看全部命令。配置向导做了什么安装脚本并非静默复制文件它包含一个交互式配置向导会依次向你提出两个问题是否让每个mac命令先显示其背后执行的系统命令Yes / No 选 Yes 时安装脚本会通过sed把主脚本中的echocommandfalse替换为echocommandtrue见 install 脚本此后每条命令执行前都会先回显底层命令方便学习记忆。是否安装 fish shell 的 tab 补全仅在系统使用 fish 且存在~/.config/fish时询问 选 Yes 时会把 fish_completion 复制到~/.config/fish/completions/mac.fish。随后脚本执行关键部署操作install 脚本将主脚本复制为/usr/local/bin/mac将整个mac-cli/目录插件、补全、帮助文档复制到/usr/local/bin/mac-cli为所有子文件添加执行权限。安装脚本还会顺带检测并补齐运行依赖详见下文环境要求并在安装了 bash-completion 的环境中将 bash_completion 放入/usr/local/etc/bash_completion.d/mac实现命令自动补全。配置编辑 /usr/local/bin/macMac CLI 的配置在首次安装时通过上述向导完成。之后如需调整直接编辑/usr/local/bin/mac这个主脚本文件即可。该文件顶部有一段 Configuration 区# Mac CLI directory MAC$(dirname $0) # Configuration export echocommandtrue核心配置项就是echocommand取值行为true每条mac命令执行前先用绿色字体回显其背后的真实系统命令起到教学记忆作用false静默执行只输出功能本身的运行结果主脚本同时定义了若干导出变量构成命令参数传递机制macexport fn$1 # 第一个参数命令名如 wifi:scan export firstParameter$2 # 第二个参数命令的输入参数 export secondParameter$3 # 第三个参数 export allParameters${:2} # 剩余全部参数插件正是读取这些变量来获取用户输入。例如general插件中的find:text会读取allParameters作为待搜索文本tar:compress读取firstParameter作为待压缩文件/目录。环境要求运行全部命令需要以下依赖安装时若缺失会自动安装见 install 脚本依赖用途安装方式HomebrewmacOS 包管理器绝大多数命令和依赖的基础未安装时通过官方安装脚本自动安装GitGit 工具类命令、clone 仓库brew install gitPipe Viewerpv为tar:compress提供带进度条的压缩管道brew install pvwget下载类命令如ip:public获取公网 IPbrew install wget另外安装脚本还会检查 bash-completion确保mac命令在 bash 中支持 tab 补全。更新与卸载更新到最新版本等价于先删除旧版本再重新执行安装sh -c $(curl -fsSL https://raw.githubusercontent.com/guarinogabriel/mac-cli/master/mac-cli/tools/update)update 脚本 的实现是删除/usr/local/bin/mac与/usr/local/bin/mac-cli在~/Downloads/mac-cli-update/临时目录重新执行安装脚本。卸载sh -c $(curl -fsSL https://raw.githubusercontent.com/guarinogabriel/mac-cli/master/mac-cli/tools/uninstall)uninstall 脚本 只做两件事删除/usr/local/bin/mac和/usr/local/bin/mac-cli目录干净彻底。命令全景以下命令均来自 mac-cli/misc/help 与各插件源码参数占位符X、N与原始文档一致。建议对照各插件文件查看底层实现。Help / Commands List命令描述参数mac help列出 mac 脚本中的全部可用命令通用命令General Commands实现位于 mac-cli/plugins/general底层调用以 macOS 原生命令和osascript为主命令描述参数mac update安装 macOS 软件更新并更新 Ruby gems、Homebrew、npm 及其已安装包mac lock锁定屏幕mac restart重启 macOSmac sleep进入睡眠模式mac shutdown关机mac time在 Terminal/iTerm 右上角显示时钟mac screensaver启动屏幕保护mac folders:list列出当前目录下的文件夹及其大小mac folder:size计算当前文件夹大小mac bluetooth:status获取蓝牙状态mac bluetooth:enable启用蓝牙mac bluetooth:disable禁用蓝牙mac wifi:status获取 Wi-Fi 状态mac wifi:scan扫描可用 Wi-Fi 网络mac wifi:enable启用 Wi-Fimac wifi:disable禁用 Wi-Fimac dock:add-space N向 Dock 添加空白间隔N 间隔数量mac eject-all弹出所有已挂载的卷和磁盘mac battery获取电池状态mac info获取 macOS 版本信息mac hidden:show显示隐藏文件mac hidden:hide隐藏隐藏文件mac find:text X在目录内递归查找精确短语X 文本字符串mac find:biggest-files查找目录内最大的文件mac find:biggest-directories查找目录内最大的文件夹mac zip:extract X解压 Zip 文件到当前目录X 待解压的 Zip 文件mac gzip:compress X用 Gzip 压缩当前文件X 待压缩文件mac gzip:extract X解压 Gzip 文件到当前目录X 待解压的 Gzip 文件mac tar:compress X用 tar 压缩文件/目录并显示进度X 文件或目录mac tar:extract X解压 tar 文件到当前目录X 待解压的 tar 文件源码补充mac update是一个多步骤升级任务底层依次执行sudo softwareupdate -i -a、brew update brew upgrade brew upgrade --cask brew cleanup、npm install npm -g npm update -g、yarn global upgrade、sudo gem update --system sudo gem update、pip 与 pip3 的过期包升级并在检测到 Atom 时执行apm upgrade --no-confirm见 general 插件。mac wifi:*系列通过 Apple 80211 私有框架的airport工具读取状态与扫描网络通过networksetup -setairportpower开关 Wi-Fi默认网卡设备为en0可用环境变量_W_DEVICE覆盖见 general 插件。mac find:text X执行时会先询问要搜索的文件扩展名再组合成find . -iname *.$extension | xargs grep -in --color $allParameters这条真实命令general 插件。mac tar:compress充分利用了 pv 依赖管道为tar -czf - $firstParameter | (pv -p --timer --rate --bytes $filename.tgz)压缩大目录时可实时看到进度、耗时与速率general 插件。搜索工具Search Utilities实现位于 mac-cli/plugins/search命令描述参数mac find:recent N查找最近 N 分钟内修改过的文件N 分钟数mac search:replace X在文件中查找并替换字符串X 执行查找替换的文件find:recent底层是sudo find / -mmin N -type f从根目录全盘扫描search 插件search:replace则基于LC_CTYPEC sed -i -e s#旧串#新串#g 文件实现执行时会交互式收集旧字符串、新字符串该命令也登记在 general 插件的search:replace分支中见 general 插件。网络工具Network Utilities实现位于 mac-cli/plugins/network命令描述mac speedtest互联网连接速度测试mac ports列出正在使用的端口mac ip:local获取本地 IP 地址mac ip:public获取公网 IP 地址源码细节speedtest调用 macOS 自带的networkQuality -vports执行sudo lsof -iTCP -sTCP:LISTEN -Pip:local优先尝试ipconfig getifaddr en0失败则回退到en1ip:public使用wget http://ipinfo.io/ip -qO -查询公网 IP这也是安装脚本会补装 wget 的原因。DNS 工具DNS Utilities实现位于 mac-cli/plugins/dns命令描述mac dns:list列出 DNS 服务器mac dns:add添加 DNS 服务器mac dns:remove移除 DNS 服务器mac dns:flush刷新 DNS 缓存值得注意的实现细节dns:list读取/etc/resolv.conf并提取nameserver行dns:add/dns:remove会用正则^[0-9]\.[0-9]\.[0-9]\.[0-9]$校验 IP 地址格式不合法则直接报错退出exit 1合法后才以sudo写入/etc/resolv.confdns:flush会根据系统版本走不同分支macOS 10.10.x 使用discoveryutil mdnsflushcache10.6.x 使用dscacheutil -flushcache其余较新版本统一sudo killall -HUP mDNSResponderdns 插件。SSH 工具SSH Utilities实现位于 mac-cli/plugins/ssh这类命令均为交互式输入命令后依次提示输入服务器地址、用户名必要时还有本地/远程路径命令描述参数mac ssh:download-file X通过 SSH 从远程服务器下载文件X 远程文件路径mac ssh:download-folder X通过 SSH 从远程服务器下载整个目录X 远程目录路径mac ssh:sync:local X用 rsync 通过 SSH 将远程目录同步到本地X 要同步到本地的远程目录路径mac ssh:sync:remote X用 rsync 通过 SSH 将本地目录同步到远程X 要从本地同步到的远程目录路径mac ssh:upload X通过 SSH 上传文件到远程服务器X 待上传文件路径mac ssh:public-key复制 SSH 公钥mac ssh:list列出已保存的 SSH 凭据底层实现下载/上传基于scp下载目录时加-r两个sync命令基于rsync -a --progresssync:local为拉取、sync:remote为推送见 ssh 插件ssh:public-key执行pbcopy ~/.ssh/id_rsa.pub一键把公钥复制到剪贴板。README 中登记的mac ssh:list与ssh:public-key均可在帮助脚本中找到对应说明misc/help。性能与维护工具Performance and maintenance Utilities实现位于 mac-cli/plugins/performance命令描述mac system显示系统信息以评估 Mac 性能mac temp显示温度、风扇和电池统计信息mac memory按内存占用排序查看内存使用情况mac trash:empty清空废纸篓mac trash:size计算废纸篓大小源码细节memory执行top -o MEMtrash:empty执行sudo rm -rf ~/.Trash/*trash:size执行du -sh ~/.Trash/performance 插件。system与temp在帮助脚本的 performance 分类中列出misc/help。Git 工具Git Utilities实现位于 mac-cli/plugins/git命令描述mac git:config显示本地 Git 配置mac git:open在 GitHub 上打开当前仓库mac git:create:branch基于当前分支创建新分支mac git:branches:date获取当前项目所有分支的最后更新时间mac git:undo-commit撤销最近一次提交mac git:log查看当前分支最近的提交 ID 和标题mac git:branch查看所有分支mac git:branch:rename重命名 Git 分支mac git:branch:remove-local删除本地 Git 分支mac git:branch:remove-remote删除本地和远程 Git 分支mac git:settings检查 Git 设置mac git:add-removed将已删除文件加入暂存区mac git:size获取当前 Git 目录的大小源码细节git:create:branch执行git checkout -b 名称git:undo-commit执行git reset --soft HEAD~保留工作区改动git:remove-remote会先git branch -d再git push origin --deletegit:branches用git for-each-ref按提交时间排序展示各分支git:size先git bundle create tmp.bundle --all打包再统计体积并自动清理git 插件、git 插件。git:open会从remote.origin.url解析出仓库地址并在浏览器打开当前分支git 插件。Homebrew 工具Homebrew Utilities实现位于 mac-cli/plugins/brew命令描述mac brew获取已安装的 Homebrew 包列表mac brew:update升级 Homebrew、已安装包并清理其中brew:update的执行链为brew update; brew upgrade; brew upgrade --cask; brew cleanup一次完成 formula 与 cask 的升级和清理brew 插件。音量工具Volume Utilities实现位于 mac-cli/plugins/volume通过osascript控制音量命令描述mac volume获取当前音量带参数 X 时设置为 X%mac volume:ismute检查是否静音mac volume:mute静音mac volume:unmute取消静音架构解析主脚本 插件 补全从源码结构看Mac CLI 的分层非常清晰mac唯一入口。负责定义COMMANDS白名单、导出参数变量、加载帮助脚本和全部插件并拦截未知命令。所有转发逻辑都在这里完成。mac-cli/plugins/9 个按领域拆分的插件文件brew、general、git、network、dns、performance、search、ssh、volume。新增命令时只需在对应插件的case $fn中加入新分支并把命令名追加到COMMANDS数组即可完成扩展。mac-cli/misc/help帮助与分类系统mac help输出的全部文案由它生成支持按分类查看用法mac categories、mac general等。mac-cli/completion/bash 与 fish 的 tab 补全脚本。bash 版本通过awk /COMMANDS/,/#/从/usr/local/bin/mac中动态提取命令列表生成补全候选bash_completionfish 版本同理fish_completion因此新增命令后补全列表会自动跟随主脚本更新。快速上手建议按上文任一方式安装向导中第一问选择 Yes开启命令教学回显模式重新打开终端先运行mac help熟悉全部分类再运行mac categories查看分类清单用mac info确认系统版本、mac battery查看电量、mac wifi:scan扫描网络、mac find:biggest-files排查磁盘占用借助mac git:create:branch、mac git:undo-commit、mac git:size提升 Git 日常操作效率涉及 SSH 的同步上传下载命令全部为交互式准备好服务器地址、用户名与路径即可使用定期运行mac update一次性完成系统与开发环境的整体升级或mac brew:update只更新 Homebrew 体系。需要留意的是部分命令如dns:add、ports、find:recent、trash:empty需要sudo权限会在执行时提示输入管理员密码update命令涉及的 pip/gem/yarn 升级链路较长适合在空闲时段运行。Mac CLI 的价值在于把上述分散在各工具链中的命令统一收敛到mac之下并在执行过程中持续帮助你记住它们。赞分享开发工具【免费下载链接】Mac-CLI macOS command line tool for developers – The ultimate tool to manage your Mac. It provides a huge set of command line commands that automatize the usage of your Mac.项目地址https://gitcode.com/gh_mirrors/ma/Mac-CLI点击查看免费下载相关推荐Mac CLI开发者必备的macOS命令行终极管理工具Mac CLI开发者必备的macOS命令行终极管理工具 你还在为记住复杂的macOS系统命令而烦恼吗还在为频繁切换图形界面和终端而效率低下吗Mac CLI开发工具终极Mac命令行工具一键管理你的macOS系统终极Mac命令行工具一键管理你的macOS系统 Mac CLI是一款专为开发者打造的macOS命令行工具它提供了大量自动化系统管理命令让你无需复杂操作即可开发工具Tuinity性能优化指南如何让Minecraft服务器支持100玩家在线Tuinity性能优化指南如何让Minecraft服务器支持100玩家在线 Tuinity是基于Paper的Minecraft服务器软件分支专注于在不改变上一篇网盘下载慢到怀疑人生用这款免费开源下载助手一键拿直链彻底告别龟速下一篇从零到精通游戏串流Sunshine 自托管服务器保姆级实战指南创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考
📝

华诺云谱内容团队

资深建站顾问 · 行业研究员

10年+企业数字化服务经验,专注智能建站、SEO优化与品牌营销,持续输出建站技巧、行业洞察与营销干货,已帮助5000+企业实现数字化增长。

你可能需要的服务

订阅华诺云谱资讯周报

每周一封,精选建站技巧、SEO与营销干货,直达邮箱。已有 8,000+ 企业主订阅,助你少走弯路。

↑