当前位置:首页 > Linux > 正文

linux如何截图

Linux截图常用方式:按 Print Screen 键截全屏, Alt+Print Screen 截当前窗口,或用 gnome-screenshot/ scrot

以下是针对 Linux 系统截图功能的完整指南,涵盖主流桌面环境、命令行工具及实用场景,帮助您高效完成各类截图需求:

linux如何截图  第1张


基于桌面环境的快捷操作(推荐优先尝试)

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: 可能原因及解决步骤:

  1. 键盘映射冲突:部分笔记本使用 Fn + PrtSc 组合键,尝试同时按住 Fn 键;
  2. 桌面会话异常:重启显示管理器(如 GDM/LightDM);
  3. 权限不足:检查 ~/Pictures 目录是否具有写入权限;
  4. Wayland vs Xorg:若使用 Wayland 协议,部分旧版工具失效,建议改用 gnome-screenshot

Q2: 如何截取某个正在运行的程序窗口而不包含标题栏?

A: 两步法实现:

  1. 先用 xwininfo -tree 定位窗口 ID;
  2. 使用 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 的截图功能

0