लिनक्स बैश शेल की सबसे शक्तिशाली विशेषता फाइलों के आसपास काम करने और उनके इनपुट और आउटपुट को कुशलतापूर्वक पुनर्निर्देशित करने की क्षमता है। लिनक्स विशेष वर्णों या प्रतीकों का उपयोग करता है जिन्हें मेटाएक्टेक्टर्स के रूप में जाना जाता है जो फ़ाइल खोज और कमांड कनेक्शन के संबंध में शेल कमांड में विशेष अर्थ जोड़ते हैं।
मेटाएक्टैक्टर लिनक्स पर फाइलों को सूचीबद्ध करने, हटाने और कॉपी करने में सहायक होते हैं। हालाँकि, प्रत्येक मेटाएक्टेक्टर का कार्य उस कमांड के आधार पर भिन्न होता है जिसके साथ आप इसका उपयोग कर रहे हैं।
यह आलेख लिनक्स में विभिन्न प्रकार के मेटाएक्टैक्टर्स पर एक गहन मार्गदर्शिका प्रदान करता है। अंत में, हम बताते हैं कि कैसे ये विशेष वर्ण कमांड को जोड़ने और विस्तारित करने में मदद करते हैं।
लिनक्स शेल आपको फाइलों या निर्देशिका नामों के बीच मेटाएक्टेक्टर्स का उपयोग करके कमांड टाइप करते समय कीस्ट्रोक्स को बचाने की अनुमति देता है। ये वर्ण अन्य गतिविधियों को सूचीबद्ध करने, स्थानांतरित करने या निष्पादित करने के लिए फ़ाइलों के समूह या निर्देशिका को संदर्भित करने में आपकी सहायता करते हैं।
ये कुछ फ़ाइल-मिलान मेटाएक्टैक्टर हैं जिन्हें लिनक्स शेल व्याख्या कर सकता है:
- * (तारांकन): एक चरित्र की एकल या एकाधिक घटनाओं से मेल खाता है
- ? (प्रश्न चिह्न): एकल वर्ण या पैटर्न घटना से मेल खाता है
- [ ] (वर्ग कोष्ठक): वर्ग कोष्ठक के अंदर निर्दिष्ट किसी भी हाइफ़न से अलग की गई संख्या, प्रतीक या अक्षर से मेल खाता है
लिनक्स में मेटाएक्टैक्टर्स का अभ्यास करने का एक आदर्श तरीका है, के अंदर एक नया खाली फ़ोल्डर बनाना /tmp निर्देशिका।
सुडो एमकेडीआईआर / टीएमपी / मेटा
अब में नेविगेट करें /tmp/meta निर्देशिका का उपयोग कर सीडी कमांड तथा स्पर्श का उपयोग करके नई खाली फ़ाइलें बनाएं, निम्नलिखित नुसार:
स्पर्श Apple.txtcider.sh सिरका.php cat.txt नींबू.txt juice.sh catfish.sh
परीक्षण करने के लिए निम्न आदेशों का प्रयोग करें "*"मेटाएक्टेक्टर और आउटपुट प्रदर्शित करें:
एलएस सी*
आउटपुट:
catfish.sh
एलएस सी * एच
आउटपुट:
कैटफ़िश.श साइडर.श
एलएस *आर*
आउटपुट:
साइडर.श सिरका.php
सुडो आरएम * पी *
उपरोक्त आदेश अपने नाम में "पी" अक्षर वाली सभी फाइलों को हटा देगा। आप निम्नानुसार ls कमांड का उपयोग करके परिवर्तन को सत्यापित कर सकते हैं:
रास
आउटपुट:
कैटफ़िश
यहां कुछ उदाहरण दिए गए हैं "?"पैटर्न मिलान के लिए मेटाकैरेक्टर:
एलएस ए?*
आउटपुट:
सेब.txt
एलएस सी? टी*
आउटपुट:
catfish.sh cat.txt
अंतिम आदेश किसी भी फ़ाइल से मेल खाता है जो शुरू होता है सी और है टी तीसरे अक्षर के रूप में (cat.txt, catfish.sh, आदि)।
अब का प्रयोग करें [एवी]* एलएस कमांड के साथ विकल्प उन सभी फाइलों को सूचीबद्ध करने के लिए जो या तो शुरू होती हैं ए या वी, निम्नलिखित नुसार:
एलएस [एवी] *
आउटपुट:
सेब.txt सिरका.sh
आप उपरोक्त कमांड को केवल उन फाइलों को सूचीबद्ध करने के लिए संशोधित कर सकते हैं जो अक्षर के साथ समाप्त होती हैं टी:
एलएस [एसी] * [टी]
आउटपुट:
Apple.txt catfish.txt cat.txt
इसी तरह, आप निम्न प्रकार से श्रेणियों और सूची फ़ाइलों को परिभाषित करने के लिए हाइफ़न से अलग किए गए अक्षरों का उपयोग कर सकते हैं:
एलएस [ए-जे]*
आउटपुट:
Apple.txt catfish.sh cat.txt साइडर.श juice.sh
बैश में पुनर्निर्देशन की बेहतर समझ के लिए, लिनक्स में प्रत्येक प्रक्रिया में फ़ाइल डिस्क्रिप्टर होते हैं, जिन्हें मानक इनपुट के रूप में जाना जाता है (स्टड/0), मानक आउटपुट (स्टडआउट/1), और मानक त्रुटि (स्टेडर/2). वे कमांड इनपुट की उत्पत्ति का निर्धारण करते हैं और यह तय करते हैं कि आउटपुट और त्रुटि संदेश कहां भेजें।
पुनर्निर्देशन मेटाएक्टैक्टर सामग्री I/O प्रवाह को पुनर्निर्देशित करके इन क्रियाओं को संशोधित करने में आपकी सहायता करता है। आम तौर पर, लिनक्स शेल कीबोर्ड से कमांड इनपुट को पढ़ता है और आउटपुट को स्क्रीन पर लिखता है। इनपुट पुनर्निर्देशन कमांड को कीबोर्ड के बजाय फ़ाइल से सामग्री को पढ़ने की अनुमति देता है, जबकि आउटपुट पुनर्निर्देशन कमांड आउटपुट को फ़ाइल में सहेजता है।
दूसरे शब्दों में, Linux फ़ाइल पुनर्निर्देशन मेटाएक्टैक्टर आपको सामग्री को (>) और से (<) फ़ाइलें। तीन प्राथमिक पुनर्निर्देशन मेटाएक्टैक्टर हैं:
- <: फ़ाइल सामग्री को कमांड पर निर्देशित करता है। उदाहरण के लिए, कमांड आउटपुट के लिए कम .bashrc वैसा ही है जैसा कि कम < .bashrc.
- >: कमांड आउटपुट को फाइल में निर्देशित करता है। आदेश एलएस /आदि > सूचियाँ.txt आउटपुट को list.txt फ़ाइल में सहेजता है।
- >>: कमांड आउटपुट को फाइल कंटेंट में जोड़ता है।
wc शब्द गणना के लिए खड़ा है और आप इसे आउटपुट के साथ जोड़ने से पहले और बाद में फ़ाइल के बीच अंतर प्रदर्शित करने के लिए उपयोग कर सकते हैं।
सम्बंधित: Linux पर मानक I/O को समझना
ब्रेस विस्तार मेटाएक्टेक्टर आपको निर्देशिकाओं, फ़ाइल नामों या अन्य कमांड-लाइन तर्कों में वर्णों का विस्तार करने की अनुमति देता है। उदाहरण के लिए, आप एक नई निर्देशिका बना सकते हैं ब्रेस के अंदर /tmp फ़ोल्डर और टच कमांड का उपयोग करके फाइलों का एक सेट निम्नानुसार बनाएं:
सुडो एमकेडीआईआर / टीएमपी / ब्रेस; सीडी / टीएमपी / ब्रेस
स्पर्श परीक्षण{1,2,3,4,5}
अब, आप जांच सकते हैं कि टच ने फाइलें बनाई हैं या ls कमांड का उपयोग नहीं कर रही हैं।
रास
आउटपुट:
टेस्ट1 टेस्ट2 टेस्ट3 टेस्ट4 टेस्ट5
आप सूची में तत्वों के संयोजन के आधार पर फ़ाइल नाम उत्पन्न करने के लिए कई सूचियाँ निर्दिष्ट कर सकते हैं। उदाहरण के लिए:
स्पर्श करें {सेब, साइडर, सिरका}। {फल, तरल, खट्टा}
{ए, बी, सी} स्पर्श करें। {1,2,3}
अंतिम कमांड वर्तमान निर्देशिका में निम्नलिखित फाइलें बनाएगी:
पहला कमांड प्रत्येक सेट में फ़ाइल नाम को दूसरे के साथ जोड़ने के लिए ब्रेसिज़ के दो सेट का उपयोग करता है। आप अंतिम कमांड को इस प्रकार भी लिख सकते हैं स्पर्श करें {a..c}.{1..3} ए और सी और 1 और 3 के बीच की सीमा निर्दिष्ट करने के लिए।
फ़ाइलें बनाने के अलावा, आप फ़ाइलों को अन्य स्थानों पर निकालने या कॉपी करने के लिए ब्रेस विस्तार का भी उपयोग कर सकते हैं।
कमांड कनेक्शन और उनके नाम, विवरण, और अभ्यास के उदाहरणों के साथ विस्तार के लिए कुछ ज्ञात मेटाएक्टैक्टर्स की एक तालिका यहां दी गई है:
नाम | विवरण | उदाहरण |
---|---|---|
पाइप (|) | कमांड आउटपुट को दूसरे कमांड के इनपुट के रूप में जोड़ता है। | बिल्ली/आदि/पासवार्ड | ग्रेप रूट |
अर्धविराम (;) | एक के बाद एक, अनुक्रमिक आदेशों के निष्पादन की अनुमति देता है। | सीडी / आदि; एलएस -ला; चामोद +x /tmp/script.php |
एम्परसेंड (&) | बैकग्राउंड में प्रोसेस या कमांड को रन करता है। | ढूँढें / -perm -u=s -टाइप f & |
डॉलर ($) | अंकगणितीय अभिव्यक्ति का विस्तार करता है और इसे शेल में भेजता है | इको "इस निर्देशिका में कुल फ़ाइलें हैं: $(ls | wc -l)" |
शून्य पुनर्निर्देशन (2>) | मानक त्रुटि संदेशों को /dev/null फ़ाइल में निर्देशित करता है | your_command 2>/dev/null |
सर्कमफ्लेक्स (^) | ^. के बाद व्यंजक से शुरू होने वाले किसी भी पैटर्न से मेल खाता है | सीडी / आदि / एसएसएच; एलएस | ग्रेप ^ एस |
लिनक्स मेटाएक्टेक्टर्स को वाइल्डकार्ड के रूप में भी जाना जाता है जो कमांड में विशेष अर्थ जोड़ते हैं और उनके व्यवहार को नियंत्रित करते हैं। फ़ाइलों/निर्देशिकाओं के इर्द-गिर्द काम करते हुए और Linux शेल कमांड को जोड़ने/विस्तार करने के दौरान मेटाएक्टेक्टर एक उत्पादक वातावरण में उपयोगकर्ता के कार्य प्रदर्शन को अनुकूलित करते हैं।
इसके अलावा, मेटाकैरेक्टर भी नियमित अभिव्यक्तियों के निर्माण खंड हैं। इसके अलावा, यदि आप एक प्रो-लिनक्स उपयोगकर्ता बनना चाहते हैं, तो मेटाएक्टैक्टर्स और उनके उपयोग के बारे में सीखना एक महत्वपूर्ण कौशल है।
कुछ सरल कमांड के साथ अपने पायथन वर्कफ़्लो को गति देना चाहते हैं? नियमित अभिव्यक्ति आपके मित्र हैं।
आगे पढ़िए
- लिनक्स
- लिनक्स प्राथमिक
- लिनक्स बैश शेल
रुमैसा MUO में एक स्वतंत्र लेखिका हैं। उसने गणितज्ञ से लेकर सूचना सुरक्षा के प्रति उत्साही तक कई टोपियाँ पहनी हैं, और अब वह SOC विश्लेषक के रूप में काम कर रही है। उसकी रुचियों में नई तकनीकों के बारे में पढ़ना और लिखना, लिनक्स वितरण, और सूचना सुरक्षा के आसपास कुछ भी शामिल है।
हमारे न्यूज़लेटर की सदस्यता लें
तकनीकी युक्तियों, समीक्षाओं, निःशुल्क ई-पुस्तकों और अनन्य सौदों के लिए हमारे न्यूज़लेटर से जुड़ें!
सब्सक्राइब करने के लिए यहां क्लिक करें