我使用 Putty 连接到 Linux (RHEL8)。我启动 tmux(2.7 版)并做一些工作。完成后,我退出 tmux。但是 tmux 会话中的屏幕文本不再在 Putty 终端中。是否可以保留文本(除了通过在 tmux 中运行命令“script”)?
或者,我可以将所有屏幕文本保存到一个文件并查看它。Putty 可以执行“全部复制到剪贴板”。但是在 tmux 会话中,它只复制当前屏幕。我可以进入复制模式 (^b[) 并一次向上滚动一个屏幕并复制,但它很乏味。我阅读了 https://unix.stackexchange.com/questions/630251/tmux-how-to-copy-large-bodies-of-text-to-system-clipboard 但不清楚它是如何工作或有帮助的。
对于@terdon 在评论中的观点,您可以简单地从会话中“分离”(默认Ctrl>+ B D),如果您愿意,可以稍后继续。如果简单地关闭Putty,那么tmux
Linux 主机上仍在运行。当您靠近ssh
主机时,您可以重新连接到它,通常使用tmux attach-session
(alias tmux attach
)。
虽然我现在使用 WSL/Windows 终端,但当我使用 Putty 时,我会设置“远程命令”选项,以便始终重新连接到现有(命名)tmux 会话或创建一个新(命名)会话(如果它不存在) ( tmux new-session -AD -t main -s main
).
但是,当tmux
关闭(通过退出或分离)时,与操作终端(例如less
或vi
)的任何“诅咒”/全屏类型应用程序一样,它将导致屏幕上的文本丢失,因为它会将控制权返回给前一个终端“所有者”(通常是外壳)。
至于您保存完整内容的请求,是的,tmux
可以将整个窗格保存到缓冲区或文件:
tmux capture-pane -p -S - -E - > ~/tmux-contents
Run Code Online (Sandbox Code Playgroud)
-p
将结果发送到 stdout 而不是 tmux 缓冲区-S -
从历史记录的第一行开始(默认仅是可见内容的第一行)-E -
在最后一条可见行处结束查看man tmux
并查找capture-pane
命令以获取更多信息。