使用“分组会议”

使用“分组会议”

如果我使用 命令连接到 tmux 会话tmux a,我最终会与朋友共享该会话,我们无法处理自己的事务(因为我们必须在不同的窗口中工作)。另一方面,如果我使用 连接tmux a -d,我朋友的会话将被断开,他(或者更确切地说,我们中的一个人)无法在服务器上工作。

我知道此功能可能违背了 tmux 的“目的”,但我认为我还是应该问一下。有没有什么方法可以让我和我的朋友在服务器上使用同一个 tmux 会话并同时在不同的窗口中工作?

答案1

使用“分组会议”

您无需附加到会话,而是可以通过以下方式创建“分组会话-tnew-session

tmux new-session -t 'original session name or number'

分组的会话总是具有相同的窗口(新的(关闭的)窗口被链接到(从)组中的所有会话中删除),但它们各自都有自己的会话选项,包括当前和以前的窗口值。

如果您和您的朋友各自在同一组的会话中工作,那么您可以在不同的窗口中工作,但仍可以轻松访问同一组窗口,甚至可以在同一个窗口中工作(如果合适)。

例子

创建初始会话:

tmux                     # start initial session, lets say it gets the name '3'

为了明确谁应该使用每个会话,您可能希望为每个会话指定一个助记名称。我将在下面使用hismine,但您可能希望使用基于您的真实姓名、昵称、登录名或其他同样具有识别性的名称。

将此原始会话重命名为,his并(在原始会话之外)创建一个名为的分组会话mine

tmux rename-session -t 3 his
tmux new-session -d -t his -s mine          # leave off -d to attach right away

当你想要附加到“会话”的克隆时:

tmux attach-sesssion -t mine

当你的朋友想要附加到他的“会话”克隆时:

tmux attach-session -t his

您可以kill-session关闭其中一个会话,另一个会话将继续存在。您必须终止组中的所有会话,然后它们的窗口才会被强制关闭。

tmux命令缩写

如果你正在编写tmux命令,最好使用完整的命令名称(如上所述)以避免歧义并有助于“自我文档化”。如果您输入它们,则可以使用缩写:

  • new-sessionnew, 或者new-snew-senew-ses, …
  • rename-sessionrename, 或者rename-srename-serename-ses, …
  • attach-sessiona,,,atattach,,,,…attach-attach-s
  • kill-sessionkill-ses,,kill-sess

相关内容