प्रश्नों के माध्यम से ब्राउज़ करना मुझे tmux के बारे में मिला (मैंने सामान्य रूप से जीएनयू स्क्रीन का उपयोग किया था)। मेरा सवाल यह है कि उनमें से प्रत्येक के पेशेवरों और विपक्ष क्या हैं। विशेष रूप से मैं tmux के बारे में बहुत कुछ नहीं पा सका।
प्रश्नों के माध्यम से ब्राउज़ करना मुझे tmux के बारे में मिला (मैंने सामान्य रूप से जीएनयू स्क्रीन का उपयोग किया था)। मेरा सवाल यह है कि उनमें से प्रत्येक के पेशेवरों और विपक्ष क्या हैं। विशेष रूप से मैं tmux के बारे में बहुत कुछ नहीं पा सका।
जवाबों:
से अपनी वेबसाइट :
- GNU स्क्रीन से tmux कैसे अलग है? यह और क्या प्रदान करता है?
tmux स्क्रीन पर कई फायदे प्रदान करता है:
- एक स्पष्ट रूप से परिभाषित क्लाइंट-सर्वर मॉडल: विंडोज़ स्वतंत्र इकाइयाँ हैं जो एक साथ कई सत्रों से जुड़ी हो सकती हैं और कई ग्राहकों (टर्मिनलों) से देखी जा सकती हैं, साथ ही साथ एक ही tmux सर्वर के भीतर सत्रों के बीच स्वतंत्र रूप से स्थानांतरित की जाती हैं;
- एक सुसंगत, अच्छी तरह से प्रलेखित कमांड इंटरफ़ेस, एक ही सिंटैक्स के साथ, चाहे वह अंतःक्रियात्मक रूप से उपयोग किया जाए, एक कुंजी बंधन के रूप में, या शेल से;
- शेल से आसानी से स्क्रिप्ट करने योग्य;
- कई पेस्ट बफ़र्स;
- vi या इमैक की कुंजी लेआउट;
- खिड़की के आकार को सीमित करने का एक विकल्प;
- एक विशिष्ट कमांड के आउटपुट की पहली पंक्ति को प्रदर्शित करने की क्षमता के साथ एक अधिक प्रयोग करने योग्य स्थिति रेखा सिंटैक्स;
- एक क्लीनर, आधुनिक, आसानी से विस्तारित, बीएसडी-लाइसेंस प्राप्त कोडबेस।
अभी भी कुछ सुविधाएँ स्क्रीन शामिल हैं जिसमें tmux को छोड़ दिया गया है:
- बिलिन धारावाहिक और टेलनेट समर्थन; यह ब्लोट है और tmux में जोड़े जाने की संभावना नहीं है;
- व्यापक मंच समर्थन, उदाहरण के लिए IRIX और HP-UX, और विषम टर्मिनलों के लिए।
<C-Left>
में vim
में tmux
।
एक अंतर यह है कि जब एक ही सत्र में कई टर्मिनल संलग्न होते हैं तो दोनों कैसे कार्य करते हैं।
स्क्रीन के साथ, प्रत्येक संलग्न टर्मिनल का दृश्य दूसरों से स्वतंत्र है। Tmux के साथ, सभी संलग्न टर्मिनलों को एक ही चीज़ दिखाई देती है।
मान लें कि आपके पास एक एकल सत्र सत्र से जुड़े दो टर्मिनल हैं। यदि आप ^B1 टर्मिनल में टाइप करते हैं, तो दूसरा टर्मिनल भी विंडो 1 पर स्विच करता है।
जब आपके पास एक सिंगल स्क्रीन सत्र से जुड़े दो टर्मिनल होते हैं, और आप ^A1 को एक में टाइप करते हैं, तो इसका दूसरे टर्मिनल पर कोई प्रभाव नहीं पड़ता है।
यह tmux 1.2 के साथ मेरे अनुभव पर आधारित है; मुझे लगता है कि 1.3 बाहर है, लेकिन मैंने इस बदलाव के बारे में चैंज में कुछ भी नोटिस नहीं किया।
यदि आपके मूल tmux सत्र को 0
(डिफ़ॉल्ट) कहा जाता है , तो आप tmux new-session -t 0
एक ही स्वतंत्र विंडो से जुड़े एक नए स्वतंत्र सत्र को शुरू करने के लिए कर सकते हैं , जो तब अपना स्वयं का दृश्य हो सकता है।
tmux new -t 0
।
GNU स्क्रीन की तुलना में tmux काफी नया है। लाभ / नुकसान एक कठिन प्रश्न है, क्योंकि दोनों कार्यक्रम लगभग एक ही समस्या को हल करते हैं। tmux BSD लाइसेंस प्राप्त है जबकि स्क्रीन GNU GPL है। यह कुछ लोगों के लिए मायने रखता है।
स्क्रीन इस समय (लिनक्स पर) अधिक प्रतिनिधित्व करता है, अर्थात, आप इसे दिए गए लिनक्स बॉक्स पर tmux की तुलना में अधिक पाएंगे। tmux को OpenBSD पर अधिक दर्शाया गया है क्योंकि यह बेस इंस्टॉल के हिस्से के रूप में शामिल है।
दोनों कार्यक्रम आपको एक ही चीज़ के बारे में करने की अनुमति देते हैं, हालांकि चीजों की स्थिति उससे कुछ अधिक जटिल है। दोनों के बीच स्विच करना अत्यधिक जटिल नहीं है, क्योंकि स्क्रीन की कार्यक्षमता में भी काफी सुधार हुआ है, हालांकि यदि आप दोनों में से किसी एक के उपयोगकर्ता हैं, तो आपको दूसरे पर स्विच करते समय कुछ निराशाएँ देखने को मिलेंगी।
किसी भी कार्यक्रम के साथ, यह वास्तव में आपकी आवश्यकताओं पर निर्भर करता है, और जिसके साथ आप अधिक सहज हैं। उन दोनों को एक कोशिश दें और देखें कि आप किसके साथ खेलते हैं।
Tmux पर अधिक जानकारी के लिए https://tmux.github.io/ देखें
मेरे उपयोग में सबसे बड़ा अंतर यह आया है कि ग्नू स्क्रीन में आप केवल फ्रेम को क्षैतिज रूप से विभाजित कर सकते हैं, जबकि Tmux में आप क्षैतिज और लंबवत रूप से विभाजित कर सकते हैं। यह एक तरह से चलती लक्ष्य है, हालांकि जैसा कि मैं यहाँ बताता हूं कि ऊर्ध्वाधर विभाजन स्क्रीन में रास्ता बना रहा है ।
अन्य तो यह है कि, चीजें फ्लैट के बारे में हैं।
मुझे लगा कि मैं byobu
स्क्रीन के लिए उपलब्ध रैपर के बारे में बताऊंगा जो इसे बॉक्स के बाहर बहुत बेहतर बनाता है। मुझे नहीं पता कि क्या ऐसा कुछ tmux के लिए उपलब्ध है, लेकिन byobu
मेरी .screenrc केवल कुछ मुट्ठी भर लाइनों के लिए बनाई गई है। बायोबू और स्क्रीनशॉट के बारे में इस त्वरित लेख को देखें । बायोबू के प्रोजेक्ट पृष्ठ में सजावटी, बहु-पैनल स्क्रीन के लिए एक जापानी शब्द से उत्पन्न नाम का वर्णन है जो तह कमरे के डिवाइडर के रूप में काम करता है। इसके अलावा, बस इसे चलाने से आपकी स्क्रीन सेटिंग्स को नुकसान नहीं होता है, इसलिए आप इसे सुरक्षित रूप से आज़मा सकते हैं। एक बार जब आप सत्र शुरू byobu
कर देते हैं तो आप इसका उपयोग करके इसे स्वतंत्र रूप से पुन: कनेक्ट कर सकते हैं screen
और फिर भी इसके द्वारा किए गए किसी भी अनुकूलन को ढीला नहीं कर सकते byobu
(इसलिए इसका उपयोग केवल प्रारंभिक मंगलाचरण के लिए करें)। इसके दो मुख्य लाभ हैं:
मैं कीबाइंडिंग भाग का उपयोग नहीं कर रहा हूं, लेकिन निश्चित रूप से स्थिति पट्टियों को उपयोगी पाता हूं।
इसके अलावा, आप स्क्रीन बनाम tmux लिंक उपयोगी पा सकते हैं । मुझे लगता है कि इसका अधिकांश उल्लेख पहले से ही मौजूद उत्तरों द्वारा किया गया है।
byobu
, लेकिन यह कमांड चलाने और इसे अपने लिए खोजने के लिए उतना ही सरल है (यह मेनू संचालित है), क्योंकि यह आपकी मौजूदा स्क्रीन सेटिंग्स को गड़बड़ नहीं करता है। और मैंने अपना जवाब एक सामुदायिक विकि दिया, इसलिए इसे संपादित करने के लिए स्वतंत्र महसूस करें।
रिंच एक दिलचस्प बिंदु उठाता है - एक ही सत्र में दो बार कनेक्ट करने का डिफ़ॉल्ट व्यवहार tmux में अलग है। हालांकि, यदि आप दो बार संलग्न करना चाहते हैं और उस सत्र में खिड़कियों का एक स्वतंत्र दृष्टिकोण है - के साथ tmux शुरू करें
tmux new-session -t <session name>
यह आपके लिए एक नया सत्र बनाएगा, और पहले से मौजूद सत्र से खिड़कियां संलग्न करेगा। यदि आपने अपने पहले सत्र का नाम नहीं दिया है, तो आप 'नाम-सत्र' के साथ एक जोड़ सकते हैं।
इसके लिए एक बड़ी screen
बात यह है कि यह सक्रिय रूप से विकसित नहीं है। बग पृष्ठों करीब 200 अ-निरुपित आइटम 5 वर्षों में वापस जा रहा है।
tmux
के रूप में अच्छी तरह से कुछ खुले मुद्दों है, लेकिन अभी तक कम है, और अधिक सक्रिय रूप से समर्थित है।
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 ncurses आधारित है जबकि स्क्रीन अतिरिक्त तत्व नहीं खींचती है। यदि कोई टर्मिनल एमुलेटर का उपयोग करता है जो स्क्रॉलिंग का समर्थन करता है तो उसे स्क्रीन के साथ स्क्रॉलिंग मिलेगी लेकिन tmux के साथ (कम से कम डिफ़ॉल्ट कॉन्फ़िगरेशन में)। यही बात खोज और समान सुविधाओं पर लागू होती है।