macOS 内置的命令行截屏/录屏工具,无需安装第三方软件即可完成屏幕捕捉的各种操作。

基本用法

screencapture [选项] [输出文件]

常用参数

输出目标

参数说明
-c将截图直接保存到剪贴板,无需文件
-P截图后自动在 Preview 中打开
-M截图后自动创建新邮件并添加为附件
-I截图后自动在 Messages 中打开
-B <bundleid>截图后用指定 bundle ID 的应用打开

捕捉模式

参数说明
-i交互式捕捉:空格键切换选区/窗口模式,Esc 取消,按住 Control 键捕捉到剪贴板
-s仅允许选区模式
-w仅允许窗口模式
-W启动时直接进入窗口选择模式
-m仅捕捉主显示器
-D <n>捕捉指定编号的显示器(-D 1 为主显示器)
-l <windowid>捕捉指定 ID 的窗口
-R <x,y,w,h>捕捉指定坐标和尺寸的矩形区域

输出选项

参数说明
-t <格式>指定输出格式,默认 png,支持 jpg/pdf/tiff/gif 等
-o窗口捕捉时不包含窗口阴影
-C包含鼠标指针(仅非交互式模式)
-x截图时不播放快门声音
-r不添加 DPI 元数据到图片
-T <秒数>延迟指定秒数后截图

视频录制

参数说明
-v录制屏幕视频
-V <秒数>录制指定时长的视频
-g录制视频时同时录制系统音频
-G <id>使用指定音频设备录制
-k视频中显示鼠标点击效果

实用示例

基础用法

# 全屏截图保存到桌面
screencapture ~/Desktop/screenshot.png
 
# 交互式截图并保存到剪贴板
screencapture -c -i
 
# 延迟3秒截图,包含鼠标指针
screencapture -T 3 -C ~/Desktop/delayed.png

窗口捕捉

# 选择窗口截图,无阴影,保存为jpg
screencapture -w -o -t jpg ~/Desktop/window.jpg
 
# 直接截取指定 ID 的窗口
screencapture -l 12345 ~/Desktop/specific-window.png

区域捕捉

# 截取屏幕左上角 1920x1080 区域
screencapture -R 0,0,1920,1080 ~/Desktop/region.png
 
# 选区截图后自动在 Preview 中打开
screencapture -s -P

视频录制

# 录制屏幕视频,包含音频
screencapture -v -g ~/Desktop/screencast.mp4
 
# 录制10秒视频并保存
screencapture -v -V 10 ~/Desktop/10sec-recording.mp4

实用别名(可加入 ~/.zshrc)

# 选区截图到剪贴板
alias sc='screencapture -c -i'
 
# 窗口截图到桌面
alias scw='screencapture -w -o ~/Desktop/$(date +%Y%m%d%H%M%S).png'
 
# 全屏截图到桌面
alias scf='screencapture ~/Desktop/$(date +%Y%m%d%H%M%S).png'
 
# 录制屏幕(Ctrl+C 停止)
alias rec='screencapture -v -g ~/Desktop/recording-$(date +%Y%m%d%H%M%S).mp4'

注意事项

  • 通过 SSH 远程执行时,需要与 loginwindow 处于同一 mach bootstrap 层级
  • 窗口 ID 可通过 sips -g all /path/to/image.png 或 Quartz 相关工具查询
  • 视频录制默认保存为 .mov 格式,指定 .mp4 后缀会自动转换编码