可以说,自从窗口首次打开(或者自从使用了最后一个“清除”命令)以来,我的终端会话中有一堆文本,而且所有这些都是我想要的文本文件。
而不是手动“选择所有”并从我的终端窗口复制然后粘贴到文本编辑器中以获取“快照”,该命令相当于完成所有这些操作?
可以说,自从窗口首次打开(或者自从使用了最后一个“清除”命令)以来,我的终端会话中有一堆文本,而且所有这些都是我想要的文本文件。
而不是手动“选择所有”并从我的终端窗口复制然后粘贴到文本编辑器中以获取“快照”,该命令相当于完成所有这些操作?
Answers:
似乎脚本命令可能是你的朋友,但你需要以这种方式开始:https://askubuntu.com/questions/216322/how-can-i-capture-text-from-a-specific-terminal-and-redirect -it-to-a-log-file-wh 或man man脚本可以打印终端上打印的所有内容的打字稿。对于需要交互式会话的硬拷贝记录作为分配证明的学生来说,这很有用,因为打字稿文件可以稍后用lpr(1)打印出来。
If the argument file is given, script saves all dialogue in file. If no file name is given, the
typescript is saved in the file typescript.
这取决于您的终端仿真器。
如果您使用KDE konsole
,则可以Save Output As...
在File
菜单中使用。(默认情况下,没有键盘快捷键,但您可以使用CtrlShiftF10后跟a。)
如果使用gnome-terminal
,可以使用菜单Select All
下的整个回滚Edit
选择(同样,没有默认快捷方式)。然后,您可以使用该xsel
实用程序(或等效项)将选择转储到文件。
xterm
(至少,我的机器上安装的版本)有一个print-immediate()
动作,可以从mainMenu触发。默认情况下,它将整个回滚加上当前可见的窗口发送到以XTerm
附加时间戳命名的文件。可以使用printFileImmediate
资源设置文件名前缀,保存的数据受资源printModeImmediate
和printOptsImmediate
资源的影响。
或者,您可以选择所有文本然后使用xsel
上面的技术,但我不知道选择所有文本的方便方法xterm
。
另请参见:man xterm
man xsel
以及为相关文件konsole
,gnome-terminal
或您通常使用的终端仿真器。
tee
它将其重定向到文件以及发送到stdout。这不会捕获来自stdin的任何输入,但也许没有任何输入。或者您可以使用script
,它通过伪节点打开子shell,并将原始输出(包括终端格式代码)收集到日志文件中。格式化代码使日志文件有点烦人,但它是可能的。