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

常用命令行截图工具及使用方法
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
高级参数:

--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命令可用于截图,支持多种图像格式和高级编辑功能。

安装方法:
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
maim:scrot的现代化替代品
maim(MAke IMage)是scrot的改进版,支持更好的窗口选择和更清晰的语法。
安装方法:
sudo apt install maim
基本用法:
- 全屏截图:
maim screenshot.png
- 窗口截图:
maim --window $(xdotool getactivewindow) window.png
- 区域截图:
maim --select area.png
xwd与xwdtopnm: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
截图并添加水印
通过ImageMagick的composite命令为截图添加水印:
import -window root temp.png && composite -gravity southeast watermark.png temp.png final.png
相关问答FAQs
Q1: 如何在无GUI的Linux服务器上截图?
A1: 在无GUI的服务器环境中,可通过以下方法截图:
- 如果服务器启用了X11转发(通过SSH),可使用
xwd或import命令。 - 如果需要截取终端内容,可使用
script命令记录终端会话,或使用ttyrec录制终端操作后生成截图。 - 对于Web界面,可结合
PhantomJS或Puppeteer等无头浏览器工具截取网页截图。
Q2: 如何实现截图后自动裁剪或调整分辨率?
A2: 可通过ImageMagick的convert命令实现截图后的裁剪或缩放。
- 裁剪指定区域(从坐标(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% {} \;
