如何截取终端的截图

时间:2014-01-07 20:09:18

标签: linux terminal screenshot

我必须做一个终端的屏幕截图,但要明确我的意思是从会话开始时输入的整个终端命令(不仅这些行在屏幕上可见)。

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

3 个答案:

答案 0 :(得分:3)

你最不可能想要一张照片。您正在寻找的是会话的剪切粘贴列表,对吧?以文本形式提供它会更有帮助。所以实际上有一个实用程序就是这样做的,给出一个新的shell开始,称为" typescript"存在于大多数类似unix的盒子上。它可能被称为"打字稿"或"脚本"。用法示例:

创建一个名为' 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 :(得分:0)

gnome-screenshot -a将使您能够截取您选择的任何区域的屏幕截图,这可能适用于您的用例

答案 2 :(得分:0)

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个捕获,然后在无限的2秒循环中使用convert将它们转换为gif。

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