यह ट्यूटोरियल आपको Linux में which कमांड का उपयोग करना सिखाएगा कुछ सरल उदाहरणों के साथ।
which कमांड आपको बताएगा कि सिस्टम पर किसी कमांड द्वारा उपयोग किए जाने वाले एक्जीक्यूटेबल का पथ क्या है यदि वह मौजूद है।
यह उपयोगी क्यों है? मान लीजिए आपके सिस्टम पर MySQL एक्जीक्यूटेबल की दो कॉपीज इंस्टॉल हैं (अलग-अलग तरीकों से इंस्टॉल), और आप जानना चाहते हैं कि वास्तव में कौन सी उपयोग में है ताकि दूसरे को हटाया जा सके – which कमांड आपको बता सकता है कि कमांड लाइन पर MySQL निष्पादित करने पर दोनों में से कौन सा कहा जाता है।
Linux which कमांड सिंटैक्स
which कमांड के लिए कमांड इस प्रकार है:
which OPTIONS COMMAND
ध्यान दें कि:
- OPTIONS नीचे दी गई तालिका से विकल्पों की एक वैकल्पिक सूची है जिसका उपयोग which कमांड के डिफ़ॉल्ट व्यवहार को बदलने के लिए किया जा सकता है
- COMMAND उस कमांड का नाम है जिसके लिए आप एक्जीक्यूटेबल का पथ जानना चाहते हैं
- COMMAND सप्लाई किया जाना चाहिए, या which के पास खोजने के लिए कुछ नहीं होगा!
कमांड विकल्प
यहाँ which कमांड को पास किए जा सकने वाले सबसे अधिक उपयोग किए जाने वाले विकल्प हैं:
| विकल्प | विवरण |
|---|---|
| –all, -a | PATH में सभी मिलते-जुलते एक्जीक्यूटेबल्स प्रिंट करें, केवल पहला नहीं। |
| –read-alias, -i | stdin से aliases पढ़ें, मिलते-जुलते को stdout पर रिपोर्ट करें। यह which के लिए alias का उपयोग करने के साथ संयोजन में उपयोगी है। |
| –skip-alias | विकल्प –read-alias' को अनदेखा करें, यदि कोई हो। यह सामान्य बाइनरीज को स्पष्ट रूप से खोजने के लिए उपयोगी है, जबकि which के लिए alias या फंक्शन में –read-alias' विकल्प का उपयोग कर रहे हैं। |
| –read-functions | stdin से शेल फंक्शन परिभाषाएं पढ़ें, मिलते-जुलते को stdout पर रिपोर्ट करें। यह which के लिए शेल फंक्शन का उपयोग करने के साथ संयोजन में उपयोगी है। |
| –skip-functions | विकल्प –read-functions' को अनदेखा करें, यदि कोई हो। यह सामान्य बाइनरीज को स्पष्ट रूप से खोजने के लिए उपयोगी है, जबकि which के लिए alias या फंक्शन में –read-functions' विकल्प का उपयोग कर रहे हैं। |
हमेशा की तरह, आप which कमांड के लिए पूर्ण यूजर मैनुअल चलाकर देख सकते हैं:
man which
which कमांड उदाहरण
नीचे, हम उस एक्जीक्यूटेबल के पथ को देखते हैं जिसे तब बुलाया जाता है जब nano को टर्मिनल से चलाया जाता है:
which nano
यदि आपके सिस्टम पर nano टेक्स्ट एडिटर इंस्टॉल है तो यह निम्न जैसा कुछ वापस करेगा:
/usr/bin/nano
यदि nano नहीं इंस्टॉल है, तो आप देखेंगे:
nano not found
यह which कमांड को दोनों के लिए उपयोगी बनाता है – एक्जीक्यूटेबल कहां स्थित है यह जांचने के लिए और यह जांचने के लिए कि कोई पैकेज इंस्टॉल/उपलब्ध है या नहीं।
यदि आप एक साथ कई कमांड्स देखना चाहते हैं तो कई एक्जीक्यूटेबल नाम सप्लाई किए जा सकते हैं:
which cat less
जो वापस करेगा:
/bin/cat /usr/bin/less
रिटर्न कोड्स
यदि आप शेल स्क्रिप्ट में which का उपयोग कर रहे हैं, तो आप कमांड द्वारा लौटाए गए स्टेटस कोड का उपयोग यह निर्धारित करने के लिए कर सकते हैं कि एक्जीक्यूटेबल पथ मिला या नहीं:
| कोड | अर्थ |
|---|---|
| 0 | सभी निर्दिष्ट कमांड्स मिल गए और निष्पादन योग्य हैं। |
| 1 | निर्दिष्ट कमांड्स में से एक या अधिक नहीं मिला या निष्पादन योग्य नहीं है। |
| 2 | अमान्य विकल्प या सिंटैक्स उपयोग किया गया। |
यह सुपर उपयोगी हो सकता है यदि आप अपने शेल स्क्रिप्ट्स को अधिक पोर्टेबल बनाना चाहते हैं – आप which कमांड का उपयोग यह जांचने के लिए कर सकते हैं कि आपके स्क्रिप्ट में इसे निष्पादित करने से पहले कोई कमांड उपलब्ध है या नहीं, यह सुनिश्चित करने के लिए कि एंड-यूजर को कोई त्रुटि न मिले यदि उनके पास आवश्यक सॉफ़्टवेयर इंस्टॉल नहीं है।