欢迎回来
登录你的知识库账户
忘记密码?
还没有账户?立即注册
创建账户
注册你的专属知识库
已有账户?去登录
找回密码
输入注册邮箱获取验证码
返回登录
请输入图片中的验证码以继续注册
加载中...
取消
新建收藏
手动添加你喜欢的内容
取消
编辑头像与昵称
上传新头像或修改你的显示昵称
支持 JPG/PNG,最大 2MB
取消

问题反馈

notebasewww.notebase.cn
控制台
内容库
动态
管理
账户
U
用户
--
在线
v0.8.7 · 知识库
笔记
KnowledgeBase
网络无边,知识有迹。
0笔记
0工具
30推荐

分类导航

按主题直达

编辑精选

站内用户贡献 · 真实笔记

最新收录

每日更新
继续浏览全部内容 →
>
笔记
0
加载中...
工具
0
此页用于记录用户反馈问题后的每一次改进
笔记用法

“写笔记”支持四种格式——Word 文档、Excel 表格、Markdown、纯文本,起稿或二次编辑时都能随时切换,同一篇笔记想用哪种形态来记,都由你说了算。

md、txt、csv、json 这类纯文本则原样载入,不做多余加工。拿一张现成的表倒进来、改几笔、再导出去,等于白用一台免费的格式转换器。

要带走就在右上角点“下载”,可导出 PDF、Word、Markdown、Excel、TXT 等格式;列表卡片“⋯”菜单里,也有同样的下载入口。

工具用法

在“工具”页点“+ 上传工具”即可发布:填好名称与链接,再用 Markdown 把使用方法写清楚——能解决什么问题、怎么装、怎么用,比堆介绍实在。

要分发安装包就一并上传压缩包(ZIP、RAR、7Z、TAR.GZ,最大 35MB),别人在详情页一键下载;只放链接不带附件也可以。

工具按大家的收藏热度排序,好用的自然会被顶上来。发布后可在详情页或卡片菜单里编辑、下架。

隐藏笔记

写笔记时勾上“隐藏”,这篇就只存在于你自己的账号里:不进列表、不进搜索、不上首页精选,也不会出现在任何公开的页面,链接发给别人同样打不开。

适合放密码、草稿、日记这类只给自己看的内容;想公开,去“发布”打开它,把“隐藏”的勾去掉再保存,之后编辑会默认保持原状态,不会悄悄变回公开。

数据安全

你的内容会同时保存在多个副本上,系统定期做备份与完整性校验,再配合异地容灾机制:就算某台机器出问题,数据也不会丢,可以长期放心存放;特别重要的资料,仍建议你另外再留一份备份。

技术

全站跑在容器化、模块化的现代架构上,更新、部署、回滚都很快,扩展性和稳定性都按长期运营的标准来设计(Built for reliability, designed to scale)。

理念

这个网站最早只是一个人的笔记仓库,后来慢慢长成现在的知识中枢。设计上很克制——没有广告、没有追踪、没有推荐算法,只是干干净净地存放一些东西;既然做好了,就公开出来,万一有人用得上呢。

原则

不做大而全,不做平台梦,保持简单、保持克制、保持好奇。所有内容都由用户贡献、由用户维护:不会突然冒出付费墙,不会在角落塞广告位,也不会把你的数据卖给第三方。

更多

产品会持续迭代,站内日志页记录着每一次改动,改了什么都有迹可循;想了解这个站是怎么一步步走到今天的,翻翻日志就能看到来龙去脉。

举报

如果在这里看到涉嫌违规的内容,点对应卡片右侧的“举报”按钮就能提交,我们会尽快核实处理;也谢谢你花一点时间,一起把这里维护干净。

趋势
// 点击导航加载发现
归档
// 归档为空
最近浏览
// 暂无浏览记录
发布
// 加载中...
用户发布
// 加载中...
用户管理
// 加载中...
访问统计
// 加载中...
内容审核
// 加载中...
个人信息
// 加载中...
返回首页

macOS 命令行工具深度指南:你可能不知道的实用命令

1970/1/1操作系统

本文系统梳理 macOS 独有的高级命令行工具,涵盖电源管理、剪贴板、图像处理、Spotlight 搜索、系统信息查询等场景,帮助用户充分释放 macOS 的系统潜力。

macOS 命令行工具深度指南:你可能不知道的实用命令

macOS 作为基于 Unix 的操作系统,天然继承了庞大的标准 Unix 工具集(如 grep、sed、awk 等)。然而,苹果还内置了一批 macOS 特有的命令行工具,它们直接与系统底层服务(如 Spotlight、电源管理、剪贴板、网络配置)交互,提供了 GUI 操作难以企及的精确控制和脚本化能力。这些工具对开发者、系统管理员和高级用户而言,是提升工作效率的利器。

本文基于 macOS Sonoma 版本整理,所有命令均可通过 man <command> 查看完整文档。以下逐一深度解析这些工具的功能、典型用法和实用技巧。


1. caffeinate — 控制系统睡眠行为

核心功能:防止 Mac 自动睡眠,适用于长时间运行的任务(如编译、下载、视频渲染)或需要保持屏幕亮起的演示场景。

用法详解

命令形式 效果
caffeinate(无参数) 持续阻止系统睡眠,直到命令被手动中断(Ctrl+C)
caffeinate -u -t <秒数> 在指定秒数内防止睡眠,-u 表示仅当用户活跃时生效(即模拟用户活动)
caffeinate -d 额外阻止显示器休眠(通常与 -u 组合使用)
caffeinate -w <PID> 监控指定进程,一旦该进程退出,caffeinate 自动终止
caffeinate <command> 在子进程中执行给定命令,命令运行期间阻止睡眠,命令结束后自动退出

实用技巧:

  • 若要临时阻止睡眠并执行一条命令,直接使用 caffeinate make build 这样的形式,无需手动管理进程。
  • 使用 -w 配合后台进程时,可以确保无论任务何时结束,系统都会恢复默认电源策略。
  • 与 pmset 配合,可以诊断是哪个进程在阻止睡眠(见下文)。

2. pbcopy / pbpaste — 与系统剪贴板交互

核心功能:在终端和 macOS 剪贴板之间传输数据,实现命令行输出直接粘贴到 GUI 应用,或反之。

典型用法

bash

将命令输出复制到剪贴板

cat ~/.ssh/id_rsa.pub | pbcopy

将剪贴板内容输出到终端

pbpaste

将剪贴板内容写入文件

pbpaste > clipboard_content.txt

将终端中的多行文本通过管道写入剪贴板

curl -s https://example.com | pbcopy

高级技巧:

  • pbcopy 和 pbpaste 默认处理文本数据,但也可以与其他工具组合处理富文本或图片(需借助 pngpaste 等第三方工具)。
  • 在脚本中,可以用 pbpaste 获取用户复制的文本,配合 grep 或 sed 进行即时处理后再放回剪贴板。
  • 注意:pbcopy 支持标准输入,因此任何命令的输出都可以直接管道给它。

3. networkQuality — 测量网络速度

核心功能:macOS Monterey 及以后版本内置的网络测速工具,无需安装第三方软件。

用法

bash

运行基础测速

networkQuality

显示详细信息(如延迟、丢包率、上传/下载速度的多个指标)

networkQuality -v

指定网络接口测试(例如 Wi-Fi 接口为 en0)

networkQuality -I en0

输出说明:

  • 默认输出包括下行/上行带宽(Mbps)、往返延迟(RTT)和丢包率。
  • -v 模式还会给出响应延迟按百分位分布等信息,对网络诊断很有价值。
  • 尤其适合在切换网络后快速验证连接质量,或在设置中调试网络问题。

4. sips — 强大的图像处理工具

核心功能:macOS 自带的图像处理引擎,支持缩放、裁剪、旋转、格式转换等操作,且支持脚本化批量处理。

常用操作

命令 说明
sips -z <高> <宽> <图片> 强制调整为指定尺寸(忽略原始宽高比),注意参数顺序是高度在前!
sips -Z <边长> <图片> 等比例缩放,将最长边缩放到指定值,保持宽高比
sips -c <高> <宽> <图片> 从图片中心裁剪到指定尺寸(先裁剪后缩放,常见用法是先 -Z 再 -c)
sips -r <角度> <图片> 顺时针旋转图片,角度为整数(如 -r 90)
sips -s format jpeg <图片> 转换格式(jpeg、png、tiff、gif 等)

关键注意事项:

  • 默认破坏性写入:sips 直接修改原文件。若需保留原图,务必使用 -o <输出路径> 指定输出文件。
  • -o 的输出文件扩展名必须与输入图片原始格式一致,否则可能报错或转换失败。例如,处理 JPEG 时输出扩展名应为 .jpg。

批量处理示例:

bash

将目录下所有 PNG 统一缩放到最长边 1024px,并输出到 new/ 目录

mkdir -p new
for img in *.png; do sips -Z 1024 "$img" -o "new/$img"; done


5. open — 打开文件和应用

核心功能:open 是 macOS 特有的文件和应用启动器,支持指定应用、后台打开、Finder 定位等。

用法总结

bash

使用默认应用打开文件或 URL

open https://apple.com
open report.pdf

指定应用打开文件

open -a "Google Chrome" index.html

后台打开(不抢夺当前焦点)

open -g -a "Xcode" project.xcodeproj

在 Finder 中打开当前目录

open .

在 Finder 中显示某文件(相当于 Finder 的“显示原项目”)

open -R ~/Downloads/photo.jpg

无人提及的细节:

  • -g 参数非常适合启动大型应用(如 Xcode、Photoshop)时不打断当前工作流程。
  • 配合 -n 可强制应用新开一个实例(而非聚焦已有窗口)。
  • open -e <file> 可直接用 TextEdit 打开文件。

6. textutil — 文档格式转换器

核心功能:macOS 内置的文档转换工具,支持 Word、纯文本、RTF、HTML 等格式互转,也可用于提取文本内容。

用法示例

bash

将 doc 文件转为 html

textutil -convert html journal.doc

转为纯文本(提取内容)

textutil -convert txt notes.rtf

批量转换目录下所有 docx 为 txt

for f in *.docx; do textutil -convert txt "$f"; done

支持的格式(-convert 参数值):

  • txt — 纯文本
  • html — HTML(默认生成带样式标签的文档)
  • rtf / rtfd — 富文本格式及其包格式
  • doc / docx — Microsoft Word 格式

高级技巧:

  • textutil 支持读取 stdin,例如 cat file.doc | textutil -convert txt -stdout,便于脚本管线处理。
  • 可以使用 -output 指定输出文件路径,否则转换后的文件创建在与输入文件相同的位置。
  • 对于旧版 .doc 文件,提取纯文本比命令行 strings 更可靠,因为 textutil 能正确解析格式。

7. mdfind / mdls — Spotlight 搜索引擎的命令行接口

核心功能:利用 Spotlight 索引进行快速文件搜索,以及查询文件的元数据(Metadata),功能远超 find 和 locate。

mdfind 常用查询

bash

关键词搜索(基于内容与文件名)

mdfind "会议记录"

按名称搜索文件

mdfind -name "report.pdf"

限制搜索目录

mdfind -onlyin ~/Documents "预算"

基于元数据属性搜索(如查找 Mac App Store 安装的应用)

mdfind "kMDItemAppStoreHasReceipt == 1"

查找所有 PDF 文件

mdfind "kMDItemContentType == 'com.adobe.pdf'"

Spotlight 元数据属性:每个文件都有大量可搜索的属性,如作者、相机型号(照片)、时长(视频)等。常用属性包括 kMDItemFSName、kMDItemLastUsedDate 等。

mdls — 显示文件元数据

bash
mdls ~/Desktop/example.png

输出包含分辨率、颜色空间、像素尺寸、拍摄设备、GPS 坐标等

实际应用:

  • 结合 mdfind 和 xargs,可以快速找到并处理一组文件(如将某 app 的所有文件打包)。
  • mdls 在审计文件来源(如照片的 GPS 数据)或验证文件真实类型时非常有用。

8. screencapture — 屏幕截图与录制(命令行版)

核心功能:提供比 GUI 截图工具更灵活的截图能力,支持保存到文件、剪贴板,以及定时截图。

用法示例

bash

截图并复制到剪贴板

screencapture -c

截图保存到文件(默认 PNG)

screencapture screenshot.png

延迟 5 秒截图(适合捕获菜单或弹出窗口)

screencapture -T 5 -c

只捕获窗口(带阴影),交互式选择

screencapture -w output.jpg

录制屏幕(需要按下 Ctrl+C 停止,但 macOS 推荐使用新工具)

screencapture -v video.mp4

参数补充:

  • -x — 忽略屏幕捕获声音(在定时截图时避免播放“咔嚓”声)。
  • -D <display> — 捕获指定显示器(若多显示器)。
  • -t <format> — 指定图片格式(png、jpg、gif 等)。
  • -i — 交互式模式(允许选择区域或窗口)。

注意:-v 录制视频在 macOS Mojave 之后需要授予“屏幕录制”权限给终端应用。


9. taskpolicy — 控制进程调度策略

核心功能:调整进程的调度优先级,尤其适用于 Apple Silicon 芯片上的能效核(E-core)与性能核(P-core)调度。

背景知识

Apple Silicon Mac 的 CPU 由高效能核心(Efficiency cores)和高性能核心(Performance cores)混合组成。默认情况下,系统会动态调度进程到合适的核心。taskpolicy 允许手动干预。

用法

bash

以降级优先级在后台启动命令(仅运行于能效核)

taskpolicy -b

将已有进程降级到后台(PID 方式)

taskpolicy -b -p

将后台进程恢复为正常优先级(允许使用性能核)

taskpolicy -B -p

以挂起状态启动命令(便于调试器在启动时附加)

taskpolicy -s

重要说明:

  • -B 只对曾被 -b 降级的进程有效,对系统自发后台运行的进程(如后台下载)不一定生效。
  • -s 挂起启动常用于调试崩溃或启动故障的进程,配合 LLDB 在启动点附加。

应用场景:

  • 让编译任务或批量转码任务在能效核上运行,以降低风扇噪音和功耗,虽然速度会下降。
  • 在测试多核心调度时,观察任务分配。

10. say — 文本转语音引擎

核心功能:让 Mac 朗读文本,支持多种语音、语速调节,以及输出音频文件。

用法展示

bash

朗读文本

say "Hello, world"

将文本文件转成音频(AIFF 格式)

say -f input.txt -o output.aiff

指定语音(需先用 say -v '?' 列出可用语音)

say -v Samantha "Good morning"

设置语速(每分钟词数)

say -r 200 "Fast speech"

进阶用途:

  • 制作有声书:将小说文本分章节转换,然后用 afconvert 转成更压缩的 m4a 格式。
  • 结合自动化:在 Shell 脚本中插入 say 提醒任务完成状态(如 make && say "Build succeeded")。
  • 输出中文语音:say -v Tingting "你好"(Tingting 是系统内置中文语音之一)。

11. pmset — 电源管理配置工具

核心功能:查看和修改电源设置,诊断影响睡眠的因素,监控电池与热量。

常用命令

bash

查看所有电源配置

pmset -g

查看哪些进程申请了“防睡眠”断言(阻止系统睡眠)

pmset -g assertions

查看被降频(热控制)的进程

pmset -g thermlog

立即关闭显示器(系统不睡)

pmset displaysleepnow

立即让系统睡眠

pmset sleepnow

深入解析

pmset -g assertions 输出中每个睡眠阻隔器都会有对应的“所有者”(Owner),例如:

  • com.apple.powermanagement 可能是系统任务;
  • 第三方应用(如视频播放器)可能会声明 PreventUserIdleSystemSleep。

使用该命令可以精准定位“为什么我的 Mac 不自动睡眠?”的元凶。

pmset -g thermlog 在跑基准测试(如 Geekbench)时配合运行,可以看到哪些进程被系统强制降频以控制温度,这对理解性能波动非常有帮助。

注意:直接修改电源设置(如 pmset -c disablesleep 1)需要 sudo 权限,并可能影响系统稳定性,建议谨慎操作。


12. networksetup — 网络配置工具

核心功能:管理网络服务(如 Wi-Fi、以太网、VPN)的设置,包括 IP、DNS、代理等。

操作示例

bash

列出所有网络服务(按顺序)

networksetup -listnetworkserviceorder

查看特定网络服务的信息(如 IP、子网掩码)

networksetup -getinfo "Wi-Fi"

查看某服务的 DNS 服务器

networksetup -getdnsservers "Wi-Fi"

连接 Wi-Fi 网络(密码可选)

networksetup -setairportnetwork en0 "MyNetwork" "mypassword"

设置手动 DNS

networksetup -setdnsservers "Wi-Fi" 8.8.8.8 1.1.1.1

细节与坑

  • 网络服务名称必须与 -listnetworkserviceorder 中显示的名称完全一致(注意大小写和空格),常用 “Wi-Fi” 或 “Ethernet”。
  • 无线接口通常为 en0(Wi-Fi 的默认接口),但若存在 USB 以太网等,名称可能变化。
  • -setairportnetwork 需要无线网卡已开启,且不支持企业级网络(如带 802.1X 认证的),这类网络需用 security 命令或 UI。

13. softwareupdate — 系统更新命令行

核心功能:查看和安装系统更新,并下载完整安装器。

命令参考

bash

列出可用更新

softwareupdate --list

安装所有更新(需要 sudo)

sudo softwareupdate -ia

安装特定更新(如 Safari)

sudo softwareupdate -i "Safari-15.6"

下载完整安装器(如 macOS Sonoma)

softwareupdate --fetch-full-installer --full-installer-version 14.0

说明:

  • --fetch-full-installer 下载的安装器会位于 /Applications 目录,相当于从 App Store 获取的完整安装应用。
  • 此命令适合在脚本中批量升级多台 Mac,或为系统扩展准备离线升级包。

14. system_profiler — 系统信息收集

核心功能:输出系统软硬件详细报告,比“关于本机”提供更多技术数据。默认输出极长,建议指定数据类型。

常用数据类型

bash

列出所有数据类型

system_profiler -listDataTypes

硬件概要(型号、序列号、芯片)

system_profiler SPHardwareDataType

软件概要(精确版本号)

system_profiler SPSoftwareDataType

电源/电池信息(电池循环次数、充电功率)

system_profiler SPPowerDataType

Xcode 开发者工具版本

system_profiler SPDeveloperToolsDataType

安装的内存详细信息

system_profiler SPMemoryDataType

实用场景:

  • 用 system_profiler SPHardwareDataType | grep "Model Identifier" 判断设备型号以匹配兼容软件。
  • 购买二手 Mac 前,查看电池循环次数(SPPowerDataType 中的 “Cycle Count”)。
  • 在支持工单中附上 system_profiler SPSoftwareDataType 的输出,便于远程诊断。

补充:在 Apple Silicon 上,还可以用 system_profiler SPDisplaysDataType 查看 GPU 性能核心数等。


总结与扩展建议

以上命令均属于 macOS 的“系统级原生命令”,背后连接的是 Darwin/Foundation 框架。善用它们可以做到:

  • 自动化运维:定时截图、系统监控、自动更新。
  • 开发辅助:通过 taskpolicy 控制测试进程调度,mdfind 快速搜索测试文件。
  • 内容编辑:批量处理图像(sips)、文档格式转换(textutil)。
  • 系统诊断:快速排查睡眠问题(pmset)、网络问题(networksetup)、热量问题(pmset -g thermlog)。

每个工具都还有大量参数未在本文展开,强烈建议在实际使用前运行 man <command> 阅读权威手册。例如,sips 的翻转命令(-f)和格式转换属性(-s)也都非常实用。

随着 macOS 版本迭代,苹果也在持续更新这些工具的能力(如 networkQuality 是较新加入的)。保持命令行基础技术的同时,关注系统更新日志会发现更多惊喜。


原文链接:Advanced macOS Command-Line Tools

编写使用方法
Markdown 格式 · Ctrl+Enter 确定
新建笔记
预览
数据表格
点击单元格编辑 · Tab 移动
A1fx
Sheet1
BIH1H2≡🔗</>
隐私提醒

取消
编辑工具
取消