【问题标题】:Get terminal contents [duplicate]获取终端内容[重复]
【发布时间】:2020-06-25 23:38:53
【问题描述】:

是否可以获取 Linux 终端文本内容的快照?

tputterminfo 都支持“杯子”模式(例如tput smcup 启动alternate buffer mode),这意味着它们必须将屏幕状态保存在某处。有没有可能得到这些内容?

【问题讨论】:

    标签: linux terminal console terminfo tput


    【解决方案1】:

    您可以将 Linux 终端文本内容的快照保存到 使用 GNU Screen 的文件 hardcopy 功能,但前提是您事先启动了screen。除此之外, 您可以恢复使用tput smcup 保存的终端内容 tput rmcup 但这仅适用于 xterm(不仅适用于 xterm 终端仿真器本身,但也在其他终端仿真器中 前提是 $TERM 设置为 xterm。它在 Linux TTY 中不起作用 不过)。

    【讨论】:

    • 是的,我玩过tput smcup / tput rmcup 并浏览了所有terminfo / tput 文档以获取“获取内容”或“获取位置字符”的一些变体但找不到任何东西。 Screen / Tmux 似乎支持它,但我希望在没有多路复用器的情况下会有一些常规的终端方式。
    【解决方案2】:

    在 Ubuntu Linux 中截屏的四种方法

    1. 使用打印屏幕 这是最常用的截屏方法。按“打印屏幕”按钮将截取“整个可见屏幕”的屏幕截图。

    当我们想要获取一个特定的窗口时,我们可以使用“Alt+Print Screen”。 Alt+PrintScreen 将只占用当前活动的特定窗口。

    1. 使用 gnome 截图 gnome-screenshot 实用程序是 GNOME 桌面环境的一部分,也可用于截屏。它还具有命令行模式(gnome-screenshot) 在命令行中,只需键入命令“gnome-screenshot”即可。该命令将截取屏幕截图并提供一个对话框来保存它。

    $ 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 中,您还可以通过选择/取消选择“包含窗口边框”选项来包含或排除窗口边框。

    1. 使用 ImageMagic 的导入命令 ImageMagick 是一个开源软件套件,用于显示、转换和编辑光栅图像文件。它带有各种命令行工具,其中之一是“导入”。现在我们将看到,我们如何使用导入来截取屏幕截图。您可以在 debian/ubuntu 上使用 apt-get 安装它,如下所示:

    apt-get install imagemagick

    使用 -window root 选项捕获整个屏幕 使用“-window root”选项截取整个屏幕的屏幕截图。屏幕截图将保存在命令行中提供的文件名中。

    $ import -window root Pictures/Image5.png

    ImageMagick 支持超过 100 种文件类型。您可以使用其中任何一种来存储输出。

    1. 使用 GIMP 您也可以从 gimp 截取屏幕截图。启动 gimp,然后单击“文件->创建->屏幕截图”。将打开一个新的对话框窗口,其中包含类似于 gnome-screenshot 的选项。

    【讨论】:

    • 屏幕截图 + 大概运行输出虽然 OCR 工作,但它似乎有点令人费解。另外,它不能很好地移植到 X 不可用的环境。不过,它是一个可行的备份解决方案。
    猜你喜欢
    • 1970-01-01
    • 2017-08-09
    • 2016-02-29
    • 2013-10-09
    • 2012-07-06
    • 2021-07-08
    • 1970-01-01
    • 2013-12-04
    • 2012-02-23
    相关资源
    最近更新 更多