Tmux

退出 tmux 後將 tmux 文本留在終端中。可能的?

  • July 30, 2021

我使用 Putty 連接到 Linux (RHEL8)。我啟動 tmux(2.7 版)並做一些工作。完成後,我退出 tmux。但是 tmux 會話中的螢幕文本不再出現在 Putty 終端中。是否可以保留文本(除了在 tmux 中執行命令“腳本”)?

或者,我可以將所有螢幕文本保存到文件並查看它。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關閉(通過退出或分離)時,與任何操縱終端的“詛咒”/全屏類型應用程序(例如lessvi)一樣,它將導致螢幕上的文本失去,因為它將控制權返回到上一個終端“所有者”(通常是外殼)。

至於您保存完整內容的請求,是的,tmux可以將整個窗格保存到緩衝區或文件中:

tmux capture-pane -p -S - -E - > ~/tmux-contents
  • -p將結果發送到 stdout 而不是 tmux 緩衝區
  • -S -從歷史記錄的第一行開始(預設僅是可見內容的第一行)
  • -E -在最後一個可見行結束

查看man tmux並查找capture-pane命令以獲取更多資訊。

引用自:https://unix.stackexchange.com/questions/662664