कमांड लाइन पर दो या दो से अधिक कमांड को संयोजित करने के लिए "कमांड चेनिंग" भी कहा जाता है। हम आपको कमांड लाइन पर कमांड जोड़ सकते हैं, हम आपको विभिन्न तरीकों से दिखाएंगे।
विकल्प एक: अर्धविराम (;) ऑपरेटर
अर्धविराम (;) ऑपरेटर आपको उत्तराधिकार में एकाधिक आदेश निष्पादित करने की अनुमति देता है, इस पर ध्यान दिए बिना कि प्रत्येक पिछला आदेश सफल होता है या नहीं। उदाहरण के लिए, टर्मिनल विंडो खोलें (उबंटू और लिनक्स मिंट में Ctrl + Alt + T)। फिर, अर्धविराम से अलग, एक पंक्ति पर निम्नलिखित तीन आदेश टाइप करें, और एंटर दबाएं। यह आपको वर्तमान निर्देशिका की एक सूची देगा (
ls
), पता लगाएं कि आप किस निर्देशिका में वर्तमान में हैं (
pwd
), और अपना लॉगिन नाम प्रदर्शित करें (
whoami
) यकायक।
ls; pwd; whoami
आपको सेमीकॉलन और कमांड के बीच रिक्त स्थान नहीं रखना है, या तो। आप तीन आदेशों को दर्ज कर सकते हैं
ls;pwd;whoami
। हालांकि, रिक्त स्थान संयुक्त आदेश को और अधिक पठनीय बनाते हैं, जो विशेष रूप से उपयोगी होता है यदि आप संयुक्त कमांड को शेल स्क्रिप्ट में डाल रहे हैं।
विकल्प दो: तार्किक और ऑपरेटर (&&)
यदि आप दूसरा आदेश केवल तभी चलाने के लिए चाहते हैं जब पहला आदेश सफल होता है, तो कमांड को तार्किक और ऑपरेटर के साथ अलग करें, जो दो ampersands (
&&
)। उदाहरण के लिए, हम माईफोल्डर नामक एक निर्देशिका बनाना चाहते हैं और फिर उस निर्देशिका में बदलना चाहते हैं-बशर्ते इसे सफलतापूर्वक बनाया गया हो। इसलिए, हम कमांड लाइन पर निम्न टाइप करें और एंटर दबाएं।
mkdir MyFolder && cd MyFolder
फ़ोल्डर सफलतापूर्वक बनाया गया था, इसलिए
cd
आदेश निष्पादित किया गया था और अब हम नए फ़ोल्डर में हैं।
हम ज्यादातर समय अर्धविराम ऑपरेटर की बजाय तार्किक और ऑपरेटर का उपयोग करने की सलाह देते हैं (
;
)। यह सुनिश्चित करता है कि आप कुछ भी विनाशकारी नहीं करते हैं। उदाहरण के लिए, यदि आप किसी निर्देशिका में बदलने के लिए कमांड चलाते हैं और फिर उस निर्देशिका में सबकुछ को दोबारा हटा दें (
cd /some_directory; rm -Rf *
), यदि निर्देशिका परिवर्तन नहीं हुआ तो आप अपने सिस्टम को बर्बाद कर सकते हैं। ऐसा नहीं है कि हम अनुशंसा करते हैं कि आप बिना किसी निर्देशिका में सभी फ़ाइलों को बिना शर्त रूप से हटा दें।
विकल्प तीन: तार्किक या ऑपरेटर (||)
कभी-कभी आप केवल दूसरा आदेश निष्पादित करना चाहते हैं यदि पहला आदेश करता है नहींसफल होते हैं। ऐसा करने के लिए, हम तार्किक या ऑपरेटर, या दो लंबवत सलाखों का उपयोग करते हैं (
||
)। उदाहरण के लिए, हम यह देखना चाहते हैं कि MyFolder निर्देशिका मौजूद है या नहीं (
[ -d ~/MyFolder ]
) और इसे बनाओ अगर यह नहीं करता है (
mkdir ~/MyFolder
)। इसलिए, हम प्रॉम्प्ट पर निम्न आदेश टाइप करते हैं और एंटर दबाते हैं।
[ -d ~/MyFolder ] || mkdir ~/MyFolder
सुनिश्चित करें कि पहले ब्रैकेट के बाद एक जगह है और दूसरे ब्रैकेट या पहले कमांड से पहले यह जांचता है कि निर्देशिका मौजूद है या नहीं।
हमारे उदाहरण में, MyFolder निर्देशिका मौजूद नहीं है, इसलिए दूसरा आदेश निर्देशिका बनाता है।
एकाधिक ऑपरेटरों का मिश्रण
आप कमांड लाइन पर कई ऑपरेटरों को भी जोड़ सकते हैं। उदाहरण के लिए, हम पहले यह जांचना चाहते हैं कि कोई फ़ाइल मौजूद है या नहीं (
[ -f ~/sample.txt ]
)। अगर ऐसा होता है, तो हम स्क्रीन पर एक संदेश प्रिंट करते हुए कहते हैं (
echo “File exists.”
)। यदि नहीं, तो हम फ़ाइल बनाते हैं (
touch ~/sample.txt
)। इसलिए, हम कमांड प्रॉम्प्ट पर निम्न टाइप करते हैं और एंटर दबाते हैं।
[ -f ~/sample.txt ] && echo “File exists.” || touch ~/sample.txt
हमारे उदाहरण में, फ़ाइल मौजूद नहीं थी, इसलिए यह बनाया गया था।
-
A; B
- ए की सफलता या विफलता के बावजूद ए और फिर बी चलाएं
-
A && B
- केवल बी रन करें यदि कोई सफल हुआ
-
A || B
- केवल एक रन बी अगर असफल हो
कमांड के संयोजन के इन सभी तरीकों का उपयोग लिनक्स और विंडोज 10 दोनों पर शैल स्क्रिप्ट में भी किया जा सकता है।
आदेशों को संयोजित करते समय कठोर परिणामों से बचने के लिए लिनक्स में कमांड लाइन पर "सीडी" का उपयोग करते समय आप वर्तनी और टाइपो को स्वचालित रूप से सही भी कर सकते हैं।