Bash:我可以使用什么命令将当前终端窗口的全部内容重定向到文本文件?


0

可以说,自从窗口首次打开(或者自从使用了最后一个“清除”命令)以来,我的终端会话中有一堆文本,而且所有这些都是我想要的文本文件。

而不是手动“选择所有”并从我的终端窗口复制然后粘贴到文本编辑器中以获取“快照”,该命令相当于完成所有这些操作?

Answers:


0

似乎脚本命令可能是你的朋友,但你需要以这种方式开始: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.

0

这取决于您的终端仿真器。

如果您使用KDE konsole,则可以Save Output As...File菜单中使用。(默认情况下,没有键盘快捷键,但您可以使用CtrlShiftF10后跟a。)

如果使用gnome-terminal,可以使用菜单Select All下的整个回滚Edit选择(同样,没有默认快捷方式)。然后,您可以使用该xsel实用程序(或等效项)将选择转储到文件。

xterm(至少,我的机器上安装的版本)有一个print-immediate()动作,可以从mainMenu触发。默认情况下,它将整个回滚加上当前可见的窗口发送到以XTerm附加时间戳命名的文件。可以使用printFileImmediate资源设置文件名前缀,保存的数据受资源printModeImmediateprintOptsImmediate资源的影响。

或者,您可以选择所有文本然后使用xsel上面的技术,但我不知道选择所有文本的方便方法xterm

另请参见:man xterm man xsel以及为相关文件konsolegnome-terminal或您通常使用的终端仿真器。


我正在使用Ubuntu的终端,我正在寻找一个简单的命令解决方案,所以这可以在一个bash脚本中轻松完成
user3125996 2015年

换句话说,我的bash脚本从执行“清除”开始,它将运行它的东西,然后我想在最后执行“将当前终端窗口上写入的所有文本保存到文本文件中”功能,当然必须全部自动作为内部命令。
user3125996 2015年

@ user3125996:你不能要求bash保存脚本的输出,因为bash不知道输出是什么。它没有干预; 当bash运行一个实用程序时,它将实用程序打开文件描述符交给任何stdin,stdout和stderr重定向到,然后该实用程序从这些文件描述符读取和写入。即使是bash也会做同样的事情; 它只是将其输出发送到文件描述符。唯一具有“当前终端窗口”模型的程序是终端仿真器,并通过其菜单与终端仿真器通信。
rici 2015年

...当然,您可以将脚本的输出重定向到文件。您甚至可以使用tee它将其重定向到文件以及发送到stdout。这不会捕获来自stdin的任何输入,但也许没有任何输入。或者您可以使用script,它通过伪节点打开子shell,并将原始输出(包括终端格式代码)收集到日志文件中。格式化代码使日志文件有点烦人,但它是可能的。
rici 2015年
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.