我需要截取终端的屏幕截图,但是要清晰明了,我指的是从终端会话开始输入的所有命令(而不仅仅是屏幕上可见的这些行)。
我知道键盘上Prt Sc按钮的作用是截取终端的所有内容,并将其合并到某个图形程序中,例如Gimp,但我正在寻找一种即时“拍照”的方法。
我需要截取终端的屏幕截图,但是要清晰明了,我指的是从终端会话开始输入的所有命令(而不仅仅是屏幕上可见的这些行)。
我知道键盘上Prt Sc按钮的作用是截取终端的所有内容,并将其合并到某个图形程序中,例如Gimp,但我正在寻找一种即时“拍照”的方法。
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
gnome-screenshot -a 可以让你选择任何区域截图,这对你的使用情况可能有用。
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
/tmp/
。只需要使用这些png,可能另外选择另一条路径(不要使用 /tmp/
)。 - NVRM
~/.bash_history
的内容输出到文本文件中。在拍摄快照后是否清除历史记录由您决定。 - Jason