将当前终端回滚保存到文件吗?

将当前终端回滚保存到文件吗?

我一直在寻找这个问题的答案,但没有找到任何让我认为这是不可能的东西,但是......

是否可以将当前 Gnome 终端回滚缓冲区保存到文件?

我知道我可以做一些事情,比如command > output.txt将所有输出重定向到一个文件,或者command | tee output.txt将输出拆分到终端和文件。我想做的是事后捕获这一点。我想将当前终端选项卡的回滚内容保存到一个文件中。

答案1

经过一番尝试后,我发现你可以:

  • triple-click最后一行
  • 点击shift+home
  • shift+click第一行
  • 使用ctrl++ shiftcright-click>‘复制’)进行复制

现在将其粘贴到文本文件中...或者,xsel您可以通过打开新选项卡并执行以下操作将剪贴板推入新文件中:

xsel -o > out.txt

(要安装xsel请执行以下操作sudo apt-get install xsel

警告

无限回滚可以得到巨大的尝试选择所有内容进行复制会很慢,甚至可能超出内存限制。请参阅下面的评论。

答案2

您也可以事后这样做。您正在寻找虚拟控制台内存(man vcs包含更多信息和几个示例)。

对于您来说,如果您通过 /dev/tty1 在虚拟终端上工作,以下代码片段将允许您将积压工作存储在文件中output-file

cat /dev/vcs1 >output-file

注意tty1和vcs1的设备号要匹配。

编辑:我应该注意到,这只适用于虚拟终端,而不适用于伪终端(伪终端用于实现终端仿真器,如 gnome-terminal、xterm 等,man pts有关更多信息,请参阅)。

答案3

script当您想将终端会话保存到文件并稍后显示时,此命令是合适的。调用时,script它会启动您的 shell,完成后,只需输入 exit。typescript除非您另有指定,否则所有内容都将保存在文件中。

例如,

xieerqi:$ echo "Hello, Karl Wilbur"
Hello, Karl Wilbur

xieerqi:$ date
2015年 10月 27日 星期二 11:38:15 MDT

xieerqi:$ df
Filesystem     1K-blocks     Used Available Use% Mounted on
/dev/sda1      115247656 80939384  28430924  75% /
none                   4        0         4   0% /sys/fs/cgroup
udev             2914832        4   2914828   1% /dev
tmpfs             585216     1100    584116   1% /run
none                5120        0      5120   0% /run/lock
none             2926072      328   2925744   1% /run/shm
none              102400       52    102348   1% /run/user

xieerqi:$ exit
Script done, file is typescript
xieerqi@eagle:~$ cat typescript 
Script started on 2015年10月27日 星期二 11时37分55秒

xieerqi:$ echo "Hello, Karl Wilbur"
Hello, Karl Wilbur

xieerqi:$ date
2015年 10月 27日 星期二 11:38:15 MDT

xieerqi:$ df
Filesystem     1K-blocks     Used Available Use% Mounted on
/dev/sda1      115247656 80939384  28430924  75% /
none                   4        0         4   0% /sys/fs/cgroup
udev             2914832        4   2914828   1% /dev
tmpfs             585216     1100    584116   1% /run
none                5120        0      5120   0% /run/lock
none             2926072      328   2925744   1% /run/shm
none              102400       52    102348   1% /run/user

xieerqi:$ exit

Script done on 2015年10月27日 星期二 11时38分18秒

但是,typescript 文件中可能有控制字符,例如来自ls命令的字符,因此请使用cat typescript | col -b > outputfile.txt命令将清理输出重定向到文件

相关内容