如何在终端中进行截屏

4

我需要截取终端的屏幕截图,但是要清晰明了,我指的是从终端会话开始输入的所有命令(而不仅仅是屏幕上可见的这些行)。

我知道键盘上Prt Sc按钮的作用是截取终端的所有内容,并将其合并到某个图形程序中,例如Gimp,但我正在寻找一种即时“拍照”的方法。


2
这取决于您的桌面/窗口管理器。您可以尝试使用Control + PrintScreen或Alt + PrintScreen或Shift + PrintScreen或类似的组合键。 - janos
你可以将~/.bash_history的内容输出到文本文件中。在拍摄快照后是否清除历史记录由您决定。 - Jason
3个回答

3
你不是想要一张照片,更可能是想要一个复制和粘贴的会话列表,对吧?并且将其以文本形式呈现更加有帮助。实际上,有一种工具可以做到这一点,在大多数类Unix的机器上都存在,称为“typescript”,它会创建一个新的shell,以便开始使用。它可能被称为“typescript”或“script”。例如用法:
创建一个名为“typescript”的文件,并记录我的所有操作;请注意,对我来说,历史编号从1001重新开始,这表明它实际上启动了一个新的shell(在本例中是bash,但任何shell都可以):
13:00 wjh [1198]: script
Script started, file is typescript
13:00 wjh [1001]: echo "hello world"
hello world
13:01 wjh [1002]: echo "cool"
cool
13:01 wjh [1003]: exit
exit
Script done, file is typescript

现在我们可以看到文本文件 typescript 的内容与上面的内容几乎完全一致:
13:01 wjh [1199]: cat typescript
Script started on Tue 07 Jan 2014 01:00:47 PM PST
13:00 wjh [1001]: echo "hello world"
hello world
13:01 wjh [1002]: echo "cool"
cool
13:01 wjh [1003]: exit
exit

1
是的,我几乎同意你提到的所有情况,但这个问题的重点是我只需要这些命令的图片(我知道这不是专业的电脑方式)。我也知道最简单的剪切和粘贴方法,但我提出这个问题的主要原因是它在打印时看起来更好,就像 shell 一样具有颜色和布局。所以我不明白为什么这个问题会被投票否决。 - Egel

1

gnome-screenshot -a 可以让你选择任何区域截图,这对你的使用情况可能有用。


1
从一个脚本,在X环境中:
使用ANSI序列,从我们的脚本中动态更改终端标题:
echo -e "\033]0;Term | myApp\007";

通过窗口标题捕获png:

现在我们可以使用wmctrl通过精确的标题搜索窗口ID,并将该ID传递给import实用程序:

import -window $(wmctrl -l | grep -i 'Term | myApp' | awk '{print $1}') ~/Pictures/capture.png

制作GIF:

示例进行微调,每秒拍摄5张照片,然后使用convert将它们按顺序转换为gif,在一个无限2秒循环中。

rm -f /tmp/*png && for i in {1..5}; do import -window $(wmctrl -l | grep -i 'Term | myApp' | awk '{print $1}') /tmp/$i.png && sleep 1; done && convert -delay 200 -loop 0 /tmp/*.png animation.gif

制作视频:

示例调整,每30毫秒拍摄50张照片,并使用ffmpeg将其转换为mp4视频。(由于ffmpeg不支持按ID进行窗口捕获)

rm -f /tmp/*png && for i in {1..50}; do import -window $(wmctrl -l | grep -i 'Term | myApp' | awk '{print $1}') /tmp/$i.png && sleep 0.03; done && ffmpeg -framerate 1 -pattern_type glob -i '/tmp/*.png' -c:v libx264 -r 30 OUT.mp4

我需要每30秒拍摄一个浏览器网站(仅文本)的20个屏幕截图。是GIF还是视频更好?然后,应该使用OCR(Tesseract)将图片文本转移到文本文件中,可能使用Google Cloud。 - Timo
似乎是一个复杂的方式来检索网站文本内容!无论如何直接使用框架图片,在这个示例中,png文件被写入临时目录 /tmp/。只需要使用这些png,可能另外选择另一条路径(不要使用 /tmp/)。 - NVRM

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接