当前位置: 首页>>技术教程>>正文


如何在 byobu 中保存回滚历史记录?

问题描述

我在 byobu 中有一个有趣的终端会话,我想将终端输出(命令和所有)保存到一个文件中——我该怎么做?

根据 byobu man page

\\n

Ctrl-a ~ – Save the current window’s scrollback buffer

\\n

这可能确实在做一些事情,但我没有发现它可能被保存在何处以及以什么名称保存的迹象。

最佳方案

对于早期的 byobu 版本,一个老问题仍然无法有效地回答,我再次遇到了需要。

这次我找到了一个可行的解决方案。来自 man byobu

SCROLLBACK, COPY, PASTE MODES

   Each  window  in  Byobu  has  up to 10,000 lines of scrollback history,
   which you can enter and navigate using the alt-pgup and alt-pgdn  keys.
   Exit  this  scrollback mode by hitting enter.  You can also easily copy
   and paste text from scrollback mode.  To do so, enter scrollback  using
   alt-pgup  or  alt-pgdn,  press the spacebar to start highlighting text,
   use up/down/left/right/pgup/pgdn to select the text, and press enter to
   copy  the  text.  You can then paste the text using alt-insert or ctrl-
   a-].
  1. 我点击 F7 进入回滚模式,

  2. Space开始选择,

  3. G

    G

    滚动到缓冲区的顶部(感谢@GeorgeMarian)\n

    • 如果这不起作用,请尝试以下操作:使用大量 Page up: 后跟最大行号(标示在右上角)和 Page up 以到达该页面的顶部,

    \n

  4. Enter 复制(到 byobu 的剪贴板,而不是终端/系统),

  5. 然后是终端中的 cat > my-byobu-dump.txt

  6. Alt + Insertctrl + A , ] 粘贴(同样,来自 byobu 的剪贴板)

  7. Ctrl + D 关闭文件。

次佳方案

或者,您可以为此简单地使用 Byobu’s hotkey

  • ShiftF7

这会将您的历史记录放入 $BYOBU_RUN_DIR/printscreen 中。

第三种方案

如果您习惯不使用 F-keys 那么这可能对您有用:

  • Ctrl + a , [ : 进入回滚模式

  • Space 进入复制模式(可选)

  • Enter 退出回滚或复制模式

  • Ctrl + a , ] : 粘贴复制的内容

其中 Ctrl + a 是您的 tmux(默认 Byobu 后端)前缀/转义序列。

第四种方案

如果您将 EDITOR 环境变量设置为 byobu 中的编辑器,则 Shift + F7 只能按预期工作。出于某种原因,在某些情况下(例如,当我通过 SSH 连接到另一台计算机时),在 ~/.profile 中设置此变量是不够的。设置它以便 byobu 始终读取它的一个地方是 ~/.bashrc 。将类似以下内容复制到您的 ~/.bashrc

# Although this is set in ~/.profile, it is set here as well so that in a 
# remote byobu session, Shift+F7 copies the output to a Vim buffer. See:
# https://askubuntu.com/questions/382750/how-to-save-scrollback-history-in-byobu
export EDITOR='vim'

参考资料

本文由Ubuntu问答整理, 博文地址: https://ubuntuqa.com/article/13467.html,未经允许,请勿转载。