बहुत से लोग कमांड लाइन प्रॉम्प्ट को उपयोगी तत्व के रूप में नहीं समझते हैं, या यहां तक कि इस पर अधिक ध्यान देते हैं। हालांकि, एक उपयोगी संकेत आपके द्वारा कमांड लाइन का उपयोग करने के तरीके को बदल सकता है, और विस्तार से, आपके सिस्टम को। यह लेख आपको उदाहरणों के साथ कई उपयोगी और दिलचस्प बैश संकेत दिखाता है। ध्यान दें कि हम स्वयं संकेतों से शुरू करते हैं, फिर उनके साथ काम करने के तरीके के बारे में कुछ और निर्देश देते हैं।
यहां हम कुछ बैश संकेत देते हैं, और सभी गंभीर नहीं होंगे। उदाहरण के लिए, सूची में हमारी पहली प्रविष्टि कमांड लाइन का उपयोग करते समय आपके लिए थोड़ी खुशी ला सकती है!
<एच2>1. सफल निष्पादन पर "काओमोजी" दिखाएंयह संकेत मनोरंजक है फिर भी उपयोगी है! विचार यह है कि जब तक आप सफल कमांड निष्पादित करते हैं, आपका संकेत एक खुश काओमोजी दिखाएगा।
इसके विपरीत, जब कोई आदेश विफल हो जाता है, तो आप एक उदास काओमोजी देखेंगे।
इसे लागू करने के लिए, निम्नलिखित कोड का उपयोग करें:
PS1="\`if [ \$? = 0 ]; then echo \[\e[33m\]^_^\[\e[0m\]; else echo \[\e[31m\]O_O\[\e[0m\]; fi\`[\u@\h:\w]\<strong>\$</strong> "
यह भ्रमित करने वाला लग सकता है, लेकिन हम if स्टेटमेंट का उपयोग यह निर्धारित करने के लिए कर रहे हैं कि कमांड अच्छा है या बुरा। वहां से, हम यह सुनिश्चित करने के लिए काओमोजी के आसपास कुछ भागने का उपयोग करते हैं कि वे सही तरीके से प्रदर्शित हों।
2. जब टर्मिनल खराब कमांड जारी करे तो बैश प्रॉम्प्ट का रंग बदलें
यकीनन, यह संकेत सूची में सबसे उपयोगी है। ऊपर की तरह, यदि आपका अंतिम कमांड चलने में विफल रहता है, लेकिन लंबे रास्तों को छोटा करता है और आसान पुनर्प्राप्ति के लिए प्रत्येक कमांड का बैश इतिहास संख्या शामिल करता है, तो संकेत रंग बदलता है।
PROMPT_COMMAND='PS1="\[\033[0;33m\][\!]\`if [[ \$? = "0" ]]; then echo "\\[\\033[32m\\]"; else echo "\\[\\033[31m\\]"; fi\`[\u.\h: \`if [[ `pwd|wc -c|tr -d " "` > 18 ]]; then echo "\\W"; else echo "\\w"; fi\`]\$\[\033[0m\] "; echo -ne "\033]0;`hostname -s`:`pwd`\007"'
फिर, इसे लागू करना कठिन लग सकता है, लेकिन यह सीधा है। हम विभिन्न संदेशों को हाइलाइट करने के लिए रंग कोड के साथ if स्टेटमेंट का फिर से उपयोग करते हैं।
आप इन रंगों को अपनी पसंद के अनुसार कुछ भी बना सकते हैं, हालांकि हम कुछ तार्किक सोच का प्रयोग करेंगे, बदले हुए रंग केवल बदलाव करने के लिए बदले जाने के बजाय आपकी मदद करेंगे।
3. स्पैन योर बैश प्रॉम्प्ट्स कई लाइन्स पर
कभी-कभी आप अपने बैश संकेतों में बहुत सी जानकारी शामिल करना चाह सकते हैं। यदि यह आपका वर्णन करता है, तो यह बैश संकेत आपको रूचि दे सकता है। यह दिनांक, समय, पूर्ण निर्देशिका पथ, उपयोगकर्ता और होस्ट नाम, सक्रिय टर्मिनल और यहां तक कि फ़ाइल गणना और स्थान उपयोग दिखाता है।
PS1="<strong>\n</strong>\[\033[35m\]<strong>\$</strong>(/bin/date)<strong>\n</strong>\[\033[32m\]\w<strong>\n</strong>\[\033[1;31m\]\u@\h: \[\033[1;34m\]<strong>\$</strong>(/usr/bin/tty | /bin/sed -e 's:/dev/::'): \[\033[1;36m\]<strong>\$</strong>(/bin/ls -1 | /usr/bin/wc -l | /bin/sed 's: ::g') files \[\033[1;33m\]<strong>\$</strong>(/bin/ls -lah | /bin/grep -m 1 total | /bin/sed 's/total //')b\[\033[0m\] -> \[\033[0m\]"
यहां, हमें स्टेटमेंट की आवश्यकता नहीं है, क्योंकि प्रॉम्प्ट में ही एक स्थिर लेआउट होगा, फिर भी गतिशील सामग्री होगी। आपको इसमें विभिन्न तत्वों को पार्स करना भी मुश्किल हो सकता है। हमारी सलाह है कि इसे लागू करें, फिर एक-एक करके शीघ्रता से चलाएं। थोड़ा क्रॉस-रेफ़रिंग के साथ, आप यह समझना शुरू कर देंगे कि प्रॉम्प्ट कैसे संयोजित होता है।
4. अपने बैश प्रॉम्प्ट को अधिक पठनीय बनाने के लिए रंगों का उपयोग करें
जानकारी के विभिन्न टुकड़ों को अलग करने के लिए रंग के अच्छे उपयोग के अलावा इस संकेत के बारे में कुछ भी कल्पना नहीं है। जैसा कि आप देख सकते हैं, यह समय, उपयोगकर्ता और होस्ट नाम और वर्तमान निर्देशिका प्रदान करता है।
PS1="\[\033[35m\]<strong>\t</strong>\[\033[m\]-\[\033[36m\]\u\[\033[m\]@\[\033[32m\]\h:\[\033[33;1m\]\w\[\033[m\]<strong>\$</strong> "
यह सबसे उपयोगी बैश संकेतों में से एक है और यह एक ऐसा क्षेत्र है जिसे आप अपने प्रॉम्प्ट को अनुकूलित करने के लिए सबसे पहले देखेंगे। कस्टम प्रॉम्प्ट कैसे काम करता है, यह जानने के लिए यह आपको एक अच्छा आधार दे सकता है।
5. पूर्ण निर्देशिका पथ दिखाएं
रंगों का उपयोग करने की तरह, यह संकेत एक साफ और न्यूनतम दो-पंक्ति वाला संकेत है (हालांकि शीर्ष पर एक खाली रेखा है)।
हम पहली पंक्ति में पूर्ण कार्यशील निर्देशिका पथ प्रदर्शित करते हैं, उसके बाद नीचे उपयोगकर्ता।
PS1="[\[\033[32m\]\w]\[\033[0m\]<strong>\n</strong>\[\033[1;36m\]\u\[\033[1;33m\]-> \[\033[0m\]"
यदि आप प्रांप्ट में रिक्त पंक्ति का उपयोग नहीं करना चाहते हैं, तो आप पहला \n
निकाल सकते हैं . हालांकि, लेआउट और स्वरूपण के साथ खेलें, क्योंकि प्रत्येक टर्मिनल अनुभव आपके कंप्यूटर और कमांड लाइन सेटिंग्स के आधार पर अलग होगा।
6. बैकग्राउंड जॉब काउंट दिखाएं
यह दो-लाइनर जानकारी प्रदर्शित करता है जिसे हमने अभी तक हमारे बैश संकेतों में उपयोग नहीं किया है। हम पृष्ठभूमि की नौकरियों का एक चल मिलान प्रदान करते हैं। यदि आप एक से अधिक कार्य करते हैं लेकिन किसी गतिविधि पर नज़र रखने की आवश्यकता है तो यह उपयोगी होगा।
कार्यशील निर्देशिका पथ के साथ पहली पंक्ति उपयोगकर्ता और होस्ट नाम है। दूसरी पंक्ति में, हमारे पास इतिहास संख्या और पृष्ठभूमि में चल रहे कार्यों की संख्या है।
PS1='\[\e[1;32m\]\u@\H:\[\e[m\] \[\e[1;37m\]\w\[\e[m\]\n\[\e[1;33m\]hist:\! \[\e[0;33m\] \[\e[1;31m\]jobs:\j \$\[\e[m\] '
इसमें बहुत कुछ नहीं है, हालांकि यह आपको सिस्टम गतिविधि के बारे में कुछ आवश्यक जानकारी दे सकता है। आप इसे एक अधिक जटिल संकेत में भी बदल सकते हैं और यदि कोई कार्य कुछ स्तरों तक पहुँचता है तो आपको सूचित करने के लिए यदि कथन और रंग कोडिंग जोड़ सकते हैं।
7. कार्य निर्देशिका के लिए जानकारी प्रदर्शित करें
इसके साथ हम उपयोगकर्ता और होस्ट का नाम, नौकरी की संख्या, और शीर्ष पंक्ति पर दिनांक और समय प्रदर्शित करते हैं। नीचे वर्तमान निर्देशिका है, साथ ही निर्देशिका में फ़ाइलों की संख्या और डिस्क उपयोग पर कुछ जानकारी है।
PS1="<strong>\n</strong>\[\e[30;1m\]\[\016\]l\[\017\](\[\e[34;1m\]\u@\h\[\e[30;1m\])-(\[\e[34;1m\]\j\[\e[30;1m\])-(\[\e[34;1m\]\@ \d\[\e[30;1m\])->\[\e[30;1m\]<strong>\n</strong>\[\016\]m\[\017\]-(\[\[\e[32;1m\]\w\[\e[30;1m\])-(\[\e[32;1m\]<strong>\$</strong>(/bin/ls -1 | /usr/bin/wc -l | /bin/sed 's: ::g') files, <strong>\$</strong>(/bin/ls -lah | /bin/grep -m 1 total | /bin/sed 's/total //')b\[\e[30;1m\])--> \[\e[0m\]"
इन सभी संकेतों के साथ सबसे बड़ा मुद्दा यह पता लगाना है कि फ़ॉर्मेटिंग और एस्केपिंग के आसपास क्या हो रहा है। हालांकि, बहु-पंक्ति संकेतों की तरह, जब तक आप समग्र संरचना को नहीं समझ लेते, तब तक आपको इसे एक-एक करके हल करना चाहिए।
आप एक बार में एक हिस्से को इनपुट भी कर सकते हैं और नोट कर सकते हैं कि क्या यह प्रदर्शित होता है या क्या त्रुटियां हैं, और पूर्ण स्निपेट तक काम करें।
8. अपना खुद का बैश प्रॉम्प्ट बनाएं
आप अपने स्वयं के कस्टम बैश प्रॉम्प्ट बनाने के लिए उपरोक्त सभी को जोड़ सकते हैं। उदाहरण के लिए, यह इस सूची में सातवें नंबर का एक संशोधन है जिसे कम जगह लेने और कुछ विशिष्ट और प्रासंगिक जानकारी शामिल करने के लिए बदला गया है।
दो-पंक्ति शैली हमेशा अधिक कॉम्पैक्ट होती है, क्योंकि आप अपने द्वारा उपयोग किए जाने वाले आदेशों के लिए स्थान को कम किए बिना पूरा पथ देख सकते हैं।
PS1="<strong>\n</strong>\[\e[32;1m\](\[\e[37;1m\]\u\[\e[32;1m\])-(\[\e[37;1m\]jobs:\j\[\e[32;1m\])-(\[\e[37;1m\]\w\[\e[32;1m\])<strong>\n</strong>(\[\[\e[37;1m\]! \!\[\e[32;1m\])-> \[\e[0m\]"
अब तक, आप शायद समझ गए होंगे कि यह संकेत क्या करता है, लेकिन हमारी सलाह है कि इसे चिपकाने के बजाय अपना स्वयं का बनाने का प्रयास करें। इस तरह, आप सीखना शुरू कर सकते हैं कि विभिन्न तत्व एक साथ कैसे काम करते हैं और यहां तक कि इसके साथ भी आ सकते हैं। आपका अपना कस्टम बैश संकेत देता है।
अक्सर पूछे जाने वाले प्रश्न
<एच3>1. मैं विभिन्न बैश संकेतों का उपयोग क्यों करना चाहूंगा?इसके कई कारण हैं, लेकिन उत्पादकता एक महत्वपूर्ण विचार है। यदि आप अक्सर कमांड लाइन का उपयोग करते हैं, तो आप हर कुछ सेकंड में अपना संकेत देखेंगे। जैसे, यदि आप इसमें सबसे महत्वपूर्ण जानकारी डालते हैं, तो आप इसे हमेशा हाथ में रख सकते हैं।
कई मामलों में, कस्टम बैश प्रॉम्प्ट का उपयोग कई विंडो खोलने की तुलना में अधिक कुशल है।
<एच3>2. मैं इन बैश संकेतों को अपने टर्मिनल आउटपुट में कैसे जोड़ूं?इनमें से किसी भी संकेत का उपयोग करने के लिए, आप कोड को अपने टर्मिनल ऐप में कॉपी और पेस्ट कर सकते हैं। हालांकि, यह केवल वर्तमान सत्र पर लागू होगा, इसलिए सैद्धांतिक रूप से, जब भी आप टर्मिनल लॉन्च करेंगे तो आपको ऐसा करना होगा।
यदि आप परिवर्तन को स्थायी बनाना चाहते हैं, तो आप अपनी ~/.bashrc फ़ाइल के अंत में स्निपेट चिपका सकते हैं और अपने टर्मिनल को पुनः प्रारंभ कर सकते हैं।
<एच3>3. क्या ये बैश प्रॉम्प्ट अन्य शेल का उपयोग करके भी काम करेंगे?कई मामलों में, आप पाएंगे कि अन्य प्रकार के गोले के साथ क्रॉस-संगतता है। हालांकि, इस बात की कोई गारंटी नहीं है कि परिवर्तन 100 प्रतिशत समता प्रदान करेंगे।
यदि आप मैक टर्मिनल को कस्टमाइज़ करने पर हमारी पोस्ट पर एक नज़र डालते हैं, तो यह zsh का उपयोग करता है। आप देखेंगे कि मामूली अंतर हैं लेकिन कई समानताएं हैं।
<एच3>4. मैं कैसे पता लगा सकता हूं कि मैं अपने बैश संकेतों में कौन सी जानकारी और तत्व जोड़ सकता हूं?आपके सिस्टम का लगभग कोई भी तत्व बैश प्रॉम्प्ट में दिखाई दे सकता है। आप बैश चरों को देखना चाहेंगे, क्योंकि इस तरह आप इन विभिन्न तत्वों को "अनलॉक" करते हैं।
आप क्या बदल सकते हैं, यह समझने के लिए Linux.com वेबसाइट पर एक बेहतरीन संसाधन है, और हम आपके अनुकूलन सत्रों के दौरान उस दस्तावेज़ को हाथ में रखने की अनुशंसा करते हैं।
5. क्या होगा यदि मैं अब अपने टर्मिनल में कस्टम बैश संकेतों का उपयोग नहीं करना चाहता?
यहाँ सरल उत्तर है कॉन्फिग फाइल को खोलना और संबंधित लाइनों को हटाना। आपको कोई और आदेश करने की आवश्यकता नहीं है, हालांकि यदि आप अपने अपेक्षित परिवर्तन नहीं देखते हैं तो यह आपके टर्मिनल को पुनरारंभ करने के लायक हो सकता है।
यदि आप नियमित रूप से कमांड लाइन का उपयोग करते हैं, या जब आप किसी टर्मिनल ऐप को फायर करते हैं, तो विशिष्ट ज़रूरतें होती हैं, तो प्रॉम्प्ट को कस्टमाइज़ करना एक अच्छा विचार हो सकता है। इसमें अधिक जानकारी की आवश्यकता नहीं होती है, और कई मामलों में, आप किसी अन्य डेवलपर से आवश्यक संकेत प्राप्त कर सकते हैं।