शेल स्क्रिप्टिंग के लिए शुरुआती गाइड 3 अधिक बुनियादी कमांड और चेन
आपने स्क्रिप्ट बनाना, तर्कों का उपयोग करना और छोरों के लिए निर्माण करना सीखा है। अब, चलिए कुछ और बुनियादी कमांड्स, टेक्स्ट फाइल हेरफेर और फाइलों और अन्य कमांड्स के इनपुट और आउटपुट को रीडायरेक्ट करते हैं.
कुछ बेसिक उपयोगी कमांड
हमने आपको पहले ही शेल स्क्रिप्ट का एक बेसिक ब्रेकडाउन और लूप्स के लिए एक उदाहरण-आधारित रूपरेखा प्रदान की है, लेकिन उन लेखों की जांच करना सुनिश्चित करें यदि आपने हमारे शेल स्क्रिप्टिंग गाइड को अब तक याद किया है.
कमांड-लाइन कई कारणों से अद्भुत है, और पुनर्निर्देशन सबसे प्रमुख में से एक है। यदि आपको आगे की कार्रवाई करने या किसी और चीज़ के लिए उपयोग करने के लिए प्रत्येक कमांड के आउटपुट को नोट करना और पुन: उत्पन्न करना था, तो हम सभी बहुत पहले पागल हो गए थे। पुनर्निर्देशन से हम उस आउटपुट का उपयोग कर सकते हैं और उसे बचा सकते हैं या तुरंत किसी अन्य कमांड के इनपुट के रूप में उपयोग कर सकते हैं। हम अन्य कमांड के लिए इनपुट के रूप में भी फाइल का उपयोग कर सकते हैं.
इससे पहले कि हम आगे बढ़ें, हम कुछ मूल आदेशों को कवर करते हैं जो कई अलग-अलग स्थानों में उपयोग किए जा सकते हैं.
गूंज - यह कमांड आउटपुट के रूप में कमांड-लाइन पर अपने तर्क की संपूर्णता को प्रिंट (प्रदर्शित) करता है
स्थानों के साथ गूंज तर्क
जैसा कि आप देख सकते हैं, विशेष पात्रों को "बचने" की आवश्यकता होती है, ताकि उन्हें सामान्य रूप से व्यवहार किया जाए। यह चरित्र के सामने एक बैकस्लैश (\) का उपयोग करके किया जाता है। उद्धरणों का उपयोग करना बेहतर विचार है। इको कमांड वेरिएबल्स के साथ भी काम करता है.
जैसा कि आप देख सकते हैं, सिंगल और डबल कोट्स अलग तरह से व्यवहार करते हैं। अधिक जानकारी के लिए, बैश शेल में सिंगल और डबल कोट्स के बीच क्या अंतर है, यह देखें?
बिल्ली - यह कमांड आउटपुट के रूप में टेक्स्ट फाइलों की सामग्री को प्रदर्शित करता है.
cat file_to_be_read
मान लें कि हम इस पाठ फ़ाइल को नैनो में बनाते हैं:
जब हम फ़ाइल पर कैट कमांड का उपयोग करते हैं, तो हम देख सकते हैं कि यह आउटपुट है.
grep - यह लिनक्स में आपके लिए उपलब्ध सबसे शक्तिशाली और उपयोगी कमांड में से एक है। यह ग्लोबल / रेगुलर एक्सप्रेशन प्रिंट के लिए है। यह एक फ़ाइल के माध्यम से दिखता है और किसी भी लाइन को प्रिंट करता है जो एक विशेष पैटर्न से मेल खाता है। क्योंकि यह पैटर्न "नियमित अभिव्यक्ति" पर आधारित है, एक संक्षिप्त रेखा से मिलान करने के लिए बहुत सारे पैटर्न मिल सकते हैं। हालांकि, नहीं के लिए, आप खोज के लिए एक टर्न दर्ज कर सकते हैं.
grep पैटर्न फ़ाइल
मैं आपको विश्वास दिलाता हूं, grep अधिक कर सकता है, लेकिन अभी के लिए चलो आसान सामान से चिपके रहते हैं.
पुनर्निर्देशन आउटपुट
किसी फ़ाइल में कमांड के आउटपुट को रीडायरेक्ट करने के लिए, हम एक विशेष चरित्र का उपयोग करते हैं, जो प्रतीक से बड़ा है (>).
चलो हमारी सूची में बदलाव करते हैं, हम करेंगे? निम्नलिखित कमांड दर्ज करें:
गूंज पेपरोनी> सूची
आप देख सकते हैं कि ईको लाइन को प्रदर्शित नहीं करता है, और जब हम "सूची" फ़ाइल की सामग्री को देखते हैं, तो हम देखते हैं कि हमने वहां क्या प्रतिध्वनित किया.
यह भी ध्यान रखें कि "सूची" की पिछली सामग्री हटा दी गई थी। दुबारा कोशिश कीजिये:
यह तब उपयोगी हो सकता है जब आप किसी फ़ाइल का पुन: उपयोग करना चाहते हैं, लेकिन अक्सर हम मौजूदा फ़ाइल में जोड़ना चाहते हैं। इसके लिए, हम दो लगातार अधिक से अधिक प्रतीकों का उपयोग करते हैं:
गूंज पीली मिर्च >> सूची
आसान! चलो इस आदेश का उपयोग एक बड़ी सूची बनाने के लिए करेंगे, हम करेंगे?
हम वहाँ चलें। मुझे लगता है कि आप देख सकते हैं कि इतने सारे geeks कमांड-लाइन का उपयोग सूची और पसंद करने के लिए क्यों करते हैं, लेकिन यह और भी बेहतर हो जाता है.
आइए एक कमांड का आउटपुट लें और इसे एक फाइल में डालें:
ls -al /> ~ / रूटलिस्ट
फ़ाइलों की सूची बनाना, उन्हें संपादित करना और फिर आप जो चाहते हैं उन पर कमांड चलाना कभी भी सरल नहीं रहा है। और, जब हम कमांड-लाइन में इन बुनियादी कार्यों को कर रहे हैं, तो ये लिपियों में भी अच्छी तरह से काम करते हैं.
पाइपिंग, या चेनिंग
पाइपिंग को इसलिए नाम दिया गया है क्योंकि यह पाइप का उपयोग करता है, (!, सबसे कीबोर्ड पर \ की कुंजी के साथ साझा किया गया है)। अनिवार्य रूप से, यह एक कमांड का आउटपुट लेता है और सीधे इसे दूसरे को फीड करता है। आप इस तरह से एक बहुत ही विशिष्ट वांछित आउटपुट प्राप्त करने के लिए कमांड की लंबी श्रृंखला बना सकते हैं, और यह grep जैसी कमांड के लिए बहुत सुविधाजनक है.
यह कई बार ">" की तरह काम करता है, सिवाय इसके कि इसे कई बार जंजीर में डाला जा सकता है और इसका प्रभाव अधिक सामान्य होता है कि इसे किसी पाठ फ़ाइल में जाने की आवश्यकता नहीं होती है.
जैसा कि आप देख सकते हैं, grep केस-संवेदी है। इसे अनदेखा करने के लिए आप "-i" झंडे का उपयोग कर सकते हैं.
पुनर्निर्देशित इनपुट्स
आप कम-से-कम प्रतीक का उपयोग करके आदेशों के लिए फ़ाइलों से इनपुट भी ले सकते हैं (<).
बिल्ली < list
"आप किसी तर्क का उपयोग करने से अलग नहीं हैं!" आप कह सकते हैं। ठीक है, आप इस मामले में सही होंगे। जहां इनपुट का पुनर्निर्देशन वास्तव में काम में आता है, एक साथ कमांड का पीछा करने में है.
मान लीजिए कि हम किसी भी ऐसे शब्द को फ़िल्टर करना चाहते हैं, जिसमें हमारी वर्तमान "सूची" फ़ाइल से "पुनरावृत्ति" हो, जिसे "पुनरीक्षण" नामक एक नई फ़ाइल में रखा गया है.
जीआरई पीप संशोधन
आइए इस कमांड को फिर से करें, और कुछ छँटाई जोड़ें.
जीआरई पीप संशोधन
यह इनपुट फ़ाइल "सूची" से खोज शब्द के रूप में "pep" का उपयोग करेगा, इसे वर्णानुक्रम में क्रमबद्ध करें (सभी ऊपरी-मामले की शर्तें सभी निचले-मामले की शर्तों के बाद), फिर इसे "संशोधन" फ़ाइल में आउटपुट करें.
सॉर्ट कमांड को समझने के लिए, आइए निम्न उदाहरण देखें:
जैसा कि आप देख सकते हैं, सॉर्ट कमांड में "-f" झंडे को जोड़ने से आप मामले को अनदेखा कर सकते हैं। इससे हमें पाठ फ़ाइलों में लाइनों को वर्णानुक्रम में लाना आसान हो जाता है और बड़े होने पर कैपिटलाइज़ेशन को अनदेखा कर देता है.
एक साधारण स्क्रिप्ट
आइए एक स्क्रिप्ट बनाएं जिसमें निम्न रूप हैं:
लिपि खोजकर्ता सूची
यह एक शब्द फ़ाइल के माध्यम से खोज करने और परिणाम को सॉर्ट करने और फिर उन्हें किसी अन्य फ़ाइल में आउटपुट करने के लिए grep का उपयोग करेगा.
यहां वह निर्देशिका है जो हम स्क्रिप्ट का परीक्षण करेंगे:
और, हम यहां क्या है की एक सूची बना सकते हैं, फिर स्क्रिप्ट चला सकते हैं.
तुम वहाँ जाओ! जितना अधिक आप नियमित अभिव्यक्ति के नियमों को सीखते हैं, उतना ही सही आप एक खोज कमांड को एक साथ रख सकते हैं। और, उद्धरण में मान्य कुछ भी आपके पहले तर्क के लिए प्रतिस्थापित किया जा सकता है!
जहाँ तक छँटाई जाती है, आप वर्णानुक्रम में सिर्फ छँटाई से अधिक कर सकते हैं। निम्नलिखित में से कुछ आदेशों के लिए मैन पेज देखें:
- tsort - एक अधिक उन्नत टोपोलॉजिकल सॉर्टिंग फ़ंक्शन
- tr - आपको अन्य वर्णों के लिए विशिष्ट वर्णों को मैप करने देता है, और उन दोनों के बीच स्थानांतरित करता है.
- यूनीक - किसी भी गैर-अद्वितीय को हटाता है (पढ़ें: डुप्लिकेट)
- awk - एक बहुत ही उन्नत टेक्स्ट प्रोसेसिंग लैंग्वेज / फंक्शन जिसका उपयोग फाइलनेम में अलग-अलग फील्ड में किया जा सकता है
- कट, पेस्ट / ज्वाइन - टेक्स्ट फ़ाइलों से फ़ील्ड्स को अलग करने और कॉलम में नया डेटा जोड़ने के लिए उपयोगी कमांड
- देखो - grep जैसी खोजें करता है, लेकिन लुकअप के लिए एक डिक्शनरी फाइल (जो यूजर द्वारा निर्दिष्ट की जा सकती है) का उपयोग करता है
- wc - आपको वर्ड काउंट, लाइन काउंट, कैरेक्टर काउंट और बहुत कुछ मिलता है
हमने आज कुछ और मूल बातों पर ध्यान दिया, जो लिपियों की तरह कमांड-लाइन पर भी उपयोगी हो सकती हैं। टेक्स्ट-आधारित डेटा अक्सर उन चीज़ों के दिल में होता है जो हम दैनिक उपयोग करते हैं, इसलिए इसके साथ काम करने में सक्षम है, इसे खोजें, और इसे हेरफेर करें।.
आपकी कुछ पसंदीदा स्क्रिप्ट्स क्या हैं? क्या टेक्स्ट-आधारित फ़ाइलों के लिए कोई विशेष-उपयोग स्क्रिप्ट है? आप जो जानते हैं उसे टिप्पणियों में साझा करें!