菜鸟科技网

命令行截图工具有哪些推荐?

命令行截图工具是Linux和macOS系统中常用的一类实用程序,它们允许用户通过命令行界面快速捕获屏幕、窗口或特定区域,并支持多种输出格式和自定义选项,这类工具特别适合自动化脚本、批量处理或需要高效截图的场景,相比图形化界面工具,命令行工具通常更轻量、灵活,且易于集成到工作流中,以下将详细介绍几款主流的命令行截图工具及其使用方法、优缺点对比,以及常见问题的解答。

命令行截图工具有哪些推荐?-图1
(图片来源网络,侵删)

主流命令行截图工具介绍

  1. Scrot(Simple SCReen shOT)
    Scrot是Linux系统中经典的命令行截图工具,基于libimlib2库开发,支持全屏、窗口选择、定时截图等功能,并可输出为JPEG、PNG等多种格式,其安装简单,在基于Debian/Ubuntu的系统中可通过sudo apt install scrot命令安装,在Fedora/CentOS系统中则使用sudo dnf install scrot
    基本用法包括:

    • 全屏截图:scrot screenshot.png
    • 延迟3秒截图:scrot -d 3 delayed.png
    • 选择区域截图:scrot -s selected_area.png
      Scrot的优势在于轻量且依赖少,但功能相对基础,不支持高级编辑或直接上传至云端。
  2. ImageMagick的import命令
    ImageMagick是一套功能强大的图像处理工具集,其中的import命令可用于截图,它支持通过X11协议捕获窗口或区域,并能直接对截图进行简单编辑(如添加文字、裁剪),安装方式为sudo apt install imagemagick(Ubuntu)或sudo dnf install imagemagick(Fedora)。
    示例用法:

    • 截取指定窗口:import -window ID window.png(需先用xwininfo获取窗口ID)
    • 选择区域并添加边框:import -frame border.png
      ImageMagick的优势在于与图像处理功能无缝集成,适合需要截图后立即编辑的场景,但命令参数相对复杂,初学者上手较慢。
  3. Flameshot(命令行+图形化混合)
    Flameshot是一款现代化的截图工具,既支持图形化界面,也提供命令行接口flameshot,它支持区域选择、标注、模糊敏感信息等功能,并可将截图直接保存或上传,在Ubuntu中可通过sudo apt install flameshot安装。
    命令行示例:

    • 全屏截图并保存:flameshot full -p ~/Pictures
    • 交互式区域截图:flameshot gui
      Flameshot的优势在于功能丰富且易于使用,适合需要高级标注功能的用户,但依赖Qt库,体积较Scrot稍大。
  4. Screencapture(macOS原生工具)
    macOS系统自带screencapture命令,无需额外安装,支持全屏、窗口、区域截图,并可保存为PNG、JPG、PDF等格式。
    常用用法:

    命令行截图工具有哪些推荐?-图2
    (图片来源网络,侵删)
    • 全屏截图:screencapture screenshot.png
    • 截取窗口(需点击选择):screencapture -c -l $(osascript -e 'tell application "System Events" to get window id of first window of process "Finder"')
    • 延时10秒截图:screencapture -T 10 delayed.png
      macOS原生的优势在于兼容性好且稳定,但功能较为基础,自定义选项较少。

工具对比与选择建议

为了更直观地比较各工具的特点,以下表格总结了关键信息:

工具名称 支持系统 输出格式 特色功能 安装复杂度 适用场景
Scrot Linux PNG, JPEG等 延时截图、区域选择 简单截图、脚本自动化
ImageMagick Linux, macOS 多种格式 图像编辑、窗口ID捕获 截图后需编辑的场景
Flameshot Linux, macOS PNG, JPG等 标注、模糊、云端上传 需要高级标注的用户
Screencapture macOS PNG, JPG, PDF 原生支持、延时截图 无需安装 macOS日常使用

选择建议

  • 若追求轻量化和快速截图,推荐Scrot;
  • 若需要截图后直接编辑,选择ImageMagick;
  • 若对标注功能有需求,Flameshot是更好的选择;
  • macOS用户可直接使用Screencapture,无需额外安装。

高级技巧与注意事项

  1. 自动化脚本集成
    命令行截图工具常与Shell脚本结合实现自动化,使用Scrot定时截图并保存到指定目录:

    for i in {1..10}; do
        scrot "timed_shot_$i.png" -d 1
        sleep 5
    done

    此脚本将每隔5秒截图一次,共10张,文件名包含序号。

    命令行截图工具有哪些推荐?-图3
    (图片来源网络,侵删)
  2. 窗口ID获取
    使用ImageMagick截取特定窗口时,需先通过xwininfo命令获取窗口ID,步骤如下:

    • 运行xwininfo,鼠标点击目标窗口;
    • 记录返回的Window id(如0x1a00001);
    • 执行import -window 0x1a00001 window.png
  3. 截图质量与压缩
    部分工具支持调整图片质量,Scrot可通过-q参数设置JPEG质量(1-100,默认75):scrot -q 90 high_quality.jpg,ImageMagick则可通过-quality参数调整。

  4. 依赖与兼容性
    Linux工具通常依赖X11或Wayland显示服务器,Wayland环境下可能需额外配置(如Flameshot需启用flameshot的Wayland支持),macOS用户需注意screencapture在部分安全设置下可能需要授权。

相关问答FAQs

Q1: 如何在Linux中通过命令行截图并直接上传至云存储(如阿里云OSS)?
A1: 可结合Scrot和ossutil工具实现,首先安装ossutil(阿里云官方命令行工具),然后编写脚本:

scrot /tmp/upload.png && ossutil cp /tmp/upload.png oss://your-bucket-name/ -f && rm /tmp/upload.png

此命令先截图到临时文件,再上传至OSS并删除临时文件,需提前配置ossutil的访问密钥。

Q2: macOS中如何使用命令行截取包含鼠标光标的屏幕?
A2: macOS原生的screencapture默认不包含鼠标光标,可通过以下方法实现:

  1. 安装macshift工具(如通过Homebrew:brew install macshift);
  2. 使用脚本结合screencapturescreencapture -c(复制到剪贴板),再通过pngpaste粘贴并添加光标图标。
    或使用第三方工具如maim(Linux工具,但可通过macPorts安装到macOS),其支持--cursor参数捕获光标。
分享:
扫描分享到社交APP
上一篇
下一篇