मुखपृष्ठ » कैसे » बैश, Zsh और अन्य लिनक्स शेल के बीच अंतर क्या है?

    बैश, Zsh और अन्य लिनक्स शेल के बीच अंतर क्या है?

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

    गोले क्या करते हैं?

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

    पहला शेल वातावरण थॉम्पसन शेल था, जिसे बेल लैब्स में विकसित किया गया था और 1971 में जारी किया गया था। शेल का वातावरण इस अवधारणा पर निर्माण कर रहा है, जिसमें कई नई सुविधाएँ, कार्यक्षमता और गति में सुधार शामिल हैं।.

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

    शेल का उपयोग विभिन्न सिस्टम सेवाओं द्वारा पृष्ठभूमि में भी किया जाता है। लिनक्स वितरण में शेल स्क्रिप्ट के रूप में लिखे गए कई कार्य शामिल हैं। ये स्क्रिप्ट कमांड और अन्य उन्नत शेल स्क्रिप्टिंग फ़ंक्शन शेल वातावरण के माध्यम से चलते हैं.

    गोले ऊपर बश करने के लिए: श, csh, tsh, और ksh

    आधुनिक गोले के सबसे प्रमुख पूर्वज बॉर्न शेल हैं, जिन्हें "श" के रूप में भी जाना जाता है, इसका नाम इसके निर्माता स्टीफन बॉर्न के नाम पर रखा गया था जिन्होंने एटी एंड टी के बेल लैब्स में काम किया था। 1979 में जारी किया गया था, यह यूनिक्स में कमांड प्रतिस्थापन, पाइपिंग, चर, स्थिति परीक्षण, और लूपिंग के साथ-साथ अन्य विशेषताओं के समर्थन के कारण डिफ़ॉल्ट कमांड-इंटरप्रेटर बन गया। इसने उपयोगकर्ताओं के लिए बहुत अधिक अनुकूलन की पेशकश नहीं की, और इस तरह की आधुनिक बारीकियों का समर्थन नहीं किया जैसे कि उपनाम, कमांड पूरा करना और शेल फ़ंक्शन (हालांकि यह अंतिम एक जोड़ा गया था).

    सी शेल, या "csh", 1970 के दशक के अंत में बिल जोय द्वारा कैलिफोर्निया विश्वविद्यालय, बर्कले में विकसित किया गया था। इसने बहुत सारे संवादात्मक तत्व जोड़े हैं जिनके साथ उपयोगकर्ता अपने सिस्टम को नियंत्रित कर सकते हैं, जैसे कि उपनाम (लंबी कमांड के लिए शॉर्टकट), नौकरी प्रबंधन क्षमता, कमांड इतिहास, और बहुत कुछ। इसे C प्रोग्रामिंग लैंग्वेज से तैयार किया गया था, जिसे यूनिक्स ऑपरेटिंग सिस्टम ने ही लिखा था। इसका मतलब यह भी था कि बॉर्न शेल के उपयोगकर्ताओं को C सीखना था ताकि वे इसमें कमांड दर्ज कर सकें। इसके अलावा, csh के पास काफी कुछ कीड़े थे जिन्हें उपयोगकर्ताओं और रचनाकारों द्वारा समय की एक बड़ी अवधि में समान रूप से अंकित किया जाना था। लोगों ने स्क्रिप्ट के लिए बॉर्न शेल का उपयोग करना समाप्त कर दिया क्योंकि यह गैर-संवादात्मक आदेशों को बेहतर तरीके से संभालता था, लेकिन सामान्य उपयोग के लिए सी शेल के साथ अटक गया.

    समय के साथ, बहुत से लोगों ने C शेल में बग्स को जोड़ा और सुविधाओं को जोड़ा, "tsh" के रूप में जाना जाने वाले csh के एक बेहतर संस्करण में समापन हुआ। लेकिन यूनिक्स-आधारित कंप्यूटरों में csh अभी भी डिफॉल्ट था, और कुछ गैर-मानक सुविधाओं को जोड़ा गया था। बेल लैब्स के डेविड कॉर्न ने कोर्नशेल, या "क्श" पर काम किया, जिसने बॉर्न शेल की भाषा के साथ पीछे-संगत होने से स्थिति को बेहतर बनाने की कोशिश की, लेकिन सीश शेल से कई विशेषताओं को जोड़ा। यह 1983 में जारी किया गया था, लेकिन एक मालिकाना लाइसेंस के तहत। यह 2000 के दशक तक मुफ्त सॉफ्टवेयर नहीं था, जब इसे विभिन्न ओपन-सोर्स लाइसेंस के तहत जारी किया गया था.

    बाश का जन्म

    यूनिक्स के लिए पोर्टेबल ऑपरेटिंग सिस्टम इंटरफ़ेस, या पॉसिक्स, व्यस्त मालिकाना csh कार्यान्वयन के लिए एक और प्रतिक्रिया थी। इसने सफलतापूर्वक कमांड व्याख्या (अन्य चीजों के बीच) के लिए एक मानक बनाया और अंततः कॉर्नशेल में बहुत सारी विशेषताओं को प्रतिबिंबित किया। उसी समय, GNU प्रोजेक्ट एक मुक्त, यूनिक्स-संगत ऑपरेटिंग सिस्टम बनाने का प्रयास कर रहा था। GNU प्रोजेक्ट ने अपने मुफ्त ऑपरेटिंग सिस्टम का हिस्सा बनने के लिए एक मुफ्त सॉफ्टवेयर शेल विकसित किया और इसे "बॉर्न अगेन शेल", या "बीओएन" नाम दिया।.

    1989 में अपनी पहली रिलीज़ के बाद से दशकों में बैश में सुधार हुआ है, लेकिन यह आज भी अधिकांश लिनक्स वितरण पर डिफ़ॉल्ट शेल है। यह Apple के macOS पर डिफ़ॉल्ट शेल भी है, और Microsoft के विंडोज 10 पर इंस्टॉलेशन के लिए उपलब्ध है.

    नए गोले: राख, पानी का छींटा, zsh, और मछली

    जब से लिनक्स समुदाय बैश पर वर्षों में बस गया है, डेवलपर्स ने नए गोले बनाना बंद नहीं किया, जब बैश को 28 साल पहले जारी किया गया था.

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

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

    सबसे लोकप्रिय नए गोले में से एक Z खोल या "zsh" है। 1990 में पॉल फालस्टेड द्वारा बनाया गया, zsh एक बॉर्न-शैली का शेल है जिसमें ऐसी विशेषताएं शामिल हैं, जो आपको bash में मिलेंगी, साथ ही और भी। उदाहरण के लिए, zsh में वर्तनी-जाँच, लॉगइन / लॉगआउट देखने की क्षमता, कुछ बिल्ट-इन प्रोग्रामिंग सुविधाएँ जैसे बायटेकोड, सिंटैक्स में वैज्ञानिक संकेतन के लिए समर्थन, फ़्लोटिंग-पॉइंट अंकगणितीय और अधिक सुविधाएँ प्रदान करता है.

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

    जो आपको चुनना चाहिए? (और क्यों Zsh लोकप्रिय है)

    आपको एक शेल चुनने की आवश्यकता नहीं है। आपका ऑपरेटिंग सिस्टम आपके लिए आपका डिफ़ॉल्ट शेल चुनता है, और यह विकल्प लगभग हमेशा बैश होता है। लिनक्स वितरण के सामने बैठो-या यहां तक ​​कि एक मैक-और आप लगभग हमेशा एक बैश शेल वातावरण होगा। बैश में कुछ उन्नत विशेषताएं हैं, लेकिन आप संभवतः शेल स्क्रिप्ट्स को प्रोग्राम करने तक उनका उपयोग नहीं करेंगे.

    एम्बेडेड लिनक्स सिस्टम या बीएसडी सिस्टम पर, आप ऐश शेल को समाप्त करेंगे। लेकिन राख एक बॉर्न-आधारित शेल है और काफी हद तक बैश के साथ संगत है। बैश का उपयोग करने से आपको जो भी ज्ञान है वह राख या पानी के छींटे के उपयोग से स्थानांतरित हो जाएगा, हालांकि कुछ उन्नत स्क्रिप्टिंग सुविधाएँ इस हल्के शेल में उपलब्ध नहीं हैं.

    लगभग आपके द्वारा खोले गए प्रत्येक गोले बॉर्न-आधारित हैं और इसी तरह के zsh में काम करता है.

    इसलिए zsh लोकप्रिय है। यह नया शेल बैश के साथ संगत है, लेकिन इसमें और अधिक विशेषताएं शामिल हैं। Zsh शेल में अंतर्निहित वर्तनी सुधार, बेहतर कमांड-लाइन पूर्ण, लोड करने योग्य मॉड्यूल प्रदान करता है जो आपके शेल के लिए प्लग-इन के रूप में कार्य करता है, वैश्विक उपनाम जो आपको केवल कमांड के बजाय कमांड लाइन पर नाम या कुछ और फाइल करने की अनुमति देते हैं, और अधिक थीमिंग समर्थन। यह बैश की तरह है, लेकिन बहुत सारे अतिरिक्त, अतिरिक्त सुविधाओं और कॉन्फ़िगर करने योग्य विकल्पों के साथ यदि आप कमांड लाइन पर बहुत समय बिताते हैं, तो आप इसकी सराहना कर सकते हैं.

    यदि आप बैश से परिचित हैं, तो आप एक अलग सिंटैक्स सीखे बिना zsh पर स्विच कर सकते हैं-आप अतिरिक्त सुविधाएँ प्राप्त करेंगे। यदि आप zsh से परिचित हैं, तो आप एक अलग वाक्यविन्यास सीखे बिना ही बैश में जा सकते हैं-आपके पास उन सुविधाओं तक पहुंच नहीं होगी.

    "ओह माई जेएसएच" एक ऐसा उपकरण है जो आपको अधिक आसानी से zsh प्लग-इन को सक्षम करने और प्रीमियर थीम के बीच स्विच करने में मदद करता है।.

    अन्य गोले भी हैं। उदाहरण के लिए, tcsh शेल अभी भी आसपास है और अभी भी एक विकल्प है। FreeBSD अपने डिफ़ॉल्ट रूट शेल के रूप में tsch और अपने डिफ़ॉल्ट इंटरेक्टिव शेल के रूप में राख का उपयोग करता है। यदि आप नियमित रूप से C प्रोग्रामिंग का उपयोग करते हैं, तो tsch आपके लिए बेहतर फिट हो सकता है। हालाँकि, यह कहीं भी नहीं है, आमतौर पर बैश या zsh के रूप में इस्तेमाल किया जाता है.

    गोले के बीच स्विच कैसे करें

    इसे आज़माने के लिए नए शेल पर स्विच करना आसान है। बस अपने लिनक्स वितरण के पैकेज मैनेजर से शेल इंस्टॉल करें और शेल लॉन्च करने के लिए कमांड टाइप करें.

    उदाहरण के लिए, मान लें कि आप Ubuntu पर zsh आज़माना चाहते हैं। आप इसे स्थापित करने और फिर लॉन्च करने के लिए निम्न कमांड चलाएंगे:

    sudo apt install zsh zsh

    आप तब एक zsh शेल पर बैठे होंगे। प्रकार " बाहर जाएं "इसे छोड़ने के लिए और अपने वर्तमान शेल पर वापस जाने के लिए शेल पर.

    यह सिर्फ अस्थायी है। जब भी आप एक नई टर्मिनल विंडो खोलते हैं या कमांड लाइन पर अपने सिस्टम में साइन इन करते हैं, तो आपको अपना डिफ़ॉल्ट शेल दिखाई देगा। जब आप साइन-इन करते हैं तो अपने लॉगिन शेल के रूप में जाना जाने वाला शेल बदलने के लिए-आप आम तौर पर उपयोग कर सकते हैं chsh , या "शेल बदलें", कमांड.

    इस कमांड का उपयोग करने के लिए, आपको सबसे पहले अपने शेल के लिए पूरा रास्ता ढूंढना होगा कि किस कमांड के साथ। उदाहरण के लिए, मान लें कि हम ज़श शेल में बदलना चाहते हैं। हम निम्नलिखित कमांड चलाएँगे:

    कौन सा zsh

    उबंटू पर, यह बताता है कि zsh बाइनरी / usr / bin / zsh पर संग्रहीत है.

    निम्न कमांड चलाएँ, अपना पासवर्ड दर्ज करें, और आपको एक नया लॉगिन शेल चुनने के लिए प्रेरित किया जाएगा:

    chsh

    उपरोक्त आदेश के अनुसार, हम प्रवेश करेंगे / Usr / bin / zsh . जब तक हम भाग नहीं लेते तब तक zsh शेल हमारा डिफ़ॉल्ट होगा chsh कमांड करें और इसे वापस बदल दें.