लिनक्स में बैश शेल का उपयोग करके खुश हैं? या क्या आप एक विकल्प आज़माना पसंद करेंगे? चुनने के लिए tsch, fish, KornShell, और Z Shell हैं। लेकिन इन लोकप्रिय लिनक्स शेल में से कौन सा सर्वश्रेष्ठ है?
लिनक्स शेल क्या है?
आमतौर पर, जब आप एक एप्लिकेशन लिखते हैं, तो यह एक हाई-लेवल भाषा में किया जाता है जिसे मनुष्य समझ सकते हैं। इनके उदाहरण C#, Java, C++, आदि हैं। विश्वास करें या न करें, आपका कंप्यूटर सब कुछ 1s और 0s के रूप में देखता है, या जैसा कि आमतौर पर जाना जाता है, बाइनरी या मशीन कोड।
एक कंपाइलर तब हाई-लेवल भाषा को एक एक्जीक्यूटेबल जैसी बाइनरी फाइल में अनुवाद करेगा। यह बाइनरी फाइल है जिसे आप उक्त एप्लिकेशन को लॉन्च करने के लिए निष्पादित करते हैं।
अब, यह इस बात का बहुत हाई-लेवल व्यू है कि क्या होता है; बस याद रखें, आपके कंप्यूटर को एक ट्रांसलेशन लेयर की आवश्यकता होती है। यह आपके द्वारा इसे करने के लिए कहने और यह कैसे समझ सकता है, के बीच बैठता है।
एक शेल जिसे इंटरप्रेटर के रूप में जाना जाता है। एक कंपाइलर के समान, एक इंटरप्रेटर मानव कोड को मशीन कोड में अनुवाद करता है। अंतरों में से एक यह है कि एक इंटरप्रेटर यह एक समय में एक स्टेटमेंट करता है। इस बीच, एक कंपाइलर पूरे प्रोग्राम को स्कैन करता है और इसे सभी मशीन कोड में अनुवाद करता है।
शेल, तब, आपके ऑपरेटिंग सिस्टम (OS) के साथ इंटरैक्ट करने के लिए एक इंटरफेस है। जैसे ही आप शेल में कमांड टाइप करते हैं, यह उन कमांड की व्याख्या करने और जादू करने के लिए जिम्मेदार होता है। फाइल कॉपी करना, पाइपिंग, फाइल लिस्ट करना सभी शेल के दायरे में हैं।
कई लिनक्स शेल उपलब्ध हैं। अपने सिस्टम पर उपलब्ध सभी शेल का पता लगाने के लिए, टर्मिनल खोलें और टाइप करें:
cat /etc/shells
यह पता लगाने के लिए कि आप वर्तमान में किस शेल का उपयोग कर रहे हैं, टाइप करें:
echo $0
लेकिन क्या आप सर्वश्रेष्ठ लिनक्स शेल का उपयोग कर रहे हैं? आइए देखें कि क्या उपलब्ध है।
1. Bash
यह लिनक्स उपयोगकर्ताओं के बीच सबसे लोकप्रिय शेल है। बॉर्न-अगेन शेल (bash) के बारे में सोचे बिना शेल के बारे में सोचना मुश्किल है। कई लिनक्स वितरण bash को डिफ़ॉल्ट शेल के रूप में शिप करते हैं क्योंकि bash डिफ़ॉल्ट GNU शेल है। 1989 में जारी, यह इसके पीछे कुछ दशकों के स्वस्थ विकास का भी दावा करता है।
Bash का पूर्ववर्ती The Bourne Shell (sh) है जो मूल Unix शेल में से एक है। sh प्रोग्रामर्स के लिए एक आकर्षक विशेषता यह थी कि वे अपने स्क्रिप्ट को पूरी तरह से अपरिवर्तित bash में पोर्ट कर सकते थे। Bash अपने पूर्ववर्ती के लिए कई संवर्द्धन भी प्रदान करता है:
- कमांड कम्पलीशन
- कमांड हिस्ट्री
अक्सर ऑनलाइन डॉक्यूमेंटेशन यह मान लेगा कि आप bash का उपयोग कर रहे हैं। हालांकि, यह इसकी कमियों के बिना नहीं है - जैसा कि जिस किसी ने भी कभी बैश स्क्रिप्ट लिखी है वह प्रमाणित कर सकता है! ऐसा नहीं है कि आप कुछ नहीं कर सकते, यह है कि यह पढ़ने और लिखने में हमेशा विशेष रूप से सुंदर नहीं होता।
2. KornShell
आमतौर पर ksh के रूप में जाना जाता है, KornShell एक लोकप्रिय वैकल्पिक लिनक्स शेल है जो 1980 के दशक में Bell Labs से उत्पन्न हुआ। bash और ksh के बीच कई अंतर नहीं हैं, लेकिन प्रत्येक को दूसरे पर मामूली फायदे हैं। Ksh, उदाहरण के लिए, cd old new कमांड है। यदि आप डायरेक्टरी /Downloads/foo/bar/one/foobar में थे और आपको /Downloads/foo/bar/two/foobar में जाने की आवश्यकता थी तो आपको बस दर्ज करने की आवश्यकता है:
cd one two
ksh के दिग्गज इसकी स्क्रिप्टिंग लाभों का उल्लेख करके इसकी श्रेष्ठता की वकालत करेंगे। इनमें शामिल हैं:
- बेहतर लूप सिंटैक्स
- कमांड दोहराने के प्राकृतिक तरीके
- एसोसिएटिव एरे
bash के विपरीत, ksh के लिए ऑनलाइन मदद ढूंढना कठिन है। यदि आप ksh को आज़माना चाहते हैं तो दर्ज करें:
sudo apt install ksh
ksh
3. Tcsh
Tcsh अपनी जड़ों को Unix के शुरुआती दिनों में ट्रेस कर सकता है। यह C shell (csh) का एक बेहतर संस्करण है और इसमें शामिल हैं:
- प्रोग्रामेबल कमांड-लाइन कम्पलीशन
- कमांड-लाइन एडिटिंग
- उपनामों में आर्गुमेंट जोड़ना
- आसान कमांड हिस्ट्री एक्सेस
आप प्रदर्शित हिस्ट्री में इसकी संबंधित संख्या से n को बदलकर !n टाइप करके कोई भी कमांड चला सकते हैं। Tcsh में हिस्ट्री टैब कम्पलीशन !a<TAB> टाइप करके काम करता है।
यह "a" अक्षर से शुरू होने वाले अंतिम कमांड तक विस्तारित होता है। तुलनात्मक रूप से, bash में, आपको पहले कमांड देखने के लिए !a:p टाइप करना होगा, इसके बाद इसे निष्पादित करने के लिए !!।
tcsh को आज़माने के लिए, टाइप करें:
sudo apt install tcsh
tcsh
Tcsh, FreeBSD जैसे BSD-आधारित सिस्टम के लिए डिफ़ॉल्ट शेल है। tcsh के लिए बड़ा विक्रय बिंदु इसकी स्क्रिप्टिंग भाषा है, जो किसी के लिए उपयोगी है जो मुख्य रूप से C में प्रोग्रामिंग कर रहा है। यह tcsh को छोटे C प्रोग्राम को प्रोटोटाइप करने के लिए उपयोगी बनाता है बिना इस बात से भ्रमित हुए कि आप किस ब्रैकेट का उपयोग कर रहे हैं। यह समस्या तब होती है जब आप लगातार C प्रोग्रामिंग और शेल स्क्रिप्टिंग के बीच स्विच कर रहे होते हैं।
4. Fish
लिनक्स की सारी गंभीरता के बीच, fish की टीम ने अपने प्रोजेक्ट में हास्य की भावना एम्बेड की है। उनकी वेबसाइट पर, जीभ-इन-गाल शीर्षक पढ़ता है "Finally, a command line shell for the 90s" हालांकि fish ("friendly interactive shell") 2005 में विकसित किया गया था। टाउटेड "Glorious VGA Color" के अलावा, अन्य शेल पर कुछ संवर्द्धन हैं:
- अमान्य सिंटैक्स वाले कमांड लाल रंग में प्रदर्शित होते हैं
- सही सिंटैक्स नीले रंग में दिखाई देता है
- ऑटो-कम्प्लीट सुझाव
- आपकी मशीन पर मैन पेज के आधार पर कमांड कम्पलीशन
यह सुविधा नए इंस्टॉल्ड सॉफ़्टवेयर के मैन पेज से सिंटैक्स को आपके ऑटो-कम्प्लीट सुझावों में जोड़ती है। यदि आप कमांड लाइन से अधिक परिचित होना चाहते हैं, तो fish शुरू करने के लिए एक शानदार जगह हो सकती है।
fish किस बारे में है इसका नमूना लेने के लिए, टाइप करें:
sudo apt install fish
fish
5. Z Shell
कई लोग इसे अंत के लिए सर्वश्रेष्ठ शेल छोड़ना मानेंगे, जो पूरी तरह से समझ में आता है। Zsh, bash और ksh के समान है और उनमें पाई जाने वाली कई विशेषताओं के साथ-साथ tcsh को भी शामिल करता है। Zsh की विशेषताएं:
- नेविगेबल ऑटोकम्प्लीशन सूची
- बेहतर स्पेलिंग सुधार
- कमांड लाइन कम्पलीशन
- टर्मिनल में शेयर्ड हिस्ट्री
- ग्लोबिंग (फाइलनाम के लिए वाइल्डकार्ड वर्ण)
Zsh में ग्लोबिंग बहुत उपयोगी है। टाइप करना:
vim /u/l/b/a<TAB>
फाइल खोलेगा:
/usr/local/bin/autoupdate.sh
यदि आप डिफ़ॉल्ट कॉन्फ़िग के साथ नहीं जाते हैं तो Zsh को पहली बार उपयोग पर कॉन्फ़िगर करने में कुछ समय लग सकता है। इसे आज़माने के लिए, दर्ज करें:
sudo apt install zsh
zsh
मेरे लिए कौन सा लिनक्स शेल सर्वश्रेष्ठ है?
यह तथ्य कि ये विकल्प उपलब्ध हैं, शानदार है। प्रत्येक कंप्यूटिंग इतिहास में एक झलक है, जहां प्रोग्रामर ने तय किया कि वे चीजों को अपने तरीके से करना चाहते हैं।
इन शेल के बीच वास्तविक अंतर स्क्रिप्टिंग सिंटैक्स में पाए जा सकते हैं। प्रत्येक शेल में बारीकियों का एक विशेष सेट होता है जो उन्हें एक दूसरे से अलग करता है। जैसा कि खड़ा है, मार्केट शेयर के मामले में bash का दबदबा है, जो मदद ढूंढना बहुत सरल बनाता है। Bash बस सबसे अच्छा ऑल-राउंडर है, सभी को छोड़कर सबसे उन्नत उपयोगकर्ताओं की जरूरतों को पूरा करता है।
जब आप एक लिनक्स शेल पर बस गए हैं, तो सुनिश्चित करें कि आप शेल स्क्रिप्टिंग की मूल बातें से परिचित हैं।