Computer >> कंप्यूटर ट्यूटोरियल >  >> प्रणाली >> Linux

8 उपयोगी और दिलचस्प बैश प्रॉम्प्ट्स

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

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

1. सफल निष्पादन पर "Kaomoji" दिखाएं

यह प्रॉम्प्ट मनोरंजक लेकिन उपयोगी है! विचार यह है कि जब तक आप सफल कमांड निष्पादित करते हैं, आपका प्रॉम्प्ट एक खुश kaomoji दिखाएगा।

इसके विपरीत, जब कोई कमांड विफल होती है, तो आप एक दुखी kaomoji देखेंगे।

इसे लागू करने के लिए, निम्न कोड का उपयोग करें:

PS1="\`if [ \$? = 0 ]; then echo \[\e[33m\]^_^\[\e[0m\]; else echo \[\e[31m\]O_O\[\e[0m\]; fi\`[\u@\h:\w]\\$ "

यह भ्रमित लग सकता है, लेकिन हम यह निर्धारित करने के लिए if स्टेटमेंट का उपयोग कर रहे हैं कि कमांड अच्छी है या बुरी। वहां से, हम kaomoji के सही तरीके से प्रदर्शित होने को सुनिश्चित करने के लिए उनके चारों ओर कुछ एस्केपिंग का उपयोग करते हैं।

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="\\n\[\033[35m\]\\$(/bin/date)\\n\[\033[32m\]\w\\n\[\033[1;31m\]\u@\h: \[\033[1;34m\]\\$(/usr/bin/tty | /bin/sed -e 's:/dev/::'): \[\033[1;36m\]\\$(/bin/ls -1 | /usr/bin/wc -l | /bin/sed 's: ::g') files \[\033[1;33m\]\\$(/bin/ls -lah | /bin/grep -m 1 total | /bin/sed 's/total //')b\[\033[0m\] -> \[\033[0m\]"

यहां, हमें if स्टेटमेंट्स की आवश्यकता नहीं है, क्योंकि प्रॉम्प्ट का अपना एक स्थिर लेआउट होगा, फिर भी डायनामिक कंटेंट। आप इस में विभिन्न तत्वों को पार्स करना कठिन भी पा सकते हैं। हमारी सलाह है इसे लागू करें, फिर प्रॉम्प्ट के टुकड़े दर टुकड़े चलें। थोड़े क्रॉस-रेफरेंसिंग के साथ, आप यह समझना शुरू कर देंगे कि प्रॉम्प्ट कैसे जुड़ता है।

4. अपने बैश प्रॉम्प्ट को अधिक पठनीय बनाने के लिए रंगों का उपयोग करें

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

PS1="\[\033[35m\]\\t\[\033[m\]-\[\033[36m\]\u\[\033[m\]@\[\033[32m\]\h:\[\033[33;1m\]\w\[\033[m\]\\$ "

यह सबसे उपयोगी बैश प्रॉम्प्ट्स में से एक है और एक ऐसा क्षेत्र है जिसे आप अपने प्रॉम्प्ट को कस्टमाइज़ करने के लिए पहले देखेंगे। यह आपको एक अच्छा आधार दे सकता है कि कस्टम प्रॉम्प्ट कैसे काम करता है।

5. पूर्ण डायरेक्टरी पथ दिखाएं

रंगों का उपयोग करने की तरह, यह प्रॉम्प्ट एक साफ और न्यूनतम दो-लाइन प्रॉम्प्ट है (हालांकि शीर्ष पर एक खाली लाइन है)।

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

PS1="[\[\033[32m\]\w]\[\033[0m\]\\n\[\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\] '

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

7. वर्किंग डायरेक्टरी के लिए जानकारी प्रदर्शित करें

इसके साथ हम शीर्ष लाइन पर यूजर और होस्ट नाम, जॉब काउंट, और तारीख और समय प्रदर्शित करते हैं। नीचे वर्तमान डायरेक्टरी है, साथ में डायरेक्टरी में फाइलों की संख्या और डिस्क उपयोग पर कुछ जानकारी।

PS1="\\n\[\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\]\\n\[\016\]m\[\017\]-(\[\[\e[32;1m\]\w\[\e[30;1m\])-(\[\e[32;1m\]\\$(/bin/ls -1 | /usr/bin/wc -l | /bin/sed 's: ::g') files, \\$(/bin/ls -lah | /bin/grep -m 1 total | /bin/sed 's/total //')b\[\e[30;1m\])--> \[\e[0m\]"

इन सभी प्रॉम्प्ट्स के साथ सबसे बड़ा मुद्दा फॉर्मेटिंग और एस्केपिंग के आसपास क्या हो रहा है इसका पता लगाना है। हालांकि, मल्टी-लाइन प्रॉम्प्ट्स की तरह, आपको इसे टुकड़े दर टुकड़े निपटाना चाहिए जब तक आप समग्र संरचना को नहीं समझ लेते।

आप एक बार में एक हिस्सा इनपुट कर सकते हैं और नोट कर सकते हैं कि यह प्रदर्शित होता है या त्रुटियां हैं, और पूर्ण स्निपेट तक काम कर सकते हैं।

8. अपने स्वयं के बैश प्रॉम्प्ट्स बनाएं

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

दो-लाइन शैली हमेशा अधिक कॉम्पैक्ट होती है, जैसा कि आप कमांड के लिए स्थान कम किए बिना पूर्ण पथ देख सकते हैं।

PS1="\\n\[\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\])\\n(\[\[\e[37;1m\]! \!\[\e[32;1m\])-> \[\e[0m\]"

अब तक, आप संभवतः समझ जाएंगे कि यह प्रॉम्प्ट क्या करता है, लेकिन हमारी सलाह है कि इसे पेस्ट करने के बजाय अपना खुद का बनाने का प्रयास करें। इस तरह, आप यह सीखना शुरू कर सकते हैं कि विभिन्न तत्व एक साथ कैसे काम करते हैं और यहां तक कि अपने स्वयं के कस्टम बैश प्रॉम्प्ट्स के साथ आ सकते हैं।

अक्सर पूछे जाने वाले प्रश्न

1. मैं अलग-अलग बैश प्रॉम्प्ट्स का उपयोग क्यों करना चाहूंगा?

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

कई मामलों में, कस्टम बैश प्रॉम्प्ट का उपयोग कई विंडोज खुले रखने की तुलना में अधिक कुशल है।

2. मैं इन बैश प्रॉम्प्ट्स को अपने टर्मिनल आउटपुट में कैसे जोड़ूं?

इनमें से किसी भी प्रॉम्प्ट का उपयोग करने के लिए, आप कोड को अपने टर्मिनल ऐप में कॉपी और पेस्ट कर सकते हैं। हालांकि, यह केवल वर्तमान सत्र पर लागू होगा, इसलिए सिद्धांत रूप में, आपको जब भी टर्मिनल लॉन्च करेंगे तब ऐसा करना होगा।

यदि आप परिवर्तन को स्थायी बनाना चाहते हैं, तो आप अपने ~/.bashrc फाइल के अंत में स्निपेट्स पेस्ट कर सकते हैं, और अपने टर्मिनल को रीस्टार्ट कर सकते हैं।

3. क्या ये बैश प्रॉम्प्ट्स अन्य शेल्स का उपयोग करके भी काम करेंगे?

कई मामलों में, आप पाएंगे कि अन्य प्रकार के शेल्स के साथ क्रॉस-कम्पैटिबिलिटी है। हालांकि, इस बात की कोई गारंटी नहीं है कि परिवर्तन 100 प्रतिशत समानता प्रदान करेंगे।

यदि आप मैक टर्मिनल को कस्टमाइज़ करने पर हमारी पोस्ट देखते हैं, तो यह zsh का उपयोग करता है। आप ध्यान देंगे कि मामूली अंतर हैं लेकिन कई समानताएं हैं।

4. मुझे कैसे पता चलेगा कि मैं अपने बैश प्रॉम्प्ट्स में क्या जानकारी और तत्व जोड़ सकता हूं?

आपके सिस्टम का बहुत अधिक कोई भी तत्व बैश प्रॉम्प्ट में दिखाई दे सकता है। आप बैश वेरिएबल्स में देखना चाहेंगे, क्योंकि इसी तरह आप इन विभिन्न तत्वों को "अनलॉक" करते हैं।

यह समझने के लिए एक बढ़िया संसाधन कि आप क्या बदल सकते हैं, Linux.com वेबसाइट पर है, और हम आपके कस्टमाइज़ेशन सत्रों के दौरान उस दस्तावेज़ को हाथ में रखने की सिफारिश करेंगे।

5. क्या होगा यदि मैं अब अपने टर्मिनल में कस्टम बैश प्रॉम्प्ट्स का उपयोग नहीं करना चाहता?

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

यदि आप नियमित रूप से कमांड लाइन का उपयोग करते हैं, या जब आप टर्मिनल ऐप चालू करते हैं तो विशिष्ट आवश्यकताएं हैं, तो प्रॉम्प्ट को कस्टमाइज़ करना एक शानदार विचार हो सकता है। इसके लिए अधिक ज्ञान की आवश्यकता नहीं होती है, और कई मामलों में, आप किसी अन्य डेवलपर से अपनी आवश्यकता का प्रॉम्प्ट ढूंढ सकते हैं।

  1. विंडोज पावरशेल और कमांड प्रॉम्प्ट के बीच अंतर विंडोज पावरशेल और कमांड प्रॉम्प्ट के बीच अंतर

    यदि आप विंडोज ऑपरेटिंग सिस्टम का उपयोग कर रहे हैं, तो आपने अक्सर CMD या कमांड प्रॉम्प्ट का सामना किया होगा जैसा कि कई लोग जानते हैं। कमांड प्रॉम्प्ट एक कमांड-लाइन इंटरप्रेटर है जिसे विंडोज के सभी संस्करणों के साथ भेजा गया है, विंडोज NT से लेकर। कमांड प्रॉम्प्ट एक कमांड-लाइन इंटरफेस प्रदान करता है जो

  1. Bash में मास्टरी: एक अनुकूलित Linux अनुभव के लिए टर्मिनल रंग और प्रॉम्प्ट अनुकूलित करें Bash में मास्टरी: एक अनुकूलित Linux अनुभव के लिए टर्मिनल रंग और प्रॉम्प्ट अनुकूलित करें

    आज, Bash अधिकांश (यदि सभी नहीं) आधुनिक Linux वितरणों में डिफ़ॉल्ट शेल है। हालांकि, आपने देखा होगा कि टर्मिनल में टेक्स्ट रंग और प्रॉम्प्ट सामग्री एक डिस्ट्रो से दूसरे में भिन्न हो सकती है। सुझाव पढ़ें: Linux के लिए 5 सबसे अधिक उपयोग किए जाने वाले ओपन सोर्स शेल्स यदि आप सोच रहे हैं कि बेहतर पहुंच या

  1. Powerline - Vim, Bash, और अधिक को सुंदर स्टेटसलाइन और प्रॉम्प्ट के साथ उन्नत करें Powerline - Vim, Bash, और अधिक को सुंदर स्टेटसलाइन और प्रॉम्प्ट के साथ उन्नत करें

    Powerline Vim एडिटर के लिए एक बेहतरीन स्टेटसलाइन प्लगइन है, जिसे Python में विकसित किया गया है और यह bash, zsh, tmux और कई अन्य जैसे कई अन्य एप्लिकेशन के लिए स्टेटसलाइन और प्रॉम्प्ट प्रदान करता है। विशेषताएं यह Python में लिखा गया है, जो इसे विस्तार योग्य और सुविधा संपन्न बनाता है। स्थिर और परीक्