tmux: phiên chia sẻ, một người dùng trong một ngăn, một người khác trong một khung khác, hai con trỏ khác nhau


17

Tôi đã quyết định thử tmux: đã đọc các tài liệu và tìm hiểu xung quanh, cố gắng tìm cách để hai người dùng chia sẻ một phiên, mỗi người có một con trỏ khác nhau.

Tuy nhiên, việc cấp quyền 777 cho ổ cắm hoặc tạo nhóm, chgrpnhập ổ cắm và thêm cả hai người dùng vào ổ cắm đó dường như để cho cùng một ổ cắm được sử dụng để chia sẻ một phiên chỉ với một con trỏ: cả hai người dùng đều có thể viết, nhưng luôn ở trong cùng một vị trí con trỏ.

Ngay bây giờ cả hai người dùng đang ở trong cùng một máy chủ gia đình qua ssh và ý tưởng là có thể có:

  • Một thiết bị đầu cuối trong một, giả sử, khung bên trái, nơi tôi có thể nhập lệnh
  • Một thiết bị đầu cuối khác trong một khung bên phải, nơi tôi có thể thấy một người dùng khác gõ các lệnh trong thiết bị đầu cuối của chính mình
  • Điều tương tự cho người dùng khác

Những gì tôi đang làm hiện tại là sử dụng hai phiên (không chia sẻ) và kết hợp script -ftail -fhoạt động để đọc các nét chính của nhau, nhưng tôi nghĩ có lẽ có một số cách để thực hiện điều này bằng cách sử dụng khả năng chia sẻ tmux.

Có cách nào để làm cho ý tưởng này hoạt động với hỗ trợ ghi trong thiết bị đầu cuối của nhau không?

Cách tốt hơn để làm điều này là gì?



@clement Không, điều đó làm cho hai người dùng thấy giống hệt nhau; nghĩa là, chỉ có một con trỏ và cả hai đều ở khung bên phải hoặc cả hai đều ở khung bên trái. Nhưng dù sao cũng cảm ơn
ferhtgoldaraz

Câu trả lời:


20

Câu hỏi này hơi cũ, nhưng tôi đã tìm kiếm một cái gì đó tương tự, và tìm thấy nó ở đây . Nó tạo ra một phiên thứ hai chia sẻ các cửa sổ với phiên thứ nhất, nhưng có chế độ xem và con trỏ riêng.

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

Nếu việc chia sẻ đang diễn ra giữa hai tài khoản người dùng, bạn vẫn có thể phải gặp rắc rối với các quyền (có vẻ như bạn đã làm việc rồi).

Chỉnh sửa: Theo đề xuất, một trích dẫn từ một câu trả lời khác :

Đầu tiên, thêm một nhóm cho người dùng tmux

export TMUX_GROUP=tmux
addgroup $TMUX_GROUP

Tạo một thư mục với nhóm được đặt thành $ TMUX_GROUP và sử dụng bit setgid để các tệp được tạo trong thư mục tự động đặt nhóm thành $ TMUX_GROUP.

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

Tiếp theo, đảm bảo người dùng muốn chia sẻ phiên là thành viên của $ TMUX_GROUP

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

Chào mừng đến với * nix.SE! Đây là một câu trả lời đầu tiên khá hay, mặc dù tôi khuyên bạn nên xem xét thêm một số bit hữu ích nhất từ ​​hai liên kết thứ hai trong dòng (để giúp tránh thối liên kết). :)
HalosGhost

4
Điều này cho phép hai người dùng nhập vào các cửa sổ khác nhau, nhưng không phải các khung khác nhau trong cùng một cửa sổ. (tmux 1.6)
đánh thức

2

Bạn có thể thử chạy hai phiên tmux riêng biệt cùng một lúc - một cho bạn và thứ hai cho người dùng khác. Sau đó, sử dụng hệ thống cửa sổ của hệ điều hành của bạn để sắp xếp hai thiết bị đầu cuối cạnh nhau, một cho bạn và một cho anh ấy. Nếu bạn cần viết vào terminal của anh ấy, chỉ cần chọn nó cho đầu vào.

Bạn chạy (mỗi lệnh trong thiết bị đầu cuối của chính nó):

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

Và sau đó Bob chạy (một lần nữa, mỗi lệnh trong thiết bị đầu cuối của chính nó):

tmux attach -t Alice
tmux attach -t Bob

Nếu bạn không có hệ thống cửa sổ hỗ trợ hiển thị cạnh nhau hoặc bạn không dùng chuột, bạn có thể (mỗi) cẩn thận thiết lập tính năng này trong phiên bao bọc màn hình / tmux không chia sẻ.


Cảm ơn, nhưng tôi cần điều này trong môi trường máy chủ, vì vậy không có cửa sổ (chúng tôi đang rối tung với cách thức hoạt động của máy chủ)
ferhtgoldaraz

1
@ferhtgoldaraz: bạn chỉ có thể sử dụng phiên chia tmux để chứa hai phần phụ!
Ashe

@Yuki: Thật thú vị, tôi sẽ xem xét điều đó
ferhtgoldaraz

@Ashe Ý bạn là gì khi chia phiên tmux và hai phần phụ? Bạn có thể giải thích?
elquimista

@elquimista xin chào từ hơn 4 năm trước! Ý tôi là chạy tmux, sau đó chia cửa sổ thành hai khung (ví dụ với ctrl-b% hoặc ctrl-b "), sau đó chạy tmux (một lần nữa) trong mỗi khung, chia sẻ các phiên như được đề xuất trong câu trả lời.
Ashe
Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.