退出后如何访问tmux会话?


19

我在EC2 AWS上使用tmux,但是我想看看我创建的一个会话中发生了什么。

我使用Ctrl+ b,然后d 离开会议。

使用Ubuntu 16.04


2
你尝试了tmux attach吗?
斯蒂芬

使用tmux之后还是首次使用时?
Vitor Abella

通常情况下,您会拨动tmux,先做点事,然后再拆开。然后,您可以使用tmux Attach返回上一个会话。
斯蒂芬

Answers:


23

我想看看我创建的一个会话中发生了什么。

据我所知,您可以通过以下方式查看tmux会话列表:

tmux list-sessions 查看当前在tmux上运行的会话。

要实际查看那些会话中正在运行的内容,必须将其附加到特定的会话,为此,您有两个选择(根据经验)。

  1. 如果您当前未运行tmux会话(或当前不在tmux会话中),则通过运行来附加tmux attach -t n(其中-t代表目标会话,n代表该会话号)。

  2. 如果您在另一个tmux会话中运行,则尝试连接到另一个会话时会收到错误消息,因此查看该tmux list-windows -a命令正在运行的最简单方法是使用该命令,然后移动正在运行任务的任何窗格/窗口。

移动窗口使用tmux move-window -s n1 -t n2-s ==源窗口-t ==目标窗口在源窗口会重视。N1要移动和窗口的==数N2是要移到窗口的数量)。

格式化N1N2的数字是有序的/格式化的sessionNumb:windowNumb。因此,第一个窗口中的第一个会话为0:1,第一个窗口中的第二个会话为1:1。

注意。n2必须是具有尚未创建的窗口的可用会话。如果将窗口移至已创建的窗口,则会收到错误消息“目标窗口不为空”,而移至未创建的会话将产生错误“找不到会话n”。

移动窗格有时在一个窗口中,您可能会有很多窗格,而您只需要移动一个窗格,如果您只需要在当前窗口内移动一个窗格(因为您不能在另一个窗口内移动一个窗口),这将很有帮助。

您可以使用几乎类似的语法来移动窗口,但是可以tmux move-pane -s *n1* -t *n2*

N1现在被格式化为sessionNumb:windowNumb.paneNumb等为N2

例子

之后tmux list-windows -a你会有这样的事情

0:1: Project- (4 panes) [177x48]
0:2: Mirror (3 panes) [177x48]
0:3: Chat! (1 panes) [177x48]
0:4: ssh* (1 panes) [177x48]
1:1: zsh (2 panes) [176x45]
1:2: zsh* (1 panes) [176x45]
1:3: zsh- (1 panes) [176x45]

现在,必须将窗口“ Chat”从第一个会话移到第二个会话中tmux move-window -s 0:3 -t 1:4(记住不能将窗口移至已创建的窗口)。

移动窗格

如果您只需要移动窗格,则需要做,tmux list-panes -a或者如果您已经知道它的窗口,则可以tmux list-panes -t 0:1 查看上面的格式说明

结果显示会话0窗口1(-s 0:1)具有这些窗格。

1: [177x34] [history 3/10000, 4119 bytes] %7 (active)
2: [88x13] [history 541/10000, 231972 bytes] %8
3: [88x13] [history 2/10000, 1541 bytes] %9

这只是不可接受的,但是如果您需要查看更多信息,以便知道真正需要哪个窗格,可以执行

tmux list-panes -F "#{pane_current_command}" -t 0:1

它将在每个窗格中显示当前正在运行的命令。

就我而言

vim
zsh
python (sadly it's runnuning `ranger`)

因此,在确定了所需的窗格(例如vim)之后,需要移动它。

tmux move-pane -s 0:1.1 -t 1:1.2在这种情况下移动到特定的窗格2

如果目标窗口中只有一个窗格,则tmux move-pane -s 0:1.1 -t 1:1.没有目标窗格,它仍然可以工作。

我希望这能回答这个问题。


0

按照上述答案,您可以尝试:

tmux ls获取会话号。接着

tmux attach-session -t <session_number>

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.