tmux:共享会话,一个用户在一个窗格中,另一个用户在另一个窗格中,两个不同的游标


17

我决定尝试使用tmux:一直在阅读文档并四处搜寻,试图找到一种方法让两个用户共享一个会话,每个用户使用不同的光标。

但是,授予777权限给套接字,或创建一个组,chgrp加入套接字并向其中添加两个用户,似乎让同一个套接字只能与一个游标共享一个会话:两个用户都可以写,但总是在相同的光标位置。

现在,两个用户都通过ssh处于同一家庭服务器中,并且该想法是能够:

  • 假设是左侧窗格中的终端,我可以在其中键入命令
  • 右窗格中的另一个终端,在这里我可以看到另一个用户在自己的终端中键入命令
  • 其他用户也一样

目前,我正在使用两个会话(不共享)和一个script -fand tail -f组合来读取彼此的按键,但我认为可能有一些使用tmux共享功能的方法。

有没有办法让这个想法在彼此的终端中支持写支持?

什么是更好的方法呢?



@clement不,这使两个用户看到的完全相同;也就是说,只有一个光标,并且两个光标都在右窗格中,或者都在左窗格中。但是无论如何还是要谢谢
ferhtgoldaraz 2014年

Answers:


20

这个问题有点老了,但我一直在寻找类似的东西,并在这里找到。它创建第二个会话,该会话与第一个会话共享窗口,但是具有自己的视图和光标。

tmux new-session -s alice
tmux new-session -t alice -s bob

如果共享两个用户帐户之间发生的事情,你可能还是要混乱权限(这听起来像你已经工作)。

编辑:根据建议,引自另一个答案

首先,为tmux用户添加一个组

export TMUX_GROUP=tmux
addgroup $TMUX_GROUP

创建一个组设置为$ TMUX_GROUP的目录,并使用setgid位,以便在该目录内创建的文件自动将组设置为$ TMUX_GROUP。

mkdir /var/tmux
chgrp $TMUX_GROUP /var/tmux
chmod g+ws /var/tmux

接下来,确保要共享会话的用户是$ TMUX_GROUP的成员

usermod -aG $TMUX_GROUP user1
usermod -aG $TMUX_GROUP user2

欢迎来到* nix.SE!这是一个很好的第一个答案,尽管我建议您考虑从后两个链接中添加一些最有用的位(以帮助避免链接腐烂)。:)
HalosGhost 2015年

4
这允许两个用户输入不同的窗口,但不能输入同一窗口内的不同窗格。(tmux 1.6)
瓦特

2

您可以尝试同时运行两个单独的tmux会话-一个用于您,另一个用于另一个用户。然后,使用操作系统的窗口系统并排布置两个终端,一个用于您,一个用于他。如果您需要在他的终端上书写,只需选择它作为输入即可。

您运行(每个命令在其自己的终端中):

tmux new-session -s Alice
tmux new-session -s Bob

然后Bob运行(再次,每个命令都在其自己的终端中):

tmux attach -t Alice
tmux attach -t Bob

如果您没有支持并排显示的窗口系统,或者讨厌鼠标,则可以(小心地)在非共享的屏幕/ tmux包装器会话中进行设置。


谢谢,但是我需要在服务器环境中使用它,所以没有窗户(我们搞砸了服务器的工作方式)
ferhtgoldaraz14年

1
@ferhtgoldaraz:您可以只使用一个拆分的tmux会话来包含两个子会话!
阿什

@Yuki:有趣的是,我来研究一下
ferhtgoldaraz

@Ashe拆分tmux会话和两个子会话是什么意思?你能详细说明一下吗?
elquimista '19

来自4年前的@elquimista你好!我的意思是运行TMUX,则窗口分成两个窗格(例如,使用Ctrl-B%或Ctrl-B“),然后运行TMUX(再次)在每个窗格中,交流会在答案建议。
阿什
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.