问题描述
我在 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-].
-
我点击
F7
进入回滚模式, -
Space
开始选择, -
G
G
滚动到缓冲区的顶部(感谢@GeorgeMarian)\n
-
如果这不起作用,请尝试以下操作:使用大量
Page up
或:
后跟最大行号(标示在右上角)和Page up
以到达该页面的顶部,
\n
-
-
Enter
复制(到 byobu 的剪贴板,而不是终端/系统), -
然后是终端中的
cat > my-byobu-dump.txt
, -
Alt
+Insert
或ctrl
+A
,]
粘贴(同样,来自 byobu 的剪贴板) -
Ctrl
+D
关闭文件。
次佳方案
或者,您可以为此简单地使用 Byobu’s hotkey:
-
Shift
–F7
这会将您的历史记录放入 $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'