शेल स्क्रिप्टिंग क्या है और आपको इसका उपयोग क्यों करना चाहिए

शेल स्क्रिप्टिंग क्या है और आपको इसका उपयोग क्यों करना चाहिए

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





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





1. शैल का इतिहास

1970 के दशक में यूनिक्स से शुरू होकर, एक शेल प्रोग्राम था जिसे कहा जाता था V6 शेल केन थॉमसन द्वारा विकसित। यह एक इंटरैक्टिव शेल था और इसमें स्क्रिप्टिंग क्षमता का अभाव था।





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

1980 के दशक में शेल के आगे के विकास ने कई लोकप्रिय शेल वेरिएंट को जन्म दिया, जिनमें से सबसे लोकप्रिय थे सी खोल और यह कॉर्न शैल . इनमें से प्रत्येक शेल अपना स्वयं का सिंटैक्स लेकर आया, जो कुछ मामलों में, मूल शेल से काफी अलग था।



आज के सबसे लोकप्रिय गोले में से एक है बैश शेल . बैश का मतलब है बोर्न अगेन शैल और मूल बॉर्न शेल का एक बहुत ही उन्नत संस्करण है।

मैं अपने ईमेल पते से जुड़े सभी वेबसाइट खातों को कैसे ढूंढ सकता हूं?

इस लेख में, हम शेल स्क्रिप्टिंग का वर्णन करते हैं बैश शैल .





2. एक शेल स्क्रिप्ट निष्पादित करना

आप शेल स्क्रिप्ट कैसे निष्पादित करते हैं? सरल। शेल के तर्क के रूप में बस स्क्रिप्ट पथ को पास करें:

एक नमूना खोल स्क्रिप्ट:





echo 'hello world'

इसे निम्नानुसार चलाएं:

$ bash hello.sh
# prints
hello world

ध्यान दें: शेल को LF वर्णों (लाइन-फ़ीड) द्वारा समाप्त करने के लिए लाइनों की आवश्यकता होती है। यदि आप विंडोज़ पर अपनी शेल स्क्रिप्ट लिखते हैं और इसे सीधे लिनक्स सिस्टम पर निष्पादित करने का प्रयास करते हैं, तो आप त्रुटियों में भाग सकते हैं। विंडोज़ लाइन टर्मिनेशन के लिए सीआर-एलएफ संयोजन (कैरिज-रिटर्न-लाइन-फीड) का उपयोग करता है। इसे केवल एलएफ में परिवर्तित करने की आवश्यकता है। ऐसा करने के तरीकों के लिए अपने विंडोज संपादक की जाँच करें।

शेल स्क्रिप्ट को सीधे कमांड के रूप में निष्पादित करने का एक और तरीका है। निम्नलिखित पंक्ति डालें ( हैशबैंग घोषणा) आपकी शेल स्क्रिप्ट की पहली पंक्ति के रूप में।

ठीक है गूगल मैं सुनना चाहता हूँ
#!/bin/bash

इस परिवर्तन के साथ, हमारी सरल शेल स्क्रिप्ट अब है:

#!/bin/bash
echo 'hello world'

अब, आपको स्क्रिप्ट फ़ाइल को निम्नानुसार निष्पादन योग्य बनाने की आवश्यकता है:

$ chmod +x hello.sh

इस बिंदु पर, आप शेल को स्पष्ट रूप से संदर्भित किए बिना सीधे स्क्रिप्ट फ़ाइल निष्पादित कर सकते हैं।

$ hello.sh
# prints
hello world

आइए अब शेल स्क्रिप्ट का उपयोग करने के कुछ लाभों को देखें।

3. कार्य स्वचालन

शेल स्क्रिप्ट का उपयोग करने का पहला लाभ अक्सर निष्पादित कार्यों को स्वचालित करना है। मान लीजिए कि आपके पास एक कार्य है जिसे आपको प्रतिदिन करने की आवश्यकता है। यदि आपको अपने linux सिस्टम पर प्रतिदिन कई कमांड निष्पादित करने की आवश्यकता है, तो आप इन कमांड को एक फ़ाइल में संग्रहीत कर सकते हैं और स्क्रिप्ट चला सकते हैं। उदाहरणों में शामिल:

  • एक फ़ाइल या फ़ोल्डर को प्रतिदिन संग्रहित करें और अपलोड करें a क्लाउड स्टोरेज सुविधा जैसे S3.
  • लॉग फ़ाइलों को संपीड़ित करें जो प्रतिदिन बढ़ती हैं।
  • स्टॉक मूल्य प्राप्त करें, प्राप्त किए गए डेटा को पार्स करें, और कुछ शर्तें पूरी होने पर ईमेल या एसएमएस ट्रिगर करें (बहुत अधिक या बहुत कम कीमतें)।

4. एकाधिक कमांड का संयोजन

बार-बार होने वाले कार्यों को स्वचालित करने के अलावा, आपको यह भी लाभप्रद लग सकता है कि आप कमांड के कई अनुक्रमों को एक ही कमांड में जोड़ सकते हैं। एक ही कमांड को याद रखना कई कमांडों की तुलना में बहुत सरल है, उस क्रम का उल्लेख नहीं करना जिसमें उन्हें निष्पादित किया जाना चाहिए।

एक उदाहरण स्वयं लिनक्स ऑपरेटिंग सिस्टम का बूट-अप अनुक्रम होगा। बूट-अप के एक भाग के रूप में, OS सिस्टम को उचित स्थिति में लाने के लिए कई कमांड निष्पादित करता है। ये आदेश वास्तव में शेल स्क्रिप्ट हैं जो इसके अंतर्गत रहते हैं /आदि निर्देशिका। यदि आप इनमें से किसी एक शेल स्क्रिप्ट पर एक नज़र डालते हैं, तो आप एक सिस्टम को बूट करने की जटिलता को महसूस करेंगे, जिसे शेल स्क्रिप्ट के अभाव में आपको हाथ से निष्पादित करना पड़ सकता है।

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

# /etc/profile: system-wide .profile file for the Bourne shell (sh(1))
# and Bourne compatible shells (bash(1), ksh(1), ash(1), ...).
if [ '$PS1' ]; then
if [ '$BASH' ] && [ '$BASH' != '/bin/sh' ]; then
# The file bash.bashrc already sets the default PS1.
# PS1='h:w$ '
if [ -f /etc/bash.bashrc ]; then
. /etc/bash.bashrc
fi
else
if [ '`id -u`' -eq 0 ]; then
PS1='# '
else
PS1='$ '
fi
fi
fi
# The default umask is now handled by pam_umask.
# See pam_umask(8) and /etc/login.defs.
if [ -d /etc/profile.d ]; then
for i in /etc/profile.d/*.sh; do
if [ -r $i ]; then
. $i
fi
done
unset i
fi

5. विकसित करने में आसान

C/C++ में लिखे गए नियमित प्रोग्राम के अंदर शेल स्क्रिप्ट के समान कार्य करना संभव है। हालाँकि, C/C++ प्रोग्राम की तुलना में शेल स्क्रिप्ट लिखना और डीबग करना कहीं अधिक आसान है। विशेष रूप से सिस्टम प्रशासन कार्यों के लिए जिसमें बाहरी कमांड का निष्पादन, फाइलों और निर्देशिकाओं को बनाना और हटाना, आउटपुट को पुनर्निर्देशित करना आदि शामिल हैं।

C/C++ प्रोग्राम बहुत निचले स्तर के संचालन के लिए बेहतर होते हैं, जैसे सिस्टम कॉल को लागू करना, डेटा संरचनाओं में हेरफेर करना आदि।

6. पारदर्शिता

एक शेल स्क्रिप्ट, एक टेक्स्ट फ़ाइल होने के कारण, यह देखने के लिए आसानी से देखी जा सकती है कि यह कौन सी क्रिया कर रही है। इसके विपरीत, आप कभी भी यह जान पाएंगे कि C/C++ (और एक निष्पादन योग्य के लिए संकलित) जैसी भाषा में लिखा गया प्रोग्राम क्या कर रहा है, यदि वह आपको बताना चाहता है या यदि आपके पास स्रोत कोड तक पहुंच है। उदाहरण के लिए, आप जांच सकते हैं कि कोई शेल स्क्रिप्ट किसी फ़ाइल को हटा रही है या नहीं, और यदि आपको उन फ़ाइलों की आवश्यकता है, तो आप उन्हें किसी भिन्न स्थान पर कॉपी कर सकते हैं।

नियमित कार्यक्रमों के बजाय शेल स्क्रिप्ट के साथ समस्याओं का निदान करना भी बहुत आसान है क्योंकि आप स्रोत कोड देख सकते हैं। क्या वह स्क्रिप्ट विफल हो रही है क्योंकि निर्देशिका मौजूद नहीं है? आप स्क्रिप्ट कोड में देख सकते हैं और निर्देशिका बना सकते हैं (हालांकि एक अच्छी तरह से व्यवहार की गई शेल स्क्रिप्ट को ऐसी त्रुटियों से बचने के लिए इसे जांचना और बनाना चाहिए)।

7. पोर्टेबल

प्रति शेल स्क्रिप्ट अन्य यूनिक्स और यूनिक्स जैसे ऑपरेटिंग सिस्टम में स्थानांतरित किया जा सकता है और निष्पादित किया जा सकता है (यदि शेल स्वयं मौजूद है)। विभिन्न आर्किटेक्चर जैसे x86, MIPS, स्पार्क, आदि से शेल स्क्रिप्ट को स्थानांतरित करते समय भी, शेल स्क्रिप्ट C/C++ प्रोग्राम की तुलना में बहुत अधिक पोर्टेबल होते हैं।

एक सी/सी++ प्रोग्राम को दूसरे सिस्टम पर स्थानांतरित और उपयोग करने का एकमात्र तरीका स्रोत कोड की प्रतिलिपि बनाना, प्रोग्राम बनाना और इसे चलाने का प्रयास करना है। फिर भी, यदि यह आर्किटेक्चर-विशिष्ट कोड का उपयोग करता है तो यह अपेक्षा के अनुरूप काम नहीं कर सकता है।

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

आउटलुक में ईमेल ग्रुप कैसे बनाएं
साझा करना साझा करना कलरव ईमेल अपने वर्चुअलबॉक्स लिनक्स मशीनों को सुपरचार्ज करने के लिए 5 टिप्स

वर्चुअल मशीनों द्वारा पेश किए गए खराब प्रदर्शन से थक गए हैं? अपने वर्चुअलबॉक्स प्रदर्शन को बढ़ावा देने के लिए आपको यहां क्या करना चाहिए।

आगे पढ़िए
संबंधित विषय
  • प्रोग्रामिंग
  • लिनक्स बैश शेल
लेखक के बारे में जय श्रीधर(17 लेख प्रकाशित) जय श्रीधर की और फ़िल्में या टीवी शो

हमारे न्यूज़लेटर की सदस्यता लें

तकनीकी युक्तियों, समीक्षाओं, निःशुल्क ई-पुस्तकों और अनन्य सौदों के लिए हमारे न्यूज़लेटर से जुड़ें!

सब्सक्राइब करने के लिए यहां क्लिक करें