tmux: sesja współdzielona, ​​jeden użytkownik w panelu, inny w innym panelu, dwa różne kursory


17

Zdecydowałem się wypróbować tmux: czytałem dokumenty i przeglądałem strony, próbując znaleźć sposób, aby dwóch użytkowników współużytkowało sesję, każdy z innym kursorem.

Jednak przyznanie 777 uprawnień do gniazda lub utworzenie grupy, chgrpwgranie gniazda i dodanie do niego obu użytkowników wydaje się pozwalać temu samemu gniazdu na współdzielenie sesji tylko jednym kursorem: obaj użytkownicy mogą pisać, ale zawsze w ta sama pozycja kursora.

W tej chwili obaj użytkownicy korzystają z tego samego serwera domowego przez ssh, a pomysł polega na tym, aby mieć:

  • Terminal w, powiedzmy, lewym panelu, w którym mogę wpisywać polecenia
  • Kolejny terminal w prawym okienku, w którym widzę innego użytkownika wpisującego polecenia we własnym terminalu
  • To samo dla drugiego użytkownika

Co robię w tej chwili jest za pomocą dwóch sesji (nie jest dzielona) i script -foraz tail -fkombinację, która działa trochę do czytania nawzajem naciśnięcia klawiszy, ale liczyć się nie ma chyba jakiś sposób to zrobić przy użyciu tmux możliwości udostępniania.

Czy istnieje sposób, aby ten pomysł działał z obsługą zapisu w terminalach innych użytkowników?

Jaki jest lepszy sposób to zrobić?



@lement Nie, dzięki czemu dwóch użytkowników widzi dokładnie to samo; oznacza to, że jest tylko jeden kursor i oba są w prawym okienku lub oba znajdują się w lewym okienku. Ale i tak dzięki
ferhtgoldaraz

Odpowiedzi:


20

To pytanie jest trochę stare, ale szukałem czegoś podobnego i znalazłem je tutaj . Tworzy drugą sesję, która dzieli okna z pierwszą, ale ma własny widok i kursor.

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

Jeśli dzielenie się dzieje między dwoma kontami użytkowników, może trzeba jeszcze bałagan z uprawnieniami (co brzmi jak ty nie działa już).

Edycja: zgodnie z sugestią cytat z innej odpowiedzi :

Najpierw dodaj grupę dla użytkowników tmux

export TMUX_GROUP=tmux
addgroup $TMUX_GROUP

Utwórz katalog z grupą ustawioną na $ TMUX_GROUP i użyj bitu setgid, aby pliki utworzone w tym katalogu automatycznie ustawiły grupę na $ TMUX_GROUP.

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

Następnie upewnij się, że użytkownicy, którzy chcą udostępnić sesję, są członkami $ TMUX_GROUP

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

Witamy w * nix.SE! To jest całkiem dobra pierwsza odpowiedź, chociaż polecam rozważyć dodanie kilku najbardziej pomocnych bitów z dwóch drugich linków w linii (aby uniknąć gnicia linków). :)
HalosGhost,

4
Umożliwia to dwóm użytkownikom wprowadzanie danych do różnych okien, ale nie do różnych okien w tym samym oknie. (tmux 1.6)
awatts

2

Możesz spróbować uruchomić dwie oddzielne sesje tmux jednocześnie - jedną dla ciebie, a drugą dla drugiego użytkownika. Następnie użyj systemu okienkowego swojego systemu operacyjnego, aby ustawić dwa terminale obok siebie, jeden dla ciebie, a drugi dla niego. Jeśli chcesz pisać w jego terminalu, po prostu wybierz go do wprowadzania.

Uruchomisz (każde polecenie we własnym terminalu):

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

A następnie Bob uruchamia (ponownie, każde polecenie we własnym terminalu):

tmux attach -t Alice
tmux attach -t Bob

Jeśli nie masz systemu okien, który obsługuje wyświetlanie obok siebie lub nienawidzisz myszy, możesz (ostrożnie) skonfigurować to w nieudostępnionej sesji otoku / tmuxa.


Dzięki, ale potrzebowałem tego w środowisku serwerowym, więc nie ma okien (my mieliśmy problemy z działaniem serwerów)
ferhtgoldaraz

1
@ferhtgoldaraz: możesz po prostu użyć podzielonej sesji tmux, aby zawrzeć dwie podsesje!
Ashe

@Yuki: Interesujące, przyjrzę się temu
ferhtgoldaraz

@Ashe Co rozumiesz przez podzieloną sesję Tmux i dwie podsesje? Czy możesz opracować proszę?
elquimista

@elquimista witam ponad 4 lata temu! Miałem na myśli uruchomienie tmux, następnie podzielenie okna na dwa panele (np. Z ctrl-b% lub ctrl-b "), następnie uruchom tmux (ponownie) w każdym okienku, dzieląc sesje zgodnie z sugestią w odpowiedzi
Ashe
Korzystając z naszej strony potwierdzasz, że przeczytałeś(-aś) i rozumiesz nasze zasady używania plików cookie i zasady ochrony prywatności.
Licensed under cc by-sa 3.0 with attribution required.