tmux: साझा सत्र, एक फलक में एक उपयोगकर्ता, दूसरे फलक में एक, दो अलग-अलग कर्सर


17

मैंने tmux को आज़माने का फैसला किया है: डॉक्स पढ़ रहा है और चारों ओर गुगली कर रहा है, एक सत्र को साझा करने वाले दो उपयोगकर्ताओं को एक तरीका खोजने की कोशिश कर रहा है, प्रत्येक एक अलग कर्सर के साथ।

हालाँकि, सॉकेट को 777 परमिशन देना, या एक ग्रुप बनाना, chgrpसॉकेट को इंगेज करना और दोनों यूजर्स को इसमें जोड़ना, लगता है कि एक ही सॉकेट का उपयोग केवल एक कर्सर के साथ एक सत्र को साझा करने के लिए किया जाएगा: दोनों उपयोगकर्ता लिख ​​सकते हैं, लेकिन हमेशा एक ही कर्सर की स्थिति।

अभी दोनों उपयोगकर्ता ssh पर एक ही होम सर्वर में हैं, और यह विचार होना चाहिए:

  • A में एक टर्मिनल, मान लें कि बाएं फलक, जहां मैं कमांड टाइप कर सकता हूं
  • दाएं फलक में एक और टर्मिनल, जहां मैं अपने टर्मिनल में एक अन्य उपयोगकर्ता टाइपिंग कमांड देख सकता हूं
  • अन्य उपयोगकर्ता के लिए एक ही बात है

क्या मैं इस समय कर रहा हूँ दो सत्रों (साझा नहीं) और एक उपयोग कर रहा है script -fऔर tail -fहै कि थोड़े संयोजन दूसरे की कुंजी स्ट्रोक्स पढ़ने के लिए काम करता है, लेकिन मुझे लगता है वहाँ शायद tmux वितरण क्षमताओं का उपयोग कर ऐसा करने का कोई रास्ता नहीं है।

क्या इस विचार को एक दूसरे के टर्मिनल में लिखने के समर्थन के साथ काम करने का एक तरीका है?

ऐसा करने का बेहतर तरीका क्या है?



@ क्लीमेंट नं, जो दो उपयोगकर्ताओं को एक समान देखता है; अर्थात्, केवल एक कर्सर है, और या तो दोनों दाएँ फलक में हैं या दोनों बाएँ फलक में हैं। लेकिन वैसे भी धन्यवाद
ferhtgoldaraz

जवाबों:


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

4
यह दो उपयोगकर्ताओं को अलग-अलग विंडो में इनपुट करने की अनुमति देता है, लेकिन एक ही विंडो के भीतर अलग-अलग पैन नहीं। (tmux 1.6)
जागता है

2

आप एक साथ दो अलग-अलग tmux सत्र चलाने की कोशिश कर सकते हैं - एक आपके लिए, और दूसरा उपयोगकर्ता के लिए। फिर, अपने ओएस की विंडोिंग प्रणाली का उपयोग करके दो टर्मिनलों को एक-एक करके, आपके लिए एक और उसके लिए एक साथ व्यवस्थित करें। यदि आपको उसके टर्मिनल में लिखने की आवश्यकता है, तो बस इसे इनपुट के लिए चुनें।

आप चलाते हैं (प्रत्येक कमांड अपने स्वयं के टर्मिनल में):

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

और फिर बॉब चलाता है (फिर से, अपने स्वयं के टर्मिनल में प्रत्येक कमांड):

tmux attach -t Alice
tmux attach -t Bob

यदि आपके पास एक विंडोिंग सिस्टम नहीं है जो साइड-बाय-साइड डिस्प्ले का समर्थन करता है या आप माउस को घृणा करते हैं, तो आप इसे प्रत्येक (ध्यान से) एक अनशेड स्क्रीन / tmux आवरण सत्र में सेट कर सकते हैं।


धन्यवाद, लेकिन मुझे एक सर्वर वातावरण में इसकी आवश्यकता थी, इसलिए कोई विंडोज़ नहीं (हम सर्वर कैसे काम कर रहे हैं) के साथ गड़बड़ कर रहे थे
Ferhtgoldaraz

1
@ferhtgoldaraz: आप केवल दो उपसमूह शामिल करने के लिए एक विभाजन tmux सत्र का उपयोग कर सकते हैं!
ऐश

@ युकी: दिलचस्प है, मैं उस पर ध्यान
दूंगा

@ एशे स्प्लिट टमक्स सेशन और दो सबसेंशन से क्या मतलब है? क्या आप कृपया विस्तार से बता सकते हैं?
एलक्विमिस्टा

@elquimista हैलो से 4 साल पहले! मेरा मतलब था कि tmux को चलाना है, तो विंडो को दो पैन में विभाजित करें (जैसे ctrl-b% या ctrl-b "), फिर प्रत्येक फलक में tmux (फिर से) रन करें, उत्तर में सुझाए अनुसार सत्र साझा करें
Ashe
हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.