कैसे अनुकूलित करें (और Colorize) आपका बैश प्रॉम्प्ट
अधिकांश लिनक्स वितरण कुछ ऐसा दिखने के लिए बैश प्रॉम्प्ट को कॉन्फ़िगर करते हैं उपयोगकर्ता नाम @ होस्टनाम: निर्देशिका $
. लेकिन आप जो कुछ भी चाहें उसमें शामिल करने के लिए बैश प्रॉम्प्ट को कॉन्फ़िगर कर सकते हैं और यहां तक कि आपको जो भी रंग पसंद हो उसे चुन सकते हैं.
यहाँ उदाहरण के चरणों Ubuntu 16.04 LTS पर प्रदर्शन किया गया। अन्य लिनक्स वितरण पर प्रक्रिया समान होनी चाहिए, हालांकि .bashrc फ़ाइल में डिफ़ॉल्ट बैश प्रॉम्प्ट और सेटिंग्स थोड़ी भिन्न हो सकती हैं।.
जहां प्रॉम्प्ट वेरिएबल स्टोर किया गया है
आपका बैश प्रॉम्प्ट कॉन्फ़िगरेशन आपके उपयोगकर्ता खाते की .bashrc फ़ाइल में संग्रहीत है, जो कि है ~ / .Bashrc
. इसलिए, यदि आपका उपयोगकर्ता नाम बॉब है, तो फ़ाइल चालू है /home/bob/.bashrc
.
आप वर्तमान बैश चर को देखने के लिए फ़ाइल खोल सकते हैं। हम नैनो का उपयोग हमारे उदाहरण टेक्स्ट एडिटर के रूप में करेंगे, हालाँकि आप vi, emacs, या किसी भी अन्य टेक्स्ट एडिटर का उपयोग कर सकते हैं, जिसके साथ आप सहज हैं। एक टर्मिनल खोलें और चलाएं:
नैनो ~ / .bashrc
नीचे स्क्रॉल करें PS1 =
अनुभाग। पहला चर बल्कि जटिल दिखता है क्योंकि इसमें रंग जानकारी शामिल है-हम बाद में समझाएंगे। दूसरा चर, बिना रंग जानकारी के, इस प्रकार है:
$ Debian_chroot: + ($ debian_chroot) \ यू @ \ h: \ w \ $
यह अभी भी थोड़ा जटिल है $ Debian_chroot: + ($ debian_chroot)
बिट्स। यदि आप देबिन चुरोट वातावरण का उपयोग कर रहे हैं और सामान्य रूप से नहीं दिखाए जाएंगे, तो ये बताएं कि बैश को बताएं। उन पर ध्यान न दें, यहां बैश प्रॉम्प्ट चर की डिफ़ॉल्ट संरचना है:
\ यू @ \ h: \ w \ $
\ यू
आपका उपयोगकर्ता नाम इंगित करता है, @
@ संकेत दर्शाता है, \ h
होस्टनाम (कंप्यूटर का नाम) इंगित करता है, :
इंगित करता है: चरित्र, \ w
कार्यशील निर्देशिका को इंगित करता है, और \ $
यदि आप एक सामान्य उपयोगकर्ता खाता हैं या # यदि आप रूट हैं तो एक $ दर्शाता है। तो, यह सब एक साथ, तुम जाओ उपयोगकर्ता नाम @ होस्टनाम: working_directory $
.
अपने बैश प्रॉम्प्ट को बदलने के लिए, आपको पीएस 1 चर में विशेष वर्णों को जोड़ना, हटाना या पुनर्व्यवस्थित करना होगा। लेकिन कई और चर हैं जो आप डिफ़ॉल्ट की तुलना में उपयोग कर सकते हैं.
अब-इन नैनो के लिए टेक्स्ट एडिटर को छोड़ दें, बाहर निकलने के लिए Ctrl + X दबाएं। हम आपको दिखाएंगे कि वास्तव में आपकी .bashrc फ़ाइल में एक नया लिखने से पहले चर के साथ प्रयोग कैसे करें.
एक कस्टम बैश प्रॉम्प्ट कैसे बनाएँ
आपका बैश प्रॉम्प्ट कॉन्फ़िगरेशन PS1 चर में संग्रहीत है। PS1 चर की सामग्री को नए चर में सहेजने के लिए, निम्न कमांड चलाएँ:
डिफ़ॉल्ट = $ PS1
अब आप प्रयोग करने के लिए विभिन्न मूल्यों के लिए PS1 चर सेट कर सकते हैं। उदाहरण के लिए, यहां पहली पंक्ति आपके प्रॉम्प्ट को एक बेसिक "यूजर $" प्रॉम्प्ट पर सेट करेगी, जबकि दूसरा आपके प्रॉम्प्ट को एक बेसिक "यूजर: वर्किंग_डायरेक्ट $" प्रॉम्प्ट पर सेट करेगा।.
PS1 = "\ u \" "PS1 =" \ u: \ w \ $ "
यदि आप कभी भी अपने डिफ़ॉल्ट प्रॉम्प्ट पर वापस जाना चाहते हैं, तो बस निम्नलिखित कमांड चलाएँ.
PS1 = $ डिफ़ॉल्ट
बैश को इसके डिफ़ॉल्ट प्रॉम्प्ट पर बहाल किया जाएगा, इस तथ्य के लिए धन्यवाद कि आपने पहले उन डिफ़ॉल्ट सेटिंग्स को सहेजा था। ध्यान दें कि आपके द्वारा यहां किए गए कोई भी परिवर्तन केवल वर्तमान बैश सत्र के लिए अस्थायी हैं, इसलिए आप हमेशा साइन आउट या साइन इन कर सकते हैं या अपने डिफ़ॉल्ट प्रॉम्प्ट पर वापस जाने के लिए टर्मिनल विंडो को फिर से खोल सकते हैं। लेकिन उपरोक्त लाइन विंडो को बंद करने या बंद करने की परेशानी के बिना आपके डिफ़ॉल्ट बैश प्रॉम्प्ट पर आसानी से वापस जाना संभव बनाती है.
आप चर में कोई भी वर्ण या पाठ जोड़ सकते हैं। इसलिए, "हैलो वर्ल्ड" के साथ डिफ़ॉल्ट प्रॉम्प्ट को प्रीफ़िक्स करने के लिए, आप उपयोग कर सकते हैं:
PS1 = "नमस्ते विश्व \ u @ \ h: \ w \ $"
अब जब आप मूल बातें नीचे ले आए हैं, तो आपको बस यह जानना होगा कि सभी विशेष वर्ण क्या हैं। आप शायद इनमें से कई के बारे में परवाह नहीं करेंगे, लेकिन यहाँ पूरी सूची है क्योंकि यह बाश मैनुअल में दिखाई देता है:
- एक घंटी चरित्र:
\ए
- दिनांक, "साप्ताहिक माह की तारीख" प्रारूप में (जैसे, "26 मई को"):
\ घ
- प्रारूप को स्ट्रैफ़टाइम (3) में पारित किया जाता है और परिणाम शीघ्र स्ट्रिंग में डाला जाता है; खाली प्रारूप के परिणामस्वरूप स्थानीय-विशिष्ट समय प्रतिनिधित्व होता है। ब्रेस आवश्यक हैं:
\ डी प्रारूप
- एक भागने चरित्र:
\ ई
- मेजबाननाम, पहले 'तक।':
\ h
- होस्टनाम:
\ एच
- वर्तमान में शेल द्वारा प्रबंधित नौकरियों की संख्या:
\ j
- शेल के टर्मिनल डिवाइस के नाम का आधार:
\ एल
- एक नई रूपरेखा:
\ n
- एक गाड़ी वापसी:
\ r
- शेल का नाम, $ 0 का आधार (अंतिम स्लैश के बाद का भाग):
\ रों
- समय, 24-घंटे में HH: MM: SS प्रारूप:
\ t
- समय, 12-घंटे में HH: MM: SS प्रारूप:
\ टी
- समय, 12-घंटे में / दोपहर प्रारूप:
\ @
- समय, 24-घंटे HH: MM प्रारूप में:
\ए
- वर्तमान उपयोगकर्ता का उपयोगकर्ता नाम:
\ यू
- बश का संस्करण (जैसे, 2.00):
\ v
- बैश की रिलीज़, संस्करण + पैचवेल (जैसे, 2.00.0):
\ वी
- वर्तमान होम वर्किंग डायरेक्टरी जिसमें $ होम एक संक्षिप्त रूप में है ($ PROMPT_DIRTRIM वैरिएबल का उपयोग करता है):
\ w
- $ PWD का बेसनेम $ टिल्ड के साथ संक्षिप्त रूप में है:
\ डब्ल्यू
- इस आदेश की इतिहास संख्या:
\!
- इस कमांड की कमांड संख्या:
\ #
- यदि प्रभावी यूआईडी 0, # है, अन्यथा $:
\ $
- वह वर्ण जिसका ASCII कोड ऑक्टल वैल्यू nnn है:
\ NNN
- एक बैकस्लैश:
\\
- गैर-मुद्रण वर्णों का एक क्रम शुरू करें। इसका उपयोग टर्मिनल नियंत्रण अनुक्रम को संकेत में एम्बेड करने के लिए किया जा सकता है:
\ [
- गैर-मुद्रण वर्णों का क्रम समाप्त करें:
\]
इसलिए, यदि आप अपने बैश प्रॉम्प्ट में तारीख और समय जोड़ना चाहते हैं और कार्य निर्देशिका को दूसरी पंक्ति में कमांड पर रखना चाहते हैं, तो आप निम्नलिखित निर्माण का उपयोग कर सकते हैं:
PS1 = "[\ d \ t] \ u @ \ h \ n \ w \ $"
यहाँ चौकोर कोष्ठक बिल्कुल आवश्यक नहीं हैं, लेकिन चीजों को नेत्रहीन रूप से तोड़ने और लाइन को पढ़ने में आसान बनाने में मदद करते हैं। जैसा कि हमने पहले कवर किया था, आप अपनी पसंद के चर में कोई भी पाठ या सामान्य वर्ण जोड़ सकते हैं, इसलिए जो भी आपके लिए काम करता है उसका उपयोग करने के लिए स्वतंत्र महसूस करें.
एक और शक्तिशाली ट्रिक है जिसके बारे में आपको पता होना चाहिए: आप प्रॉम्प्ट में किसी भी कमांड का आउटपुट जोड़ सकते हैं। जब भी संकेत दिखाई देता है, बैश कमांड चलाएगा और वर्तमान जानकारी भर देगा। ऐसा करने के लिए, बस दो के बीच कोई कमांड जोड़ना चाहते हैं '
वर्ण। यह एपोस्ट्रोफ नहीं है-यह गंभीर उच्चारण है, जो आपके कीबोर्ड पर टैब कुंजी के ऊपर दिखाई देता है.
उदाहरण के लिए, मान लें कि आप प्रॉम्प्ट में लिनक्स कर्नेल संस्करण देखना चाहते हैं। आप निम्नलिखित की तरह एक लाइन का उपयोग कर सकते हैं:
PS1 = "\ u @ \ h 'अनाम -s -r' \ w \ $" पर
एक अन्य उदाहरण के रूप में, मान लें कि आप सिस्टम के अपटाइम और लोड औसत को देखना चाहते हैं, जैसा कि प्रदर्शित होता है सक्रिय रहने की अवधि
आदेश। आप निम्नलिखित निर्माण का उपयोग कर सकते हैं, जो बाकी प्रॉम्प्ट से पहले अपटाइम को अपनी लाइन पर रखता है.
PS1 = "('अपटाइम') \ n \ u @ \ h: \ w $"
अपने आदर्श कमांड प्रॉम्प्ट को इकट्ठा करने के लिए विभिन्न विशेष वर्णों और आदेशों के साथ प्रयोग करने के लिए स्वतंत्र महसूस करें.
अपने बैश प्रॉम्प्ट में रंग कैसे जोड़ें
एक बार जब आप अपना पसंदीदा संकेत प्राप्त कर लेते हैं, तो आप इसमें रंग जोड़ सकते हैं। यह वास्तव में बहुत सरल है, लेकिन यदि आप समझ नहीं पा रहे हैं तो यह चर को भयानक रूप से गड़बड़ और जटिल बना देता है.
उदाहरण के लिए, पहले से डिफ़ॉल्ट रंग संकेत चर था:
$ Debian_chroot: + ($ debian_chroot) \ [\ 033 [01; 32m \] \ यू @ \ h \ [\ 033 [00m \]: \ [\ 033 [01; 34m \] \ w \ [\ 033 [00m \] \ $
या, एक बार फिर से debian_chroot बिट्स निकाल रहा है:
\ [\ 033 [01; 32m \] \ यू @ \ h \ [\ 033 [00m \]: \ [\ 033 [01; 34m \] \ w \ [\ 033 [00m \] \ $
यह वास्तव में सिर्फ है \ यू @ \ h: \ w $
पहले से चर, लेकिन रंग जानकारी के साथ। वास्तव में, हम इसे कुछ खंडों में तोड़ सकते हैं:
\ [\ 033 [01; 32m \]\ यू @ \ h \ [\ 033 [00m \]: \ [\ 033 [01; 34m \]\ w \ [\ 033 [00m \]\ $
पहला खंड है \ यू @ \ h
बिट, रंग जानकारी से पहले जो इसे हरा बनाता है। दूसरा है :
वर्ण, रंग की जानकारी से पहले जो किसी भी रंग को हटा देता है। तीसरा है \ w
बिट, रंग जानकारी से पहले जो इसे नीला कर देता है। चौथा है \ $
बिट, रंग जानकारी से पहले जो किसी भी रंग को हटा देता है.
एक बार जब आप समझ जाते हैं कि अपने खुद के रंग टैग का निर्माण कैसे किया जाता है, तो आप जो भी रंग पसंद करते हैं उसे जोड़ सकते हैं जो आपके बैश के कुछ वर्गों को आपको पसंद करते हैं.
यहाँ आपको क्या जानना है: आपको संपूर्ण रंग कोड जानकारी को बीच में शामिल करना चाहिए \ [
तथा \] चरित्र
रों। टैग के अंदर, आपको या तो शुरू करना चाहिए \ 033 [
या \ ई [
बैश को इंगित करने के लिए कि यह रंग जानकारी है। दोनों \ 033 [
तथा \ ई [
वहीं काम करें. \ ई [
कम है इसलिए उपयोग करने के लिए अधिक सुविधाजनक हो सकता है, लेकिन हम उपयोग करेंगे \ 033 [
यहाँ के रूप में यह मेल खाता है क्या डिफ़ॉल्ट रूप से प्रयोग किया जाता है। टैग के अंत में, आपको समाप्त होना चाहिए मीटर \
एक रंग टैग के अंत का संकेत करने के लिए.
इसे तोड़कर, यहां हर रंग टैग जैसा दिखेगा। वास्तविक रंग को परिभाषित करने के लिए केवल अंतर जो आप COLOR की जगह जोड़ते हैं वह है:
\ [\ 033 [रंगमीटर \]
बैश आपको अग्रभूमि पाठ का रंग बदलने की अनुमति देता है, पाठ में "बोल्ड" या "अंडरलाइन" और एक पृष्ठभूमि रंग जैसे गुण जोड़ें.
यहाँ अग्रभूमि पाठ के लिए मान दिए गए हैं:
- काला: 30
- नीला: 34
- सियान: 36
- हरा: ३२
- बैंगनी: 35
- लाल: ३१
- सफेद: 37
- पीला: 33
उदाहरण के लिए, चूंकि बैंगनी पाठ रंग कोड 32 है, आप उपयोग करेंगे \ [\ 033 [32मीटर \]
बैंगनी पाठ के लिए.
आप पाठ के लिए एक विशेषता भी निर्दिष्ट कर सकते हैं। इस विशेषता को रंग संख्या से पहले जोड़ा जाना चाहिए, जिसे अर्धविराम (;) द्वारा अलग किया गया है। इन विशेषताओं वाले टेक्स्ट अलग-अलग टर्मिनल एमुलेटर में अलग-अलग दिखेंगे.
यहां पाठ विशेषताओं के मान दिए गए हैं:
- सामान्य पाठ: ०
- बोल्ड या लाइट टेक्स्ट: 1 (यह टर्मिनल एमुलेटर पर निर्भर करता है।)
- मंद पाठ: २
- रेखांकित पाठ: ४
- ब्लिंकिंग टेक्स्ट: 5 (यह ज्यादातर टर्मिनल एमुलेटर में काम नहीं करता है।)
- उलटा पाठ: 7 (यह अग्रभूमि और पृष्ठभूमि के रंगों को सम्मिलित करता है, इसलिए यदि आप वर्तमान पाठ काले रंग की पृष्ठभूमि पर सफेद पाठ हैं, तो आपको सफेद पृष्ठभूमि पर काला पाठ दिखाई देगा।)
- छिपा हुआ पाठ::
आपको वास्तव में सामान्य पाठ विशेषता को शामिल करने की आवश्यकता नहीं है। वैसे भी यह डिफ़ॉल्ट है.
उदाहरण के लिए, चूंकि लाल पाठ 31 कोड है और बोल्ड पाठ कोड 1 है, आप उपयोग करेंगे \ [\ 033 [1; 31मीटर \]
बोल्ड रेड टेक्स्ट के लिए.
आप एक पृष्ठभूमि रंग भी निर्दिष्ट कर सकते हैं, लेकिन आप पृष्ठभूमि रंग में एक विशेषता नहीं जोड़ सकते.
यहाँ पृष्ठभूमि रंग के लिए मान हैं:
- काली पृष्ठभूमि: 40
- ब्लू बैकग्राउंड: 44
- सियान पृष्ठभूमि: ४६
- हरी पृष्ठभूमि: ४२
- बैंगनी पृष्ठभूमि: 45
- लाल पृष्ठभूमि: ४१
- सफेद पृष्ठभूमि: 47
- पीला बैकग्राउंड: 43
उदाहरण के लिए, चूंकि नीले रंग की पृष्ठभूमि कोड 44 है, \ [\ 033 [44मीटर \]
एक नीली पृष्ठभूमि निर्दिष्ट करेगा.
आप अग्रभूमि और पृष्ठभूमि रंग टैग दोनों निर्दिष्ट कर सकते हैं। उदाहरण के लिए, 42 एक हरे रंग की पृष्ठभूमि का प्रतिनिधित्व करता है और 31 लाल पाठ का प्रतिनिधित्व करता है। इसलिए, डिफ़ॉल्ट प्रॉम्प्ट को हरे रंग की पृष्ठभूमि पर लाल पाठ बनने के लिए, आप उपयोग करेंगे:
PS1 = "\ [\ 033 [42मीटर \] \ [\ 033 [31m \] \ u @ \ h: \ w \ $ "
हम केवल एक सिंगल बैकग्राउंड कलर और फिर एक सिंगल फोरग्राउंड टेक्स्ट कलर यहाँ निर्दिष्ट करते हैं, जो प्रॉम्प्ट के प्रारंभ में शुरू होता है और प्रॉम्प्ट के सभी टेक्स्ट पर लागू होता है। हालाँकि, आप अपने प्रॉम्प्ट के विभिन्न वर्गों को फिर से रंगने के लिए चर में जितने चाहें, उतने रंग टैग निर्दिष्ट कर सकते हैं.
जब तक आप रंग कोड 00 निर्दिष्ट नहीं करते हैं, तब तक पृष्ठभूमि और अग्रभूमि पाठ रंग तुरंत संकेत देते रहते हैं, रंग जानकारी को साफ़ करते हैं। आप इस टैग का उपयोग चर के भीतर अपने प्रॉम्प्ट में कहीं से भी डिफ़ॉल्ट रूप से रीसेट करने के लिए कर सकते हैं। उदाहरण के लिए, निम्न पंक्ति से पहले सभी रंग समाप्त हो जाएंगे \ $
चरित्र.
PS1 = "\ [\ 033 [42मीटर \] \ [\ 033 [31मीटर \] \ यू @ \ h: \ w \\ [\ 033 [00m \] \ "
अपना नया डिफ़ॉल्ट प्रॉम्प्ट कैसे सेट करें
एक बार जब आप रंगों के साथ प्रयोग कर लेते हैं, तो आपको वर्तमान सत्र की तरह ही बैश प्रॉम्प्ट होना चाहिए। लेकिन आप शायद उस नए प्रॉम्प्ट को स्थायी बनाना चाहते हैं, इसलिए यह स्वचालित रूप से आपके सभी बैश सत्रों में उपयोग किया जाता है.
ऐसा करने के लिए, आपको बस .bashrc फ़ाइल में PS1 चर की सामग्री को बदलना होगा, जिसे हमने पहले देखा था.
अपने पसंदीदा पाठ संपादक में .bashrc फ़ाइल खोलें, जैसे:
नैनो ~ / .bashrc
नीचे स्क्रॉल करें और PS1 = अनुभाग ढूंढें। बस अपने अनुकूलित चर के साथ डिफ़ॉल्ट चर बदलें। आप शायद छोड़ना चाहेंगे $ Debian_chroot: + ($ debian_chroot)
अकेले बिट्स, हालांकि, वे तब तक दिखाई नहीं देंगे जब तक कि आप किसी भी तरह से चुरोट वातावरण में न हों.
के तहत अपने रंगीन PS1 चर दर्ज करें अगर ["$ color_prompt" = हाँ]; फिर
लाइन। रंगों के बिना चर दर्ज करें अन्य
लाइन.
फ़ाइल को सहेजें और अपने पाठ संपादक को बंद करें। उदाहरण के लिए, फ़ाइल को नैनो में सहेजने के लिए, Ctrl + O दबाएं, Enter दबाएँ और फिर बाहर निकलने के लिए Ctrl + X दबाएँ.
अगली बार जब आप एक नया बैश शेल शुरू करते हैं-उदाहरण के लिए, टर्मिनल पर साइन इन करके या एक नया टर्मिनल विंडो खोलकर-आप अपना कस्टम प्रॉम्प्ट करेंगे.