Kar*_*bur 39 command-line gnome-terminal
我一直在寻找这个问题的答案,但没有找到任何让我认为这是不可能的,但是......
是否可以将当前的 Gnome 终端回滚缓冲区保存到文件中?
我知道我可以做一些事情,比如command > output.txt将所有输出重定向到一个文件,或者command | tee output.txt将输出拆分到终端和文件。我想要做的是事后捕捉这一点。我想将当前终端选项卡的回滚内容保存到一个文件中。
Kar*_*bur 54
经过一段时间的尝试后,我发现您可以:
triple-click 最后一行click第一行right-click> '复制')现在将它粘贴到一个文本文件中......或者,xsel你可以通过弹出一个新选项卡并执行以下操作将剪贴板推入一个新文件中:
xsel -o > out.txt
Run Code Online (Sandbox Code Playgroud)
(要安装xsel做sudo apt-get install xsel)
您也可以事后执行此操作。您正在寻找虚拟控制台内存(man vcs包含更多信息和几个示例)。
就您而言,如果您正在通过 /dev/tty1 使用虚拟终端,则以下代码片段将允许您将积压的工作存储在文件中output-file:
cat /dev/vcs1 >output-file
Run Code Online (Sandbox Code Playgroud)
请注意,tty1 和 vcs1 的设备号相匹配。
编辑:我应该注意,这仅适用于虚拟终端,不适用于伪终端(伪终端用于实现终端模拟器,如 gnome-terminal、xterm 等,请参阅 参考资料 获取man pts更多信息)。
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?
Run Code Online (Sandbox Code Playgroud)
虽然打字稿文件中可能有控制字符,例如来自ls命令,因此请使用cat typescript | col -b > outputfile.txt命令将干净的输出重定向到文件