如何将 Linux 终端/“man”页的全部内容复制到文本编辑器(此例中为 gedit)?

如何将 Linux 终端/“man”页的全部内容复制到文本编辑器(此例中为 gedit)?

在我开始之前 - 我是一个 69 岁的 Linux 新手 - 请对我宽容一点!

有没有一种简单的方法可以复制终端的所有内容(很多页) - “手册页”,有人告诉我它们与终端页面不同,但对于新手来说它们看起来一样 - 请参阅下面的评论 - 以便我可以将其传输到文本编辑器?目前我必须一次突出显示并复制一页,这相当费力。

我已经看到了有关如何复制多页终端的一部分内容的解释 - 这对我来说有点棘手 - - - 我希望有一种快速简便的方法来复制全部内容?

感谢您的耐心等待。

答案1

以下两个选项不需要选择、复制和粘贴文本:

将单个命令的输出保存到文件这个问题有几个有用的答案,涵盖了将命令输出通过管道传输到文件的不同方法。例如:command 2>&1 | tee ~/outputfile.txt它将同时写入标准输出和错误输出outputfile.txt(请参阅上面的链接了解其他变体)。

或者

将整个会话保存到日志中与:(script logfile
如上所述)这里)。接下来的所有内容都将被记录到“ logfile”中,然后在完成后
键入以停止记录。exit

答案2

Ubuntu 上的默认终端仿真器gnome-terminal在其“编辑”菜单中应该有一个“全选”选项。

Ctrl一旦选择了所有内容,您就可以使用+ Shift+进行复制C,或者右键单击并选择“复制”,或从“编辑”菜单中选择“复制”。

但请注意,终端缓冲区默认限制为几千行。如果您的会话累积了更多行,这些行将被截断,您只能获得最新的部分。如果您需要更多,您可以在菜单“编辑”>“配置文件首选项”>“滚动”>“限制回滚到___”中更改回滚缓冲区的大小。


根据您在评论中的澄清进行更新:

man使用分页器(应该是less默认的),它使用不同的终端模式在单个屏幕上提供可滚动的文本,而不是依赖终端仿真器让您滚动浏览积压内容。

man为了一次性在终端中获取页面的全部内容,以便您可以选择并复制所有内容,您可以通过添加参数来告诉它不使用任何分页器--pager=,例如:

man --pager= find

如果您希望此行为成为默认行为,则可以将以下行附加到您的~/.bashrc文件中:

export MANPAGER=""

cat另外,如果通过任何其他命令(例如,仅按原样再现输出)传输输出,页面也会被禁用:

man find | cat

或者,如果您的实际目标是将手册保存到文本文件,则可以将命令输出直接重定向到文件:

man find > find.txt

答案3

如果您想要很多页面但不是全部

您可以右键单击终端窗口的底部,然后将鼠标拖到窗口标题栏上。

文本会随着突出显示而滚动。突出显示适当数量的页面后,按下鼠标右键。会出现一个上下文相关菜单,您可以在其中选择copy

将光标移到编辑器并再次单击鼠标右键。现在选择paste

答案4

我找到了解决问题的最简单方法:1.“脚本”命令有效:它复制终端/手册页中的内容并将其格式化为可以从文本文件打印的方式。2.只需在每个命令末尾添加“>> tempfile.log” - 然后可以根据需要在 libreoffice 中对其进行编辑

相关内容