Keyboard shortcuts 将GNU屏幕回滚缓冲区复制到文件(扩展硬拷贝)

Keyboard shortcuts 将GNU屏幕回滚缓冲区复制到文件(扩展硬拷贝),keyboard-shortcuts,gnu-screen,Keyboard Shortcuts,Gnu Screen,如何轻松地将GNU屏幕回滚缓冲区复制到文件中?即“硬拷贝”命令的更强大版本 在GNU屏幕中,我可以使用“Ctrl+A Esc”进入回滚 缓冲器然后我可以标记整个缓冲区并使用“Ctrl+A Ctrl+]”将其粘贴到缓冲区中,从而将其保存到文件中 然而,这是乏味的。是否有一个屏幕命令可以简单地将回滚缓冲区复制到一个文件中,就像“硬拷贝”对屏幕可见部分所做的那样?Ctrl+a,:,然后发出“登录”命令 或者在.screenrc文件中将其设置为默认值“deflog on”。按Ctrl+A:bufferf

如何轻松地将GNU屏幕回滚缓冲区复制到文件中?即“硬拷贝”命令的更强大版本

在GNU屏幕中,我可以使用“Ctrl+A Esc”进入回滚 缓冲器然后我可以标记整个缓冲区并使用“Ctrl+A Ctrl+]”将其粘贴到缓冲区中,从而将其保存到文件中

然而,这是乏味的。是否有一个屏幕命令可以简单地将回滚缓冲区复制到一个文件中,就像“硬拷贝”对屏幕可见部分所做的那样?

Ctrl+a,:,然后发出“登录”命令

或者在.screenrc文件中将其设置为默认值“deflog on”。

按Ctrl+A:bufferfile/tmp/somefile.txt输入,然后按Ctrl+A>


这会将缓冲区的当前内容写入命名文件。

尝试
硬拷贝-h
以包含整个缓冲区。

要将回滚缓冲区的全部内容写入文件,请键入

Ctrl+A和: 要进入命令模式,则

hardcopy -h <filename>
硬拷贝-h
在较旧版本的
屏幕中
,如果只执行
硬拷贝-h
,它只会写入文件
-h
。这在4.2.0版中已修复,因此
硬拷贝-h
写入
硬拷贝.N
,其中
N
是当前的窗口号。

这对我来说很有效:

进入编辑模式(
~
)并键入:

:hardcopy -h buff_file
它创建了一个巨大的文件,其中98%是空的,但我的日志在剩下的2%中完全存在

将当前屏幕保存到硬拷贝文件中,例如,屏幕0的硬拷贝.0。这似乎比按Ctrl+a键并键入硬拷贝命令更快。

TL;DR:
^A:writebuf

OP似乎想要一种方法来使用您在执行^a[,选择以空格作为开始和结束的文本,然后将生成的缓冲区选定部分保存到文件中,而不是使用^a]粘贴时得到的缓冲区选定部分

这起到了作用:

^A:writebuf


注意:writebuf中的一个“f”我认为在我运行该命令之后,它会开始记录所有内容。我不想把一切都记录下来(太冗长)。我只想将滚动缓冲区捕获为一个文件。我尝试了这个方法,结果“ctrl-a>”显示“什么也没发生”。第一步确实说了“Bufferfile现在是'/tmp/foo.txt',但似乎没有创建该文件。您确定使用Ctrl+A[?听起来您的缓冲区可能是空的-它不会复制整个滚动缓冲区,只是复制您使用Ctrl+A选择的部分[啊,我在寻找一种快捷方式,不使用ctrl-a复制整个缓冲区[这只是在文件中制作硬拷贝~/-h@barrycarter:这在较新版本中可能已更改。从屏幕4.03.01开始,
硬拷贝-h
写入
硬拷贝.N
,其中
N
是当前窗口号。请注意,文件保存在主目录中--至少对我来说是这样。谢谢您的回答,顺便说一句!@allrite:它保存在$PWD中(如果您不提供完整路径),没有特殊行为。是的,但它会保存在启动屏幕的$PWD中。不会保存在屏幕会话的$PWD中。请注意,如果您有一个长的回滚缓冲区,并且缓冲区中的缓冲区不多,则保存的文件可能会显示为空,因为前几十行或数百行是空的,内容位于末尾。请进一步注意保存硬拷贝:如果您将cd刻录到目录,然后使用
screen-r
重新连接到现有会话,硬拷贝不会保存到屏幕内部的active directory或使用
screen-r
之前的active directory。我想它会保存到您第一次启动屏幕会话时所在的目录。哟你可以用命令来改变它。不幸的是,这只保存了屏幕的可见部分,而不是滚动缓冲区。不,不。OP想保存整个缓冲区,而不仅仅是选定的部分。-OPRats!错过了这么多。这篇文章仍然很有用。干得好。我发现,要在MacOSX版本的屏幕上工作,我必须告诉我们e一个单独的路径(即:/Users/user1/path/to/file.txt)