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

विषयसूची:

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

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

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

पहला खोल पर्यावरण थॉमसन शेल था, जिसे बेल लैब्स में विकसित किया गया था और 1 9 71 में जारी किया गया था। शैल वातावरण तब से अवधारणा पर निर्माण कर रहे हैं, जिसमें कई नई विशेषताएं, कार्यक्षमता और गति सुधार शामिल हैं।

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

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

शेल अग्रणी बैश तक: श, सीएसएच, टीएसएच, और क्ष

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

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

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

बैश का जन्म

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

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

नए शैल: राख, डैश, zsh, और मछली

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

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

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

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

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

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

लगभग हर शेल आप सामना करेंगे बोर्न आधारित है और इसी तरह काम करता है-जिसमें zsh भी शामिल है।

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

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

"ओह माई जेएसएच" एक ऐसा टूल है जो आपको ज़श प्लग-इन को और आसानी से सक्षम करने में मदद करता है और प्रीमियर थीम के बीच स्विच करता है, जो आपके जेएसएच खोल को जल्दी से अनुकूलित करने में घंटों खर्च किए बिना खर्च करता है।
"ओह माई जेएसएच" एक ऐसा टूल है जो आपको ज़श प्लग-इन को और आसानी से सक्षम करने में मदद करता है और प्रीमियर थीम के बीच स्विच करता है, जो आपके जेएसएच खोल को जल्दी से अनुकूलित करने में घंटों खर्च किए बिना खर्च करता है।

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

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

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

उदाहरण के लिए, मान लीजिए कि आप उबंटू पर zsh आज़माएं। आप निम्न आदेशों को स्थापित करने के लिए चलाएंगे और फिर इसे लॉन्च करेंगे:

sudo apt install zsh zsh

फिर आप एक zsh खोल पर बैठे होंगे। प्रकार"

exit

इसे छोड़ने के लिए खोल पर और अपने वर्तमान खोल पर लौटें।

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

chsh

या "चेंज शैल", कमांड।

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

which zsh

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

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

chsh

उपरोक्त आदेश के अनुसार, हम प्रवेश करेंगे

/usr/bin/zsh

। जब तक हम भाग नहीं लेते तब तक zsh shell हमारा डिफ़ॉल्ट होगा

chsh

आदेश और इसे वापस बदल दिया।

सिफारिश की: