菜鸟科技网

Linux命令行截图工具有哪些?

在Linux命令行环境下进行截图操作,虽然不如图形界面工具那样直观,但通过一系列强大的命令行工具,用户可以实现高效、灵活的截图需求,这些工具不仅支持基本的屏幕捕获,还能通过参数调整实现窗口截图、区域选择、延时截图、文件格式转换等功能,尤其适合服务器管理、自动化脚本或远程操作场景,以下是Linux命令行截图的详细方法与工具介绍。

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

常用命令行截图工具及使用方法

scrot:轻量级命令行截图工具

scrot(SCReen shOT)是Linux中最流行的命令行截图工具之一,依赖较少,功能简洁实用,它支持全屏截图、窗口截图、区域选择,并能直接对截图进行编辑或上传。

安装方法(以Debian/Ubuntu为例):

sudo apt update && sudo apt install scrot

基本用法

  • 全屏截图:保存当前整个屏幕到默认文件(文件名包含时间戳)。
    scrot
  • 指定文件名:将截图保存为指定路径和名称。
    scrot ~/Pictures/screenshot.png
  • 窗口截图:点击选择要截图的窗口(需配合--select--focused)。
    scrot --focused ~/window.png
  • 区域截图:拖动鼠标选择截图区域。
    scrot --select ~/area.png
  • 延时截图:在5秒后自动截图(适合捕捉菜单或弹窗)。
    scrot --delay 5 ~/delayed.png
  • 调整质量:设置JPEG图片质量(1-100,默认75)。
    scrot --quality 90 ~/high_quality.jpg

高级参数

Linux命令行截图工具有哪些?-图2
(图片来源网络,侵删)
  • --border:为截图添加边框。
  • --exec:截图后立即执行命令(如上传到云存储)。
    scrot --exec 'curl -F "file=@%f" https://example.com/upload' ~/upload.png

gnome-screenshot:GNOME环境专用工具

如果系统使用GNOME桌面环境(如Ubuntu、Fedora),gnome-screenshot提供了更丰富的选项,支持窗口截图、延时截图和交互式选择。

安装方法

sudo apt install gnome-screenshot  # Debian/Ubuntu
sudo dnf install gnome-screenshot  # Fedora

基本用法

  • 全屏截图
    gnome-screenshot
  • 窗口截图:自动聚焦当前活动窗口。
    gnome-screenshot --window
  • 延时截图:3秒后截图(可调整延时时间)。
    gnome-screenshot --delay 3 --file ~/delayed.png
  • 交互式区域选择
    gnome-screenshot --area

ImageMagick:多功能图像处理工具

ImageMagick是一个强大的图像套件,其import命令可用于截图,支持多种图像格式和高级编辑功能。

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

安装方法

sudo apt install imagemagick

基本用法

  • 全屏截图
    import -window root fullscreen.png
  • 窗口截图:通过窗口ID或标题指定窗口(需先用xwininfo获取窗口ID)。
    xwininfo | grep "id:" | cut -d" " -f4 | xargs import -windowid
  • 区域截图
    import area.png
  • 截图并添加文字
    import -font Arial -pointsize 20 -fill red -annotate +10+10 "Hello" annotated.png

maimscrot的现代化替代品

maim(MAke IMage)是scrot的改进版,支持更好的窗口选择和更清晰的语法。

安装方法

sudo apt install maim

基本用法

  • 全屏截图
    maim screenshot.png
  • 窗口截图
    maim --window $(xdotool getactivewindow) window.png
  • 区域截图
    maim --select area.png

xwdxwdtopnm:X11原生截图工具

xwd(X Window Dump)是X11系统自带的底层截图工具,生成的.xwd文件需通过xwdtopnm等工具转换为常见格式。

安装方法

sudo apt install xwd xwdtopnm netpbm

基本用法

  • 全屏截图
    xwd -root -out screen.xwd
  • 转换格式
    xwdtopnm screen.xwd | pnmtopng > screen.png

工具对比与选择

以下是上述工具的对比表格,帮助用户根据需求选择合适的工具:

工具名 依赖环境 支持功能 适用场景 安装命令
scrot 轻量级 全屏、窗口、区域、延时、上传 日常使用、脚本自动化 sudo apt install scrot
gnome-screenshot GNOME桌面 全屏、窗口、区域、交互式选择 GNOME用户、图形化操作 sudo apt install gnome-screenshot
ImageMagick 需安装ImageMagick 高级编辑、多格式支持 图像处理、批量操作 sudo apt install imagemagick
maim 轻量级 窗口选择、语法简洁 scrot用户替代方案 sudo apt install maim
xwd X11系统 原生X11截图、底层操作 服务器无GUI环境、调试 sudo apt install xwd

高级技巧与自动化脚本

定时截图

结合cron任务,实现定时截图(例如每分钟截图一次):

crontab -e
* * * * * /usr/bin/scrot /path/to/screenshots/%Y%m%d_%H%M%S.png

截图后自动上传

使用scrot--exec参数或结合curl实现截图上传:

scrot --exec 'curl -F "file=@%f" https://img.example.com/upload' ~/upload.png

截图并添加水印

通过ImageMagickcomposite命令为截图添加水印:

import -window root temp.png && composite -gravity southeast watermark.png temp.png final.png

相关问答FAQs

Q1: 如何在无GUI的Linux服务器上截图?
A1: 在无GUI的服务器环境中,可通过以下方法截图:

  • 如果服务器启用了X11转发(通过SSH),可使用xwdimport命令。
  • 如果需要截取终端内容,可使用script命令记录终端会话,或使用ttyrec录制终端操作后生成截图。
  • 对于Web界面,可结合PhantomJSPuppeteer等无头浏览器工具截取网页截图。

Q2: 如何实现截图后自动裁剪或调整分辨率?
A2: 可通过ImageMagickconvert命令实现截图后的裁剪或缩放。

  • 裁剪指定区域(从坐标(100,100)开始,宽高为800x600):
    import -window root temp.png && convert temp.png -crop 800x600+100+100 cropped.png
  • 调整分辨率(缩放至50%大小):
    import -window root temp.png && convert temp.png -resize 50% resized.png
  • 批量处理:结合find命令对目录下所有截图进行操作:
    find /path/to/screenshots -name "*.png" -exec convert {} -resize 50% {} \;
分享:
扫描分享到社交APP
上一篇
下一篇