रोजमर्रा की जरूरतों के लिए टैमिंग टक्स

हम में से प्रत्येक अपने लिए सबसे सुविधाजनक विकास वातावरण चुनता है। कई लोग एक अलग आईडीई, कई खुले कंसोल, एक अलग ब्राउज़र और कई अन्य तृतीय-पक्ष टूल का उपयोग करते हैं। मैं सिद्धांत का पालन करता हूं - सब कुछ नकल और केवल विन्यास योग्य होना चाहिए। Tmux आपको प्रोग्रामर के लिए बहुत सुविधाजनक कार्य वातावरण बनाने की अनुमति देता है।


बेशक, आपको यहां तक ​​कि अच्छे के लिए उपयोग करने की आवश्यकता है, मुझे व्यक्तिगत रूप से Tmux के अनुकूल होने में कुछ दिन लगे, जिसके बाद मैंने अपनी उत्पादकता बढ़ाने के लिए पहले से ही विन्यास बदलना शुरू कर दिया। छह महीने बाद, मैं कल्पना नहीं कर सकता कि आप इसके बिना कैसे काम कर सकते हैं।
यदि आप रुचि रखते हैं कि आप सामान्य कंसोल को कैसे बदल सकते हैं, तो इसे सामान्य विंडो प्रबंधक के समान कुछ में बदल दें, फिर बिल्ली का स्वागत करें


क्यों जरूरी है?


सब कुछ ठीक है, आप आसानी से खुली खिड़कियों के एक गुच्छा के साथ काम कर सकते हैं, लेकिन ... यदि आप केवल स्थानीय मशीन पर काम करते हैं। और अगर आपको दूर से काम करने की आवश्यकता है? उदाहरण के लिए, आपको रिमोट सर्वर पर इंस्टॉल किए गए थर्ड-पार्टी सॉफ़्टवेयर के साथ कोड में इंटरैक्ट करना होगा, जिसकी कार्यक्षमता स्थानीय मशीन पर अनुकरण करना संभव नहीं है। या जब हाथ में सिर्फ एक टर्मिनल होता है, लेकिन कोई विकास उपकरण और स्थापना अधिकार नहीं होते हैं।
आप ग्राफिकल टर्मिनलों का उपयोग कर सकते हैं और एक्स-सर्वर को आगे बढ़ा सकते हैं। लेकिन कोई भी इंटरनेट कनेक्शन की गुणवत्ता की गारंटी नहीं दे सकता है। और अगर पहले हमने डायल-अप मोडेम के साथ लड़ाई की थी, तो आज, शहर के केंद्र से थोड़ा आगे चलने के बाद, हम 3 जी मोडेम के साथ लड़ेंगे। मैं क्या कह सकता हूं, और वायर्ड इंटरनेट एक शांत नौकरी नहीं देगा, अगर आप 8 से अधिक Mbitps का चैनल नहीं लेते हैं, और कानूनी संस्थाओं के लिए यह काफी महंगा आनंद है।

टर्मिनल मल्टीप्लेक्सर्स


लिनक्स के साथ काम करते समय, हम सबसे पहले अपने पसंदीदा टर्मिनल को खोलते हैं, यह कोनसोल, सूक्ति-टर्मिनल, urxvt या कुछ और। और हर कोई इस टर्मिनल में इस उद्देश्य के लिए टैब का एक गुच्छा रखने के लिए उपयोग किया जाता है। लेकिन एक SSH सत्र में दूरस्थ होस्ट के साथ, यह संभव नहीं है। बेशक, आप स्थानीय मशीन पर एसएसएच कनेक्शन का एक गुच्छा खोल सकते हैं। और पोटीन विंडो स्विच करें, लेकिन यह मुझे बहुत सुविधाजनक नहीं लगता है। इनमें से एक कारण के लिए, टर्मिनल मल्टीप्लेक्सर्स का आविष्कार किया गया था।
यह विचार सरल है - रिमोट मशीन पर टैब के साथ एक पूर्ण टर्मिनल का कुछ अंश लॉन्च किया गया है। खैर, के रूप में कुछ अतिरिक्त विशेषताएं हैं, उदाहरण के लिए, एक आंतरिक क्लिपबोर्ड।
अनुभवी सिस्टम प्रशासकों ने कम से कम एक बार GNU स्क्रीन का उपयोग किया होगा। यह बहुत सहज सेटिंग्स के कारण बहुत सुविधाजनक नहीं है। एक नया समाधान Tmux है। इसकी अधिक कार्यक्षमता है, कॉन्फ़िगर करना आसान है। इस मल्टीप्लेक्स के उपयोग पर चर्चा की जाएगी।

Tmux सुविधाएँ


तुरंत मैं एक ऐसी छवि प्रदान करूँगा जो स्पष्ट रूप से दिखाता है कि Django प्रोजेक्ट को विकसित करते समय आपका कंसोल कैसा दिख सकता है।
"
Django के लिए चित्रा 1 Tmux उदाहरण
अच्छा दृश्य। एक स्क्रीन पर, IPython की "विंडो", एक टेक्स्ट एडिटर और एक रनिंग डेवलपमेंट सर्वर प्रदर्शित होते हैं। और अधिक दिलचस्प बात यह है कि सभी प्रमुख संयोजनों को स्वयं के लिए पुन: कॉन्फ़िगर किया जा सकता है।

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

Tmux डेवलपर को विस्मयकारी टाइल विंडो मैनेजर से काफी प्रभावित बताया जाता है। यदि कोई इस शेल से परिचित है, तो यह जल्दी से अंदर जाएगा।
GNU स्क्रीन के विपरीत, Tmux कंसोल मल्टीप्लेक्स बड़ी संख्या में आंतरिक कमांड का समर्थन करता है, जिस पर आप हॉट कॉम्बिनेशन लटका सकते हैं।

Tmux शब्दावली में निम्नलिखित तत्व हैं:



अंजीर। Tmux विंडो के मुख्य तत्वों का 2 पदनाम

"विंडोज़" / "सेल" के बीच की प्रतिलिपि मोड विशेष ध्यान देने योग्य है। Tmux दो कॉपी / पेस्ट मोड - Vim या Emacs का समर्थन करता है। मेरे पास विम है।
मान लें कि आपको पाठ का एक टुकड़ा चुनने और इसे दूसरे टर्मिनल पर कॉपी करने की आवश्यकता है। यहाँ इस समस्या का हल है:

यह कठोर दिखता है, लेकिन अगर आप एक दो बार करने की कोशिश करते हैं, तो सब कुछ सरल हो जाता है।

अनुकूलन


सभी कंसोल मल्टीप्लेक्सर्स को निम्न सिद्धांत के अनुसार नियंत्रित किया जाता है: कुछ एस्केप कैरेक्टर को दबाया जाता है, इसके बाद वर्णों का एक क्रम होता है जो फ़ंक्शन के किसी भी फ़ंक्शन के लिए जिम्मेदार होते हैं। Tmux में डिफ़ॉल्ट एस्केप अनुक्रम Ctrl-B है (GNU स्क्रीन Ctrl-A में)। व्यक्तिगत रूप से, मैंने इसे चरित्र में बदल दिया `(पीछे बोली)। यह मुझे सुविधाजनक लगा, यह देखते हुए कि मैं बहुत आत्मविश्वास से विम पाठ संपादक का उपयोग करता हूं।

इस तरह वितरण में डेबियन की तरह वितरण:
apt-get install tmux
$ HOME / .tmux.conf कॉन्फ़िगरेशन फ़ाइल
मुख्य कार्य कुंजी संयोजनों को Google tmux कुंजियों में केवल अनुरोध पर पाया जा सकता है। मैं थोड़ा मुड़ गया हूं:

मेरा tmux.conf अनुप्रयोगों में पाया जा सकता है।
टर्मिनल में रंगों पर कुछ ध्यान दिया जाना चाहिए। मैनुअल दृढ़ता से Tuxux के अंदर $ TERM पर्यावरण चर के लिए स्क्रीन-256color या स्क्रीन-256color-bce मान का उपयोग करने की जोरदार सिफारिश करता है। Tmux के बाहर, इस मूल्य का उपयोग करना भी बेहतर है। मैंने व्यक्तिगत रूप से अपने बशके में उर्फ ​​बनाया।
उर्फ tmux = "TERM = स्क्रीन -255 kcolor tux"

क्षुधा


1. मेरी tmux.conf
सेट-विंडो-विकल्प -g मोड-कुंजियाँ vi
सेट-विकल्प -g स्थिति-कुंजियाँ vi
set-window-option -g utf8 on
सेट-विंडो-विकल्प -g मोड-माउस बंद

सेट-विकल्प -g सेट-शीर्षक पर
सेट-ऑप्शन -g सेट-टाइटल-स्ट्रिंग '#S: # I. # P #W' # विंडो नंबर, प्रोग्राम का नाम, सक्रिय (या)
सेट-विंडो-विकल्प -g स्वचालित-नाम बदलें

सेट-विंडो-विकल्प -g मोड-बीजी मैजेंटा
सेट-विंडो-ऑप्शन -g मोड-एफजी ब्लैक
सेट-ऑप्शन -g संदेश-बीजी मैजेंटा
सेट-ऑप्शन -g संदेश-एफजी ब्लैक

सेट-जी दृश्य-गतिविधि बंद
सेट-जी दृश्य-घंटी बंद
set -g base-index १

set-option -g status-utf8 on
सेट-ऑप्शन -g स्टेटस-जस्टिफाई लेफ्ट
सेट-ऑप्शन -g स्टेटस-बीजी ब्लैक
सेट-ऑप्शन -g स्टेटस-एफजी सियान
set-option -g स्थिति-अंतराल 5

सेट-ऑप्शन -g स्टेटस-राइट-लेंथ 30
सेट-ऑप्शन -g स्टेटस-राइट '# [fg = magenta] "# [fg = ब्लू, बोल्ड] # टी # # डिफॉल्ट]'
# सेट-ऑप्शन -g स्टेटस-लेफ्ट '# [fg = cyan] »» # [fg = ब्लू, बोल्ड] ### S # [fg = magenta]% R% m-% d # (acpi | cut -d) , '-f 2) # [डिफ़ॉल्ट]'
# सेट-ऑप्शन -g स्टेटस-लेफ्ट '# [fg = cyan] »» # [fg = ब्लू, बोल्ड] ### S # [fg = magenta]% R% m-% d # (acpi | cut -d) , '-f 2) # [डिफ़ॉल्ट]'
सेट-ऑप्शन -g विज़ुअल-एक्टिविटी ऑन
सेट-विंडो-ऑप्शन -g मॉनिटर-एक्टिविटी ऑन
set-window-option -g window-status-current-fg color154
set-window-option -g window-status-fg colour243

सेट-विंडो-विकल्प -g घड़ी-मोड-रंग सियान
सेट-विंडो-विकल्प -g घड़ी-मोड-शैली 24

सेट-जी टर्मिनल-ओवरराइड्स 'xterm *: smcup @: rmcup @'
set -s एस्केप-टाइम १
सेट-डिफॉल्ट टर्मिनल "स्क्रीन -255 kcolor"

सेट -g उपसर्ग `
बाँध `भेजना-उपसर्ग
बाइंड-की `लास्ट-विंडो
अनबाइंड%
'' ''
अनबंड एक्स
unbind सह
unbind k
अनबिंड जे
निर्विघ्न ज
निर्विघ्न l

बाइंड-की H स्प्लिट-विंडो -एच
bind-key V विभाजन-खिड़की -v
bind-key a send-keys `
बाइंड-की X किल-पेन
bind-key K पुष्टिकरण-किल-विंडो से पहले
bind-key N रोटेट-विंडो -U
बाइंड-की पी पी-विंडो-डी

bind-key j select-pane -D
bind-key k select-pane -U
bind-key h select-pane -L
bind-key l select-pane -R

bind-key एफ स्वैप-फलक -U
बाइंड-की D स्वैप-पेन -D


2. मेरी स्क्रीन आर्क
startup_message बंद करें
बचाव करनेवाला
defscrollback 10240
ऑटोडेटाच पर
बंद करना
termcapinfo xterm | xterms | xs | rxvt ti @: te @
बचो `ई
ऑनस्क्रीन
ऑटोडेटाच पर
कैप्शन हमेशा "% {= 45}% {+ bw} स्क्रीन:% n |% h% =% t% c"
# भारोत्तोलन हमेशा की तरह "% -Lw% {= BW}% 50>% n% f *% t% {-}% + Lw% <"
हार्डस्टैटस ऑलस्टेलाइन
हार्डस्टैटस स्ट्रिंग '% {= kG}% {= kw}%?% - Lw%?% {r} (% {W}% n *% f% t%?? (% u)%?% {r})%? {w}%?% + Lw%?%?% =% {g} ’


कुछ तथ्य-खोज लिंक


1. आधिकारिक आदमी tmux ;
2. विकी पर टक्स ;
3. विकि पर GNU स्क्रीन

Source: https://habr.com/ru/post/In165437/


All Articles