जब आप अपना टर्मिनल खोलते हैं, तो संभावना है कि यह बैश को अपने यूनिक्स शेल वातावरण के रूप में उपयोग करता है। लेकिन अन्य "शेल" वातावरण मौजूद हैं।
C शेल, कॉर्न शेल, Z शेल, और यहां तक कि Fish शेल जैसे अन्य वातावरण हैं। इन सभी अलग-अलग शेल वातावरणों के अपने फायदे और नुकसान हैं, और आपको अपने सिस्टम पर उपयोग करने के लिए एक को चुनने से पहले उन पर विचार करना चाहिए।
इस लेख में, मैं कुछ लोकप्रिय शेल के साथ उनकी मुख्य विशेषताओं पर जाऊंगा ताकि आप एक चुन सकें।
बैश शेल
बैश शेल (या बॉर्न अगेन शेल) एक यूनिक्स शेल और कमांड भाषा है। इसे GNU प्रोजेक्ट के लिए ब्रायन फॉक्स द्वारा बॉर्न शेल (sh) के लिए एक मुफ्त सॉफ्टवेयर प्रतिस्थापन के रूप में लिखा गया था।
बैश को पहली बार 1989 में जारी किया गया था, और अधिकांश लिनक्स वितरण के लिए यह डिफ़ॉल्ट शेल वातावरण है। अन्य डिस्ट्रो, जैसे काली लिनक्स, Z शेल को अपने डिफ़ॉल्ट शेल के रूप में उपयोग करते हैं।
बैश उन पहले प्रोग्रामों में से एक था जिसे लिनक्स टॉर्वाल्ड्स (लिनक्स के निर्माता) ने लिनक्स में पोर्ट किया था।
छवि स्रोत
एक चीज़ जिसे लेकर आपको भ्रमित नहीं होना चाहिए वह यह है कि बैश एक प्रोग्रामिंग भाषा भी है। तो यह एक "शेल" है, लेकिन आप बैश में व्यवहार भी प्रोग्राम कर सकते हैं। उदाहरण के लिए:
#!/bin/bash echo "Hello World"
बैश के बारे में मुख्य बिंदु
- अधिकांश उपयोगकर्ता बैश का उपयोग करते हैं, क्योंकि यह अधिकांश सिस्टम पर डिफ़ॉल्ट शेल वातावरण है
- बैश में इंलाइन वाइल्डकार्ड अभिव्यक्ति नहीं होती है। एक वाइल्डकार्ड अभिव्यक्ति तब होती है जब आप अपने शेल में पैटर्न खोजना चाहते हैं, रेगेक्स के समान। तीन मुख्य वाइल्डकार्ड हैं
*,?, और[]। - आप डायरेक्टरी नाम को स्वचालित रूप से नहीं बदल सकते
#स्क्रिप्टिंग में कमेंट के रूप में माना जाता है- इसमें
shoptसेटिंग्स हैं - प्रॉम्प्ट में बैकस्लैश एस्केप हैं
- उपयोगकर्ता कॉन्फिगरेशन सेटिंग्स
.bashrcमें हैं
Z शेल
Z शेल, या Zsh भी एक यूनिक्स शेल है जो बैश के बहुत समान है। आप शेल को कमांड इंटरप्रेटर के रूप में स्क्रिप्ट और उपयोग भी कर सकते हैं।
Zsh बॉर्न शेल का एक विस्तार है जिसमें बहुत सारे सुधार हैं। Zsh को 1990 में पॉल फाल्स्टेड द्वारा जारी किया गया था, और इसमें कुछ विशेषताएं हैं जो बैश, कॉर्न शेल, और C शेल साझा करते हैं।
macOS डिफ़ॉल्ट रूप से Zsh शेल का उपयोग करता है।
छवि स्रोत
Zsh के बारे में मुख्य बिंदु
- टर्मिनल का उपयोग करते समय ऑटोकंप्लीशन के साथ आता है। इसलिए जब आप जो भी कमांड चलाना चाहते हैं उसे ऑटोकंप्लीट करने के लिए
Tab ↹दबाते हैं, तो यह न केवल आपके लिए ऑटोकंप्लीट करता है बल्कि अन्य सभी संभावित फ़ाइलों और डायरेक्टरी की एक ड्रॉप-डाउन सूची भी लाता है:

- इंलाइन वाइल्डकार्ड अभिव्यक्तियों का समर्थन करता है
- बैश की तुलना में कहीं अधिक कॉन्फिगरेबल
- प्लगइन्स और थीम का समर्थन करता है। Zsh के लिए उपलब्ध प्लगइन्स की सूची यहां दी गई है।
Z शेल के आसपास फ्रेमवर्क भी बने हैं। सबसे लोकप्रिय में से एक Oh My Zsh है, जो Zsh कॉन्फिगरेशन प्रबंधित करने के लिए एक समुदाय-संचालित, ओपन-सोर्स फ्रेमवर्क है। (मैं Oh My Zsh का उपयोग करता हूँ 😄)
छवि स्रोत
Zsh और Oh My Zsh समान हैं लेकिन बिल्कुल वही चीजें नहीं हैं। दोहराने के लिए, Oh My Zsh आपके Zsh कॉन्फिगरेशन को प्रबंधित करने का एक तरीका है, यह शेल स्वयं नहीं है।
Fish शेल
Fish एक यूनिक्स शेल वातावरण है जिसमें इंटरएक्टिविटी और उपयोगिता पर जोर दिया गया है। Zsh के विपरीत, Fish उपयोगकर्ता को डिफ़ॉल्ट रूप से इंटरएक्टिविटी देना चाहता है बजाय इसके कि उपयोगकर्ता पर अपनी कॉन्फिगरेशन लागू करने का भरोसा किया जाए।
इसे 2005 में एक्सल लिलजेंक्रांट्ज़ द्वारा बनाया गया था। Fish को "एक्सोटिक शेल" माना जाता है क्योंकि यह POSIX शेल मानकों का पालन नहीं करता है। [[स्रोत](https://en.wikipedia.org/wiki/Fish_(Unix_shell)]
छवि स्रोत
Fish के बारे में मुख्य बिंदु
- Fish में आपके कमांड इतिहास और जिस डायरेक्टरी में आप हैं, उसके आधार पर "टाइप करते ही खोज" स्वचालित सुझाव हैं। बैश के हिस्ट्री खोज के समान, Fish शेल की खोज हिस्ट्री हमेशा चालू रहती है। इस तरह उपयोगकर्ता अपने टर्मिनल में काम करते समय इंटरैक्टिव फीडबैक प्राप्त कर सकेगा।
छवि स्रोत
- Fish सिंटैक्स के बजाय कमांड के रूप में सुविधाओं को प्राथमिकता देता है। यह सुविधाओं को विकल्प और सहायता टेक्स्ट के साथ कमांड के संदर्भ में दृश्यमान बनाता है
- चूंकि Fish डिफ़ॉल्ट रूप से बहुत सारी कॉन्फिगरेशन के साथ आता है, इसलिए इसे Zsh जैसे अन्य
shविकल्पों की तुलना में अधिक शुरुआती-अनुकूल माना जाता है। - Fish की स्क्रिप्टिंग भाषा Zsh और बैश से अलग है। Zsh अधिक एलियास का उपयोग करता है जबकि Fish स्क्रिप्टिंग भाषा में एलियास के उपयोग से बचता है।
यदि आप केवल बेसिक कमांड जैसे cd, cp, vim, ssh, आदि का उपयोग करके स्क्रिप्ट बनाते हैं, तो आप Fish और बैश की स्क्रिप्टिंग भाषाओं के काम करने के तरीके में कोई अंतर नहीं देखेंगे।
सबसे बड़े अंतरों में से एक है जब आप किसी कमांड से आउटपुट कैप्चर करने का प्रयास करते हैं। बैश में आप इसके आदी हो सकते हैं:
todays_date=$(date) echo "Todays date is $todays_date"

Todays Date is Tue Dec 13 15:29:28 CST 2022
जबकि Fish में, आउटपुट कैप्चर करना अलग तरह से काम करता है। स्क्रिप्टिंग में Fish के लिए समकक्ष ऐसा दिखेगा:
set date (date) echo "Todays Date $date"
todays date is Tue Dec 13 21:35:03 UTC 2022
निष्कर्ष
बैश, Z शेल, और Fish शेल सभी के अपने गुण हैं, साथ ही कुछ समानताएं भी। अब आप उनके बारे में थोड़ा और जानते हैं, इसलिए आप उनमें से प्रत्येक को अपने कार्य वातावरण में प्रभावी ढंग से उपयोग कर सकते हैं।
यदि आप कुछ अधिक कॉन्फिगरेबल चाहते हैं, तो आप Zsh (या यहां तक कि Oh My Zsh इंस्टॉल) का उपयोग कर सकते हैं। यदि आप बहुत अधिक कॉन्फिगरेशन के बिना अधिक इंटरैक्टिव टर्मिनल अनुभव चाहते हैं, तो आप Fish शेल का उपयोग कर सकते हैं। यदि आप क्लासिक फील चाहते हैं, तो आप बस बैश रख सकते हैं।
यह वास्तव में एक डेवलपर के रूप में आपकी प्राथमिकताओं पर निर्भर करता है - बस वह शेल चुनें जो आपके लिए सबसे अच्छा काम करता है।
उम्मीद है इससे मदद मिली! पढ़ने के लिए धन्यवाद 🐚🐚🐚
मुफ्त में कोड करना सीखें। freeCodeCamp के ओपन सोर्स पाठ्यक्रम ने 40,000 से अधिक लोगों को डेवलपर के रूप में नौकरी पाने में मदद की है। शुरू करें