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


23

我在byobu进行了一次有趣的终端会话,我想将终端输出(命令和全部)保存到文件中-我该怎么做?

根据byobu手册页

Ctrl-a〜-保存当前窗口的回滚缓冲区

这可能确实是在做一些事情,但是我没有发现它可以保存在什么地方以及以什么名字保存。

Answers:


21

或者,您可以直接使用Byobu的热键:

  • Shift--F7

这将吸收您的历史并将其放入您喜欢的编辑器中。现在,只需将该缓冲区保存到文件中即可。如果您使用的是vi或vim,则可以使用:wq /tmp/out


sift-F7似乎没有任何作用,byobu帮助屏幕也没有提及它-我在ubuntu中使用带有tmux 1.6的byobu 5.17。
drevicko

太棒了,为我节省了很多时间!
Ctrl-C

1
我正在运行byobu 5.74,该选项确实会在帮助屏幕上显示给我,并按所述方式工作。考虑到达斯汀是byobu的创造者,如果不是这样,我会感到惊讶。:)值得一提的是,输出保存在$BYOBU_RUN_DIR/printscreen(如帮助屏幕中所述)。
Chuim

2
对我来说,它保存到/dev/shm/byobu-serg-ucvwj2rJ/printscreen,其中serg显然是我的用户名
Sergiy Kolodyazhnyy 2015年

1
我知道这是个老答案。无论如何,我遇到了同样的问题:shift-F7似乎没有执行任何操作(即使快捷键位于帮助菜单中)。我在带有byobu版本5.106和tmux 2.1的Ubuntu-16.04主机上使用它。
Marc

20

一个老问题仍然无法解决,我再次满足了这个需求。

这次我找到了可行的解决方案。来自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. gg 滚动到缓冲区顶部(感谢@GeorgeMarian)
    • 如果那行不通,请尝试以下操作:在行号前加上Page up:后面加上最大的行号(指示右上角),Page up然后转到该页面的顶部,
  4. Enter 复制(复制到byobu的剪贴板,而不是终端/系统),
  5. 然后cat > my-byobu-dump.txt在航站楼,
  6. Alt+ Insertctrl+ A+ ]粘贴(同样,从byobu的剪贴板中)
  7. Ctrl+ D关闭文件。

这是唯一对我有效的答案。
pjvandehaar,2015年

1
对于第3步,如果您想发挥最大作用gg(就像vim一样)。
乔治·玛丽安

@GeorgeMarian您知道这是否来自vim仿真模式吗?人们会发现其他行为吗?似乎是默认行为(至少在tmux 1.6上使用byobu 5.17)
drevicko

据我所知,byobu中没有vim仿真模式。有在回溯模式类似vi的移动命令,也许在其他地方。我只是碰巧尝试了它们,因为-很好-Linux。(less最近我一直在使用很多东西,进行搜索和移动。)
George Marian

好。可能来自底层的多路复用技术(屏幕或tmux)?无论如何,我已经添加了您的建议。非常感谢:)
drevicko

3

只有在byobu中将EDITOR环境变量设置为编辑器时 Shift + F7才可以按预期工作。出于某种原因,在某些情况下(例如,对于通过SSH连接到另一台计算机的我来说),将此变量设置为in ~/.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:
# /ubuntu/382750/how-to-save-scrollback-history-in-byobu
export EDITOR='vim'

就我而言,这没有帮助(实际上,.bashrc是我将EDITOR设置的位置)。据我所知,我的终端仿真器(osx默认终端程序)没有正确传递功能键-可能在终端的设置中可以解决,但是ctrl-A解决方案对我来说还可以。
drevicko

1
@drevicko啊,我知道了,很高兴知道。很好,我们正在收集几种解决方法,以便希望其中一种可以为遇到此问题的下一个人使用。
scottkosty

仅供参考:默认情况下,.profile不会为ssh会话加载 -解释此处发生的情况。
drevicko

2

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

  • Ctrl+ a[:进入回滚模式
  • Space 进入复印模式(可选)
  • Enter 退出回滚或复制模式
  • Ctrl+ a]:贴上什么被复制

另外,如果您的终端程序正在拦截F键;)
drevicko '17

1

使用Ctrl+ A+ ~将回滚缓冲区复制到byobu剪贴板。

使用Alt+ insertCtrl+ A+ 将文本粘贴到编辑器中]

(如果您已更改转义键,请调整Ctrl+ A。)


我目前只有一台Mac电脑可以使用,并且ctrl-a〜然后ctrl-a]没做任何事情-我怀疑ctrl-a不能通过byobu(在另一端ssh tunnel)..有什么想法吗?
drevicko 2014年

0

选择要保存的文本,然后按Control+ Shift + C 下一步,打开您喜欢的文本编辑器。然后使用Control+ 将内容粘贴到此处 V 。最后将文件保存在所需的位置。

当天的终端提示:尝试在终端中复制内容时,请像往常一样使用Control+ Shift + C代替Control+ C,并像往常一样粘贴。要将剪贴板上的内容粘贴到终端中,请使用Control+ Shift + V


它只是一个简单的复制粘贴方案,将浪费时间复制然后粘贴。drevicko希望通过终端执行此操作或将其自动保存到某个位置。
Sukupa91 2013年

他不是说我想将所有内容保存到文件中吗?他是怎么做到的。
Cammy_the_block

1
不,我相信您会得到屏幕上的价值–不是整个(也许是10000行)byobu回滚历史记录...请注意,byobu存储的终端历史记录与您使用的终端应用程序无关。
drevicko

如果将鼠标悬停在窗口上方,它将向上滚动,因此您可以突出显示整个内容。
Cammy_the_block

2
@Cammy_the_block,您缺少“ byobu”位,请查找它(如果在远程服务器上工作,这非常方便)。它存储可以断开连接并稍后重新连接的终端会话。我有10,000行终端历史记录,本地终端应用程序无法访问。Byobu(及其使用的后端:tmux或屏幕)具有一组自己的键盘驱动命令来访问该历史记录。
drevicko

0

Ctrl如果您使用abracodabra键入1至20次或更多次,则+ A+ ]将起作用。但是只有一个命令可以正常工作:将文本从缓冲区粘贴到终端或文件中。而获胜者是Alt+ Ins。,对Byobu的问候是由Dustin Kirkland编写和维护的GPLv3软件。


0

如果需要保存历史记录,请使用Shift + F7shorcut。就像@ dustin-kirkland说的那样。

如果您希望在终端中上下滚动,则取决于您使用tmux还是screen。例子:

  1. 屏幕:

    • CTRL + a:如果使用,[则进入滚动模式,如@ikar-pohorský所说。
  2. Tmux:

    • ALT + PageUp:您向上滚动。
    • ALT + PageDown:您向下滚动。

Byobu F1帮助

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.