linux如何截图
- Linux
- 2025-08-17
- 5
以下是针对 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 的截图功能
