上一篇
linux如何截图
- Linux
- 2025-08-17
- 4
Linux截图常用方式:按
Print Screen
键截全屏,
Alt+Print Screen
截当前窗口,或用
gnome-screenshot
/
scrot
以下是针对 Linux 系统截图功能的完整指南,涵盖主流桌面环境、命令行工具及实用场景,帮助您高效完成各类截图需求:
基于桌面环境的快捷操作(推荐优先尝试)
GNOME 桌面环境(Ubuntu/Fedora/Debian 默认)
操作类型 | 快捷键组合 | 功能描述 | 进阶用法 |
---|---|---|---|
全屏截图 | PrtSc (Print Screen) |
立即截取整个屏幕并自动保存至 ~/Pictures 目录,文件名格式为 Screenshot_YYYY-MM-DD_HH-mm-ss.png |
长按可触发延时截图(默认3秒) |
选区截图 | Shift + PrtSc |
鼠标拖拽选择矩形区域,松开后生成对应区域的截图 | |
窗口截图 | Alt + PrtSc |
点击目标窗口后自动截取该窗口(含边框),适合快速捕获单个应用界面 | 配合 Super 键可跨工作区截图 |
交互式截图 | Ctrl + Shift + PrtSc |
调出可视化工具栏,支持绘制形状/箭头标注、调整裁剪范围、设置倒计时等功能 | 可通过顶部菜单切换输出格式 |
提示:若需修改默认保存路径,可在终端执行
gsettings set org.gnome.gnome-screenshot save-filepath '/自定义路径/'
。
️ KDE Plasma 桌面环境(openSUSE/Kubuntu)
操作类型 | 快捷键组合 | 功能特性 |
---|---|---|
全屏截图 | PrtSc |
直接保存至 ~/Pictures ,文件名含时间戳 |
选区截图 | Shift + PrtSc |
自由框选区域,支持实时预览边框 |
窗口截图 | Meta + PrtSc |
精准识别当前焦点窗口(需先点击目标窗口) |
高级编辑器 | Ctrl + Shift + PrtSc |
打开 KSnapshot 工具,提供涂鸦、模糊敏感信息、添加文字等后期处理功能 |
️ XFCE/LXQt 轻量级桌面
此类环境通常采用统一的 Epiphany 浏览器内核实现截图功能:
- 全屏:
PrtSc
→ 自动保存至~/图片
- 选区:
Shift + PrtSc
→ 鼠标拖动选择区域 - 窗口:
Alt + PrtSc
→ 点击目标窗口完成截取
️ 命令行工具深度控制(适合自动化/脚本场景)
scrot
经典轻量化工具
# 基础用法(全屏截图) scrot /home/user/Desktop/my_screenshot.png # 带倒计时(防止误触) scrot -d 5 # 5秒后截图 # 仅截取指定显示器(多屏环境适用) scrot --display=:0.1 # 第二个显示器 # 选区截图(需配合 mousemovement) scrot -s # 按下回车后移动鼠标定义区域 # 质量压缩(JPEG格式) scrot -q 80 output.jpg # 80% 质量,减小文件体积
gnome-screenshot
GNOME 官方工具
# 全屏截图(覆盖现有文件需加强制参数) gnome-screenshot -f /tmp/force_overwrite.png # 截取延迟+选定区域 gnome-screenshot -a -d 3 # 3秒后进入选区模式 # 截取特定窗口(通过 WID 编号) xwininfo -tree -root | grep "Window id" # 获取窗口ID gnome-screenshot -w 0x400000 # 替换为实际ID
imagemagick
终极图像处理方案
适用于复杂需求(如滚动窗口截长图):
# 安装依赖 sudo apt install imagemagick xdotool # 截取整个网页(以 Firefox 为例) xdotool search --name Firefox && sleep 2 && import -window root screenshot.png # 拼接多张截图为长图 montage screenshot_part1.png screenshot_part2.png -tile 1x2 output.png
特殊场景解决方案
需求场景 | 推荐方案 | 关键参数/技巧 |
---|---|---|
截取非当前显示器内容 | scrot --display=:0.1 |
冒号后数字代表显示器索引 |
包含鼠标指针效果 | scrot -p |
需在截图前将鼠标移至目标位置 |
高质量印刷级输出 | scrot -bmp |
BMP 格式无损存储 |
定时自动截图 | at now + 1 minute <<< "scrot ~/timelapse/$(date +%H%M%S).png" |
结合 cron 可实现周期性任务 |
截取 OpenGL 3D 渲染画面 | glusterfs 项目提供的 grim 工具(Arch Linux 专享) |
需安装 AUR 仓库中的 grim-git |
常见问题与解决方案
Q1: 为什么按下 PrtSc 没有任何反应?
A: 可能原因及解决步骤:
- 键盘映射冲突:部分笔记本使用
Fn + PrtSc
组合键,尝试同时按住 Fn 键; - 桌面会话异常:重启显示管理器(如 GDM/LightDM);
- 权限不足:检查
~/Pictures
目录是否具有写入权限; - Wayland vs Xorg:若使用 Wayland 协议,部分旧版工具失效,建议改用
gnome-screenshot
。
Q2: 如何截取某个正在运行的程序窗口而不包含标题栏?
A: 两步法实现:
- 先用
xwininfo -tree
定位窗口 ID; - 使用
import -window WID -crop
命令,-crop
参数可精确裁剪掉标题栏区域。# 查找终端窗口ID TERM_WIN=$(xdotool getwindowfocus) # 截取并裁剪(去掉顶部30像素) import -window $TERM_WIN -crop 0x30+0+0 terminal_content.png
扩展知识库
- 文件存储位置:多数工具默认保存至
~/Pictures
,可通过环境变量XDG_PICTURES_DIR
重定向; - 格式转换:使用
convert
命令(ImageMagick套件)批量转换格式:mogrify -format jpg .png
; - OCR文字识别:结合 Tesseract 引擎实现截图转文本:
tesseract screenshot.png stdout
。
通过上述方法,您可根据实际需求灵活选择最适合的截图方案,无论是日常办公还是开发调试,Linux 的截图功能