शैल क्या करते हैं?
जब आप कमांड लाइन पर साइन इन करते हैं या लिनक्स पर टर्मिनल विंडो लॉन्च करते हैं, तो सिस्टम शैल प्रोग्राम लॉन्च करता है। शैल कमांड लाइन पर्यावरण को विस्तारित करने का एक मानक तरीका प्रदान करते हैं। यदि आप चाहें तो आप किसी दूसरे के लिए डिफ़ॉल्ट खोल को स्वैप कर सकते हैं।
पहला खोल पर्यावरण थॉमसन शेल था, जिसे बेल लैब्स में विकसित किया गया था और 1 9 71 में जारी किया गया था। शैल वातावरण तब से अवधारणा पर निर्माण कर रहे हैं, जिसमें कई नई विशेषताएं, कार्यक्षमता और गति सुधार शामिल हैं।
उदाहरण के लिए, बैश कमांड और फ़ाइल नाम पूर्णता, उन्नत स्क्रिप्टिंग सुविधाओं, एक कमांड इतिहास, कॉन्फ़िगर करने योग्य रंग, कमांड उपनाम, और कई अन्य विशेषताओं की पेशकश करता है जो 1 9 71 में पहले शेल जारी किए जाने पर उपलब्ध नहीं थे।
शैल का उपयोग विभिन्न सिस्टम सेवाओं द्वारा पृष्ठभूमि में भी किया जाता है। लिनक्स वितरण में शैल स्क्रिप्ट के रूप में लिखे गए कई फ़ंक्शन शामिल हैं। ये स्क्रिप्ट शेल पर्यावरण के माध्यम से चलने वाले कमांड और अन्य उन्नत शैल स्क्रिप्टिंग फ़ंक्शन हैं।
शेल अग्रणी बैश तक: श, सीएसएच, टीएसएच, और क्ष
आधुनिक गोले का सबसे प्रमुख प्रजनन बोर्न शेल है जिसे "श" भी कहा जाता है - जिसका नाम उसके निर्माता स्टीफन बोर्न के नाम पर रखा गया था, जिन्होंने एटी एंड टी के बेल लैब्स में काम किया था। 1 9 7 9 में जारी किया गया, यह यूनिक्स में कमांड प्रतिस्थापन, पाइपिंग, चर, स्थिति परीक्षण, और लूपिंग के लिए अन्य सुविधाओं के साथ समर्थन के कारण डिफ़ॉल्ट कमांड-दुभाषिया बन गया। इसने उपयोगकर्ताओं के लिए अधिक अनुकूलन प्रदान नहीं किया, और इस तरह के आधुनिक नस्लों को उपनाम, कमांड पूरा करने और खोल कार्यों के रूप में समर्थन नहीं दिया (हालांकि यह अंतिम अंततः जोड़ा गया था)।
सी खोल, या "सीएसएच", 1 9 70 के दशक के अंत में कैलिफ़ोर्निया विश्वविद्यालय, बर्कले में बिल जॉय द्वारा विकसित किया गया था। इसमें बहुत से इंटरैक्टिव तत्व जोड़े गए जिनके साथ उपयोगकर्ता अपने सिस्टम को नियंत्रित कर सकते थे, जैसे उपनाम (लंबे आदेशों के लिए शॉर्टकट), नौकरी प्रबंधन क्षमताओं, कमांड इतिहास आदि। इसे सी प्रोग्रामिंग भाषा से मॉडलिंग किया गया था, जिसमें यूनिक्स ऑपरेटिंग सिस्टम स्वयं लिखा गया था। इसका मतलब यह भी था कि बोर्न शैल के उपयोगकर्ताओं को सी सीखना था ताकि वे इसमें कमांड दर्ज कर सकें। इसके अलावा, सीएसएच में काफी कुछ बग थीं जो उपयोगकर्ताओं और रचनाकारों द्वारा एक बड़ी अवधि में समान रूप से हथियाने लगती थीं। लोग स्क्रिप्ट के लिए बोर्न शेल का उपयोग करके समाप्त हो गए क्योंकि यह गैर-इंटरैक्टिव कमांड को बेहतर तरीके से संभाला, लेकिन सामान्य उपयोग के लिए सी खोल के साथ फंस गया।
बैश का जन्म
1 9 8 9 में अपनी पहली रिलीज के बाद दशकों में बैश में सुधार हुआ है, लेकिन आज भी अधिकांश लिनक्स वितरण पर यह डिफ़ॉल्ट खोल है। यह ऐप्पल के मैकोज़ पर भी डिफ़ॉल्ट खोल है, और माइक्रोसॉफ्ट के विंडोज 10 पर इंस्टॉलेशन के लिए उपलब्ध है।
नए शैल: राख, डैश, zsh, और मछली
चूंकि लिनक्स समुदाय वर्षों से बैश पर बस गया है, जब डेवलपर्स 28 साल पहले पहली बार जारी किए जाने पर नए गोले बनाने से नहीं रोकते थे।
केनेथ अल्मक्विस्ट ने बोर्न शेल क्लोन बनाया जिसे अल्मक्विश शैल, ए शैल, "राख" या कभी-कभी सिर्फ "sh" कहा जाता है। यह भी POSIX संगत था और यूनिक्स की एक अलग शाखा, बीएसडी में डिफ़ॉल्ट खोल बन गया। राख खोल बैश की तुलना में अधिक हल्का है, जो इसे एम्बेडेड लिनक्स सिस्टम में लोकप्रिय बनाता है। यदि आपके पास BusyBox इंस्टॉल किए गए एक एंड्रॉइड फोन हैं- या सॉफ्टवेयर के BusyBox सूट के साथ कोई अन्य डिवाइस- यह राख से कोड का उपयोग कर रहा है।
आपको कौन सा चुनना चाहिए? (और क्यों ज़श लोकप्रिय है)
आपको एक खोल चुनने की जरूरत नहीं है। आपका ऑपरेटिंग सिस्टम आपके लिए अपना डिफ़ॉल्ट खोल चुनता है, और वह विकल्प लगभग हमेशा बैश होता है। एक लिनक्स वितरण के सामने बैठें- या यहां तक कि मैक- और आपके पास लगभग हमेशा एक बैश खोल वातावरण होगा। बैश में कुछ उन्नत विशेषताएं हैं, लेकिन आप शायद तब तक उनका उपयोग नहीं करेंगे जब तक आप शैल स्क्रिप्ट प्रोग्राम नहीं करते।
एम्बेडेड लिनक्स सिस्टम या बीएसडी सिस्टम पर, आप राख खोल के साथ समाप्त हो जाएंगे। लेकिन राख एक बोर्न आधारित शेल है और यह काफी हद तक बाश के साथ संगत है। बैश का उपयोग करने से आपके पास कोई भी ज्ञान एश या डैश खोल का उपयोग करने के लिए स्थानांतरित होगा, हालांकि इस हल्के खोल में कुछ उन्नत स्क्रिप्टिंग सुविधाएं उपलब्ध नहीं हैं।
लगभग हर शेल आप सामना करेंगे बोर्न आधारित है और इसी तरह काम करता है-जिसमें 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
आदेश और इसे वापस बदल दिया।