【发布时间】:2020-06-25 23:38:53
【问题描述】:
是否可以获取 Linux 终端文本内容的快照?
tput 和terminfo 都支持“杯子”模式(例如tput smcup 启动alternate buffer mode),这意味着它们必须将屏幕状态保存在某处。有没有可能得到这些内容?
【问题讨论】:
标签: linux terminal console terminfo tput
是否可以获取 Linux 终端文本内容的快照?
tput 和terminfo 都支持“杯子”模式(例如tput smcup 启动alternate buffer mode),这意味着它们必须将屏幕状态保存在某处。有没有可能得到这些内容?
【问题讨论】:
标签: linux terminal console terminfo tput
您可以将 Linux 终端文本内容的快照保存到
使用 GNU Screen 的文件
hardcopy
功能,但前提是您事先启动了screen。除此之外,
您可以恢复使用tput smcup 保存的终端内容
tput rmcup 但这仅适用于 xterm(不仅适用于 xterm
终端仿真器本身,但也在其他终端仿真器中
前提是 $TERM 设置为 xterm。它在 Linux TTY 中不起作用
不过)。
【讨论】:
tput smcup / tput rmcup 并浏览了所有terminfo / tput 文档以获取“获取内容”或“获取位置字符”的一些变体但找不到任何东西。 Screen / Tmux 似乎支持它,但我希望在没有多路复用器的情况下会有一些常规的终端方式。
在 Ubuntu Linux 中截屏的四种方法
当我们想要获取一个特定的窗口时,我们可以使用“Alt+Print Screen”。 Alt+PrintScreen 将只占用当前活动的特定窗口。
$ gnome 截图
仅捕获当前窗口: 在 UI 中,要单独截取当前活动窗口的屏幕截图,请选择“抓取当前窗口”并单击“截屏”。
在命令行中,使用 -w 选项来执行相同的操作。
$ gnome-screenshot -w
延迟一段时间后截图: 在 UI 中,您还可以在截屏之前设置延迟。将“延迟后抓取”设置为所需的秒数。当我们需要截屏导航时,这将非常有用。
在命令行中,使用 -d 选项来做同样的事情。 -d 2 用于延迟截屏 2 秒。所以在 2 秒内,我们就可以将要截屏的窗口激活。
$ gnome-screenshot -w -d 2
捕获特定区域: 在 UI 中,如果您想单独截取特定的矩形区域,请选择“Grab a Particular area”并单击“Take Screenshot”。
在命令行中,使用 -a 选项执行相同操作。输入该命令后,鼠标指针会发生变化,可以拖动选择要截屏的区域。
$ gnome-screenshot -a
包括或不包括窗口边框的截图: 在 UI 中,您还可以通过选择/取消选择“包含窗口边框”选项来包含或排除窗口边框。
使用 -window root 选项捕获整个屏幕 使用“-window root”选项截取整个屏幕的屏幕截图。屏幕截图将保存在命令行中提供的文件名中。
$ import -window root Pictures/Image5.png
ImageMagick 支持超过 100 种文件类型。您可以使用其中任何一种来存储输出。
【讨论】: