tmux बनाम GNU स्क्रीन [बंद]


194

प्रश्नों के माध्यम से ब्राउज़ करना मुझे tmux के बारे में मिला (मैंने सामान्य रूप से जीएनयू स्क्रीन का उपयोग किया था)। मेरा सवाल यह है कि उनमें से प्रत्येक के पेशेवरों और विपक्ष क्या हैं। विशेष रूप से मैं tmux के बारे में बहुत कुछ नहीं पा सका।



5
जैसा कि आप नीचे दिए गए अच्छे उत्तरों से देख सकते हैं, वे राय आधारित नहीं हैं ।
रीस्टोरियरपोस्ट

@reinierpost - ऐसा लगता है कि यहां बहुत से लोग "मुख्य रूप से राय-आधारित" के रूप में सवालों को बंद करने के लिए बहुत जल्दी हैं। हालांकि, हम फिर से खोलने के लिए मतदान कर सकते हैं।
MountainX

हालाँकि यह प्रश्न एक तुलनात्मक प्रश्न है, लेकिन मुझे लगता है कि प्रो और गर्भनिरोधक तर्क पर्याप्त उद्देश्य हैं और इस तरह से निकटता की राय यहाँ ठीक नहीं है। आप लिंक किए गए एसयू प्रश्न की जांच कर सकते हैं, उत्तर बहुत ठीक हैं।
पेटेर

जवाबों:


122

से अपनी वेबसाइट :

  • GNU स्क्रीन से tmux कैसे अलग है? यह और क्या प्रदान करता है?

tmux स्क्रीन पर कई फायदे प्रदान करता है:

  • एक स्पष्ट रूप से परिभाषित क्लाइंट-सर्वर मॉडल: विंडोज़ स्वतंत्र इकाइयाँ हैं जो एक साथ कई सत्रों से जुड़ी हो सकती हैं और कई ग्राहकों (टर्मिनलों) से देखी जा सकती हैं, साथ ही साथ एक ही tmux सर्वर के भीतर सत्रों के बीच स्वतंत्र रूप से स्थानांतरित की जाती हैं;
  • एक सुसंगत, अच्छी तरह से प्रलेखित कमांड इंटरफ़ेस, एक ही सिंटैक्स के साथ, चाहे वह अंतःक्रियात्मक रूप से उपयोग किया जाए, एक कुंजी बंधन के रूप में, या शेल से;
  • शेल से आसानी से स्क्रिप्ट करने योग्य;
  • कई पेस्ट बफ़र्स;
  • vi या इमैक की कुंजी लेआउट;
  • खिड़की के आकार को सीमित करने का एक विकल्प;
  • एक विशिष्ट कमांड के आउटपुट की पहली पंक्ति को प्रदर्शित करने की क्षमता के साथ एक अधिक प्रयोग करने योग्य स्थिति रेखा सिंटैक्स;
  • एक क्लीनर, आधुनिक, आसानी से विस्तारित, बीएसडी-लाइसेंस प्राप्त कोडबेस।

अभी भी कुछ सुविधाएँ स्क्रीन शामिल हैं जिसमें tmux को छोड़ दिया गया है:

  • बिलिन धारावाहिक और टेलनेट समर्थन; यह ब्लोट है और tmux में जोड़े जाने की संभावना नहीं है;
  • व्यापक मंच समर्थन, उदाहरण के लिए IRIX और HP-UX, और विषम टर्मिनलों के लिए।

4
लानत है ... अब मैं tmux कोशिश करना चाहता हूँ ... सिर्फ इसलिए कि स्क्रीन मेरे लिए कारगर नहीं थी क्योंकि vi कीबाइंडिंग की कमी ओ.टी.
xenoterracide

1
क्या vi या इमैक कीबाइंडिंग का अर्थ है कि tmux में चूक के दो सुविधाजनक सेट हैं? इसकी आरसी फ़ाइल के साथ स्क्रीन की कीबाइंडिंग को पूरी तरह से कॉन्फ़िगर करना संभव है।
jw013

आप मनमानी कुंजी बाइंडिंग को परिभाषित कर सकते हैं। देखें: openbsd.org/cgi-bin/…
nisc

जब वे लागू करने के बारे में बोलते हैं, वे अंत में बेवकूफ बग के साथ हल करना चाहिए <C-Left>में vimमें tmux
यो '

45

एक अंतर यह है कि जब एक ही सत्र में कई टर्मिनल संलग्न होते हैं तो दोनों कैसे कार्य करते हैं।

स्क्रीन के साथ, प्रत्येक संलग्न टर्मिनल का दृश्य दूसरों से स्वतंत्र है। Tmux के साथ, सभी संलग्न टर्मिनलों को एक ही चीज़ दिखाई देती है।

मान लें कि आपके पास एक एकल सत्र सत्र से जुड़े दो टर्मिनल हैं। यदि आप ^B1 टर्मिनल में टाइप करते हैं, तो दूसरा टर्मिनल भी विंडो 1 पर स्विच करता है।

जब आपके पास एक सिंगल स्क्रीन सत्र से जुड़े दो टर्मिनल होते हैं, और आप ^A1 को एक में टाइप करते हैं, तो इसका दूसरे टर्मिनल पर कोई प्रभाव नहीं पड़ता है।

यह tmux 1.2 के साथ मेरे अनुभव पर आधारित है; मुझे लगता है कि 1.3 बाहर है, लेकिन मैंने इस बदलाव के बारे में चैंज में कुछ भी नोटिस नहीं किया।

यदि आप स्क्रीन व्यवहार पसंद करते हैं और इसे tmux में चाहते हैं:

यदि आपके मूल tmux सत्र को 0(डिफ़ॉल्ट) कहा जाता है , तो आप tmux new-session -t 0एक ही स्वतंत्र विंडो से जुड़े एक नए स्वतंत्र सत्र को शुरू करने के लिए कर सकते हैं , जो तब अपना स्वयं का दृश्य हो सकता है।


1
यह एक दिलचस्प अंतर है। मुझे यकीन है कि इनमें से प्रत्येक के अलग-अलग उपयोग मामलों के लिए फायदे हैं। (tmux लाभ: दूरस्थ युग्म प्रोग्रामिंग के लिए एक ही tmux सत्र से जुड़े दो लोग हमेशा एक ही चीज़ देखेंगे; स्क्रीन लाभ: दो अलग-अलग उद्देश्यों के लिए एक ही स्क्रीन से दो स्थानों पर एक ही व्यक्ति से जुड़े दो अलग-अलग विचार हो सकते हैं, एक साथ (साथ में) , कहना, अगल-बगल (OS / windowmanager-level) विंडोज़।)
lindes

10
यदि आपके मूल tmux सत्र को "0" (डिफ़ॉल्ट) कहा जाता है, तो आप "tmux new-session -t 0") कर सकते हैं, एक ही विंडो से जुड़े एक नए स्वतंत्र सत्र को शुरू करने के लिए, जो तब अपना हो सकता है राय। मुझे पूरा यकीन है कि इसने 1.2 / 1.3 में वापस काम किया, लेकिन मैं अपमानित नहीं कर सकता।
कॉस

@ यह वही टिप है जिसके लिए मैं देख रहा था। बहुत बहुत धन्यवाद। मेरी इच्छा है कि मैं आपको दो बार वोट दे सकूं :) मैं अब हर बार 'tmux new-session -t 0' के साथ रीटेटिंग शुरू करूंगा।
jrwren

@ कैस यह "FROM 1.0 TO 1.1, 05 नवंबर 2009" जोड़ा गया था। @jrwren कमांड को छोटा किया जा सकता है tmux new -t 0
user285259

24

GNU स्क्रीन की तुलना में tmux काफी नया है। लाभ / नुकसान एक कठिन प्रश्न है, क्योंकि दोनों कार्यक्रम लगभग एक ही समस्या को हल करते हैं। tmux BSD लाइसेंस प्राप्त है जबकि स्क्रीन GNU GPL है। यह कुछ लोगों के लिए मायने रखता है।

स्क्रीन इस समय (लिनक्स पर) अधिक प्रतिनिधित्व करता है, अर्थात, आप इसे दिए गए लिनक्स बॉक्स पर tmux की तुलना में अधिक पाएंगे। tmux को OpenBSD पर अधिक दर्शाया गया है क्योंकि यह बेस इंस्टॉल के हिस्से के रूप में शामिल है।

दोनों कार्यक्रम आपको एक ही चीज़ के बारे में करने की अनुमति देते हैं, हालांकि चीजों की स्थिति उससे कुछ अधिक जटिल है। दोनों के बीच स्विच करना अत्यधिक जटिल नहीं है, क्योंकि स्क्रीन की कार्यक्षमता में भी काफी सुधार हुआ है, हालांकि यदि आप दोनों में से किसी एक के उपयोगकर्ता हैं, तो आपको दूसरे पर स्विच करते समय कुछ निराशाएँ देखने को मिलेंगी।

किसी भी कार्यक्रम के साथ, यह वास्तव में आपकी आवश्यकताओं पर निर्भर करता है, और जिसके साथ आप अधिक सहज हैं। उन दोनों को एक कोशिश दें और देखें कि आप किसके साथ खेलते हैं।

Tmux पर अधिक जानकारी के लिए https://tmux.github.io/ देखें


17

मेरे उपयोग में सबसे बड़ा अंतर यह आया है कि ग्नू स्क्रीन में आप केवल फ्रेम को क्षैतिज रूप से विभाजित कर सकते हैं, जबकि Tmux में आप क्षैतिज और लंबवत रूप से विभाजित कर सकते हैं। यह एक तरह से चलती लक्ष्य है, हालांकि जैसा कि मैं यहाँ बताता हूं कि ऊर्ध्वाधर विभाजन स्क्रीन में रास्ता बना रहा है

अन्य तो यह है कि, चीजें फ्लैट के बारे में हैं।


10
आप स्क्रीन में लंबवत रूप से विभाजित कर सकते हैं। mmm ... ऐसा नहीं है कि यह डिफ़ॉल्ट उबंटू 10.10 स्क्रीन इंस्टॉल में काम करता है।
22

4
@andre स्क्रीन में वर्टिकल स्प्लिट के लिए एक लंबा स्टैंडिंग पैच है ... जिसे कभी अपस्ट्रीम में शामिल नहीं किया गया ... लेकिन मुझे यकीन है कि कई डिस्ट्रो ने इसे लागू किया है।
xenoterracide

17

मुझे लगा कि मैं byobuस्क्रीन के लिए उपलब्ध रैपर के बारे में बताऊंगा जो इसे बॉक्स के बाहर बहुत बेहतर बनाता है। मुझे नहीं पता कि क्या ऐसा कुछ tmux के लिए उपलब्ध है, लेकिन byobuमेरी .screenrc केवल कुछ मुट्ठी भर लाइनों के लिए बनाई गई है। बायोबू और स्क्रीनशॉट के बारे में इस त्वरित लेख को देखेंबायोबू के प्रोजेक्ट पृष्ठ में सजावटी, बहु-पैनल स्क्रीन के लिए एक जापानी शब्द से उत्पन्न नाम का वर्णन है जो तह कमरे के डिवाइडर के रूप में काम करता है। इसके अलावा, बस इसे चलाने से आपकी स्क्रीन सेटिंग्स को नुकसान नहीं होता है, इसलिए आप इसे सुरक्षित रूप से आज़मा सकते हैं। एक बार जब आप सत्र शुरू byobuकर देते हैं तो आप इसका उपयोग करके इसे स्वतंत्र रूप से पुन: कनेक्ट कर सकते हैं screenऔर फिर भी इसके द्वारा किए गए किसी भी अनुकूलन को ढीला नहीं कर सकते byobu(इसलिए इसका उपयोग केवल प्रारंभिक मंगलाचरण के लिए करें)। इसके दो मुख्य लाभ हैं:

  • उपयोगी जानकारी के साथ स्थिति पट्टियों के एक जोड़े के साथ स्क्रीन शुरू करता है
  • स्क्रीन की कार्यक्षमता को आसान बनाने के लिए कई कीबाइंडिंग प्रदान करता है

मैं कीबाइंडिंग भाग का उपयोग नहीं कर रहा हूं, लेकिन निश्चित रूप से स्थिति पट्टियों को उपयोगी पाता हूं।

इसके अलावा, आप स्क्रीन बनाम tmux लिंक उपयोगी पा सकते हैं । मुझे लगता है कि इसका अधिकांश उल्लेख पहले से ही मौजूद उत्तरों द्वारा किया गया है।


यदि आप इसकी विशेषताओं को सारांशित करते हैं byobu, तो इसका उत्तर अधिक उपयोगी होगा , जैसे कि इसकी विशेषताओं की सूची के साथ यह उत्तर
गिल्स

ठीक है, मैंने अधिक जानकारी जोड़ दी है byobu, लेकिन यह कमांड चलाने और इसे अपने लिए खोजने के लिए उतना ही सरल है (यह मेनू संचालित है), क्योंकि यह आपकी मौजूदा स्क्रीन सेटिंग्स को गड़बड़ नहीं करता है। और मैंने अपना जवाब एक सामुदायिक विकि दिया, इसलिए इसे संपादित करने के लिए स्वतंत्र महसूस करें।
18

1
बायोबू वास्तव में tmux का समर्थन करता प्रतीत होता है, कम से कम हाल के संस्करणों में।
दारेल

12

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

tmux new-session -t <session name>

यह आपके लिए एक नया सत्र बनाएगा, और पहले से मौजूद सत्र से खिड़कियां संलग्न करेगा। यदि आपने अपने पहले सत्र का नाम नहीं दिया है, तो आप 'नाम-सत्र' के साथ एक जोड़ सकते हैं।


12

इसके लिए एक बड़ी screenबात यह है कि यह सक्रिय रूप से विकसित नहीं है। बग पृष्ठों करीब 200 अ-निरुपित आइटम 5 वर्षों में वापस जा रहा है।

tmux के रूप में अच्छी तरह से कुछ खुले मुद्दों है, लेकिन अभी तक कम है, और अधिक सक्रिय रूप से समर्थित है।


8

tmux नया है और कई अन्य विशेषताएं हैं।

मैंने पाया है कि अच्छा उपयोग अच्छे सेटअप पर निर्भर करता है।

मैं संपादन के लिए vi (vim) का उपयोग करता हूं (रेल पर रूबी) और उस काम को अच्छी तरह से करने के लिए कुछ सेटअप चीजें हैं।

यहाँ मेरा ~ / .tmux.conf फ़ाइल बहुत उपयोगी सेटिंग के साथ है:

bind r source-file ~/.tmux.conf \; display "Reloaded!"  # Reload with ctrl-r
set -g prefix C-a         # prefix from ctrl-b to ctrl-a
unbind C-b                # allow ctrl-b for other things
set -sg escape-time 1     # quicker responses
bind C-a send-prefix      # Pass on ctrl-a for other apps
set -g base-index 1        # Numbering of windows
setw -g pane-base-index 1  # Numbering of Panes
bind \ split-window -h    # Split panes horizontal
bind - split-window -v    # Split panes vertically
bind h select-pane -L     # Switch to Pane Left
bind j select-pane -D     # Switch to Pane Down
bind k select-pane -U     # Switch to Pane Up
bind l select-pane -R     # Switch to Pane Right
bind -r C-h select-window -t :-  # Quick Pane Selection
bind -r C-l select-window -t :+  # Quick Pane Selection
bind -r H resize-pane -L 5       # Switch to Pane Left
bind -r J resize-pane -D 5       # Switch to Pane Down
bind -r K resize-pane -U 5       # Switch to Pane Up
bind -r L resize-pane -R 5       # Switch to Pane Right
setw -g mode-mouse off           # Mouse Off
set -g mouse-select-pane off     # Mouse Off  
set -g mouse-resize-pane off     # Mouse Off
set -g mouse-select-window off   # Mouse Off
setw -g monitor-activity on      # Activity Alerts
set -g visual-activity on
set -g status-fg white           # Status line Colors
set -g status-bg black
setw -g window-status-fg cyan    # Window list color
setw -g window-status-bg default
setw -g window-status-attr dim
setw -g window-status-current-fg white     # Active Window Color
setw -g window-status-current-bg red
setw -g window-status-current-attr bright
set -g pane-border-fg green      # Pane colors
set -g pane-border-bg black 
set -g pane-active-border-fg white 
set -g pane-active-border-bg yellow
set -g message-fg white          # Command/Message Line.
set -g message-bg black
set -g message-attr bright
set -g status-left-length 40     # Status Line, left side
set -g status-left "#[fg=white]Session: #S #[fg=yellow]#I #[fg=cyan]#P"
set -g status-utf8 on            # Status Line, right side
set -g status-right "-------"
set -g status-interval 60        # frequency of status line updates
set -g status-justify centre     # center window list
setw -g mode-keys vi             # vi keys to move 
unbind v                         # Open panes in same directory as tmux-panes script
unbind n
bind v send-keys " ~/tmux-panes -h" C-m
bind n send-keys " ~/tmux-panes -v" C-m
unbind Up                        # Maximizing and Minimizing...
bind Up new-window -d -n tmp \; swap-pane -s tmp.1 \; select-window -t tmp
unbind Down
bind Down last-window \; swap-pane -s tmp.1 \; kill-window -t tmp
bind P pipe-pane -o "cat >>~/#W.log" \; display "Toggled logging to ~/#W.log"

Tmux नया है, लेकिन 'कई और विशेषताओं' का तात्पर्य यह है कि इसमें स्क्रीन के साथ कम से कम फ़ीचर समता है जो कि ऐसा नहीं है - व्हाट्सएप के अलावा कहीं और उल्लेख किया गया है, tmux के मल्टी यूज़र सपोर्ट की भारी कमी है। कोई भी ऐश या स्थिति नहीं है, और सामान्य तौर पर यह tmux के नएपन को दिखाता है कि आप जो कर सकते हैं वह बहुत पॉलिश नहीं है।
अर्ध

यह जानकर अच्छा लगा। अब मैं इसे एक वर्ष के लिए उपयोग कर रहा हूं और पॉलिश की कोई आवश्यकता नहीं है, हालांकि थोड़ी सी आयु मदद कर सकती है। संकेतन जो है। ठीक बुरा दंड;) पहले स्क्रीन का इस्तेमाल नहीं किया था, इसलिए यह उल्लेखित मुद्दों को ध्यान नहीं दे रहा था। अब स्क्रीन पर स्विच करना और नई सुविधाओं को खोना कठिन होगा।
माइकल डुरंट

8

मैं एक अंतर जोड़ने की स्वतंत्रता लूंगा:

tmux ncurses आधारित है जबकि स्क्रीन अतिरिक्त तत्व नहीं खींचती है। यदि कोई टर्मिनल एमुलेटर का उपयोग करता है जो स्क्रॉलिंग का समर्थन करता है तो उसे स्क्रीन के साथ स्क्रॉलिंग मिलेगी लेकिन tmux के साथ (कम से कम डिफ़ॉल्ट कॉन्फ़िगरेशन में)। यही बात खोज और समान सुविधाओं पर लागू होती है।


2
मैं स्क्रीन की तरह स्क्रॉल नहीं किया है ... कभी? : /
souser12345

हाँ मेरे TE स्क्रॉल का समर्थन करता है और स्क्रीन इसे तोड़ती है ... मुझे स्क्रीन के साथ स्क्रॉल करना होगा। -1 सटीक प्रतीत नहीं होता है।
xenoterracide

@xenoterracide: हम्म। आप आंशिक रूप से सही हैं। कुछ डिस्ट्रो / सिस्टम (पुराने Gentoo) पर स्क्रीन इसे (नए उबंटू) पर ब्रेक नहीं लगाती है। मुझे कोई जानकारी नहीं है की क्यों।
मैकिज पीचोटका

संभवतः एक पैच ... हमारे सभी 5.5 प्रतिशत सिस्टम हैं
xenoterracide

6

मुझे utf-8 और 256 रंगों के समर्थन के लिए स्क्रीन प्राप्त करने में परेशानी हुई, लेकिन tmux ने बॉक्स से बाहर काम किया।

हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.