tmux: Gemeinsame Sitzung, ein Benutzer in einem Bereich, ein anderer in einem anderen Bereich, zwei verschiedene Cursor


17

Ich habe mich für tmux entschieden: Ich habe die Dokumente gelesen und herumgegoogelt, um herauszufinden, wie zwei Benutzer eine Sitzung mit jeweils einem anderen Cursor teilen können.

Das Erteilen von 777-Berechtigungen für den Socket oder das Erstellen einer Gruppe, chgrpdas Hinzufügen des Sockets und das Hinzufügen beider Benutzer scheint jedoch zuzulassen, dass derselbe Socket verwendet wird, um eine Sitzung mit nur einem Cursor gemeinsam zu nutzen: Beide Benutzer können schreiben, aber immer im gleiche Cursorposition.

Im Moment befinden sich beide Benutzer über ssh auf demselben Heimserver, und die Idee ist, in der Lage zu sein:

  • Ein Terminal in einem linken Bereich, in dem ich Befehle eingeben kann
  • Ein weiteres Terminal in einem rechten Bereich, in dem ein anderer Benutzer Befehle in seinem eigenen Terminal eingeben kann
  • Das Gleiche gilt für den anderen Benutzer

Was ich im Moment tue zwei Sitzungen verwendet (nicht gemeinsam) und eine script -fund tail -fKombination das funktioniert irgendwie für jeden anderen Tastenanschläge zu lesen, aber ich denke , es ist wahrscheinlich eine Möglichkeit , dies zu tun tmux - Sharing - Funktionen verwenden.

Gibt es eine Möglichkeit, diese Idee mit Schreibunterstützung im Terminal des jeweils anderen zu verwirklichen?

Was ist der bessere Weg, um dies zu tun?



@clement Nein, damit sehen zwei Benutzer genau dasselbe. Das heißt, es gibt nur einen Cursor, und entweder befinden sich beide im rechten Bereich oder beide im linken Bereich. Aber trotzdem danke
ferhtgoldaraz

Antworten:


20

Diese Frage ist ein bisschen alt, aber ich habe nach etwas Ähnlichem gesucht und es hier gefunden . Es wird eine zweite Sitzung erstellt, die Fenster mit der ersten teilt, jedoch eine eigene Ansicht und einen eigenen Cursor hat.

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

Wenn die Freigabe zwischen zwei Benutzerkonten erfolgt, müssen Sie möglicherweise immer noch mit Berechtigungen herumspielen (was sich anhört, als hätten Sie bereits gearbeitet).

Bearbeiten: Wie vorgeschlagen, ein Zitat aus einer anderen Antwort :

Fügen Sie zunächst eine Gruppe für tmux-Benutzer hinzu

export TMUX_GROUP=tmux
addgroup $TMUX_GROUP

Erstellen Sie ein Verzeichnis mit der Gruppe $ TMUX_GROUP und verwenden Sie das Bit setgid, damit für Dateien, die im Verzeichnis erstellt werden, die Gruppe automatisch $ TMUX_GROUP festgelegt wird.

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

Stellen Sie als Nächstes sicher, dass die Benutzer, die die Sitzung freigeben möchten, Mitglieder von $ TMUX_GROUP sind

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

Willkommen bei * nix.SE! Dies ist eine ziemlich gute erste Antwort, obwohl ich empfehlen würde, einige der hilfreichsten Bits aus den beiden zweiten Links in der Zeile hinzuzufügen (um Link-Rot zu vermeiden). :)
HalosGhost

4
Auf diese Weise können zwei Benutzer in unterschiedliche Fenster, jedoch nicht in unterschiedliche Fensterbereiche innerhalb desselben Fensters eingeben. (tmux 1.6)
wird

2

Sie können versuchen, zwei separate tmux-Sitzungen gleichzeitig auszuführen - eine für Sie und die zweite für den anderen Benutzer. Verwenden Sie dann das Fenstersystem Ihres Betriebssystems, um zwei Terminals nebeneinander anzuordnen, eines für Sie und eines für ihn. Wenn Sie in sein Terminal schreiben müssen, wählen Sie es einfach für die Eingabe.

Sie führen aus (jeder Befehl in einem eigenen Terminal):

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

Und dann läuft Bob (wieder jeder Befehl in einem eigenen Terminal):

tmux attach -t Alice
tmux attach -t Bob

Wenn Sie kein Fenstersystem haben, das Side-by-Side-Anzeige unterstützt, oder wenn Sie die Maus hassen, können Sie dies jeweils (sorgfältig) in einer nicht freigegebenen Screen / TMUX-Wrapper-Sitzung einrichten.


Danke, aber ich brauchte dies in einer Server-Umgebung, also keine Fenster (wir haben damit
rumgespielt,

1
@ferhtgoldaraz: Sie könnten einfach eine geteilte tmux-Sitzung verwenden, um die beiden Subsessions zu enthalten!
Ashe

@Yuki: Interessant, ich werde das untersuchen
ferhtgoldaraz

@Ashe Was meinst du mit split tmux session und zwei subsessions? Können Sie bitte näher darauf eingehen?
Elquimista

@elquimista Hallo von vor mehr als 4 Jahren! Ich wollte tmux ausführen, dann das Fenster in zwei Bereiche aufteilen (z. B. mit Strg-B% oder Strg-B ") und dann tmux (erneut) in jedem Bereich ausführen und Sitzungen wie in der Antwort vorgeschlagen freigeben.
Ashe
Durch die Nutzung unserer Website bestätigen Sie, dass Sie unsere Cookie-Richtlinie und Datenschutzrichtlinie gelesen und verstanden haben.
Licensed under cc by-sa 3.0 with attribution required.