可以说,自从窗口首次打开(或者自从使用了最后一个“清除”命令)以来,我的终端会话中有一堆文本,而且所有这些都是我想要的文本文件。
而不是手动“选择所有”并从我的终端窗口复制然后粘贴到文本编辑器中以获取“快照”,该命令相当于完成所有这些操作?
可以说,自从窗口首次打开(或者自从使用了最后一个“清除”命令)以来,我的终端会话中有一堆文本,而且所有这些都是我想要的文本文件。
而不是手动“选择所有”并从我的终端窗口复制然后粘贴到文本编辑器中以获取“快照”,该命令相当于完成所有这些操作?
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,并将原始输出(包括终端格式代码)收集到日志文件中。格式化代码使日志文件有点烦人,但它是可能的。