विंडोज 10 के बैश शेल से विंडोज प्रोग्राम कैसे चलाएं
निर्माता अपडेट में, विंडोज 10 के बैश शेल अब आपको बैश से ही विंडोज बायनेरी और मानक कमांड प्रॉम्प्ट कमांड चलाने की अनुमति देता है। आप एक ही बैश शेल से लिनक्स और विंडोज दोनों प्रोग्राम चला सकते हैं, या यहां तक कि विंडोज कमांड को बैश स्क्रिप्ट में शामिल कर सकते हैं.
आप क्या जानना चाहते है
इस सुविधा के बारे में आपको कुछ बुनियादी विवरणों की जानकारी होनी चाहिए:
- उपभोक्ता खाता: बैश शेल से लॉन्च किए गए प्रोग्राम चलेंगे जैसे कि वे वर्तमान विंडोज उपयोगकर्ता खाते द्वारा लॉन्च किए गए थे.
- अनुमतियां: इन कार्यक्रमों में Bash.exe प्रक्रिया के समान अनुमतियाँ होंगी। इसलिए, यदि आप चाहते हैं कि इन कमांडों के पास प्रशासक पहुंच हो, तो आपको प्रशासक के रूप में बैश शेल को चलाने की आवश्यकता होगी.
- कार्यकारी डाइरेक्टरी: विंडोज प्रोग्राम बैश शेल के समान "वर्किंग डायरेक्टरी" साझा करते हैं। इसलिए, यदि आप एक कमांड चलाते हैं जो वर्तमान निर्देशिका की सामग्री को सूचीबद्ध करता है, तो यह बैश शेल में वर्तमान कार्यशील निर्देशिका की सामग्री को सूचीबद्ध करेगा। उपयोग
सीडी
कार्य निर्देशिकाओं को बदलने की कमान.
इसे ध्यान में रखते हुए, आइए एक कार्यक्रम चलाने का तरीका देखें.
विंडोज प्रोग्राम कैसे चलाएं
विंडोज प्रोग्राम चलाने के लिए, बैश शेल में प्रोग्राम की .exe फ़ाइल का पथ दर्ज करें। याद रखें कि आपका Windows C: ड्राइव बैश में / mnt / c पर उपलब्ध है। बैश वातावरण भी केस-संवेदी है, इसलिए आपको सही कैपिटलाइज़ेशन को निर्दिष्ट करना होगा.
मान लें कि आप C: \ Windows \ System32 \ PING.EXE पर स्थित पिंग यूटिलिटी को लॉन्च करना चाहते हैं। आप निम्न आदेश चलाएँगे:
/mnt/c/Windows/System32/PING.EXE
निम्नलिखित आदेश काम नहीं करेगा, क्योंकि बैश केस-संवेदी है:
/mnt/c/windows/system32/ping.exe
यह थोड़ा और अधिक जटिल है यदि पथ में प्रोग्राम फ़ाइल फ़ोल्डर जैसे रिक्त स्थान और ब्रैकेट जैसे जटिल वर्ण हैं। आपको "\" वर्ण के साथ उपसर्ग करके "रिक्त स्थान", कोष्ठक और अन्य जटिल वर्णों से बचना होगा.
उदाहरण के लिए, मान लें कि आप C: \ Program Files (x86) \ Internet Explorer \ iexplin.exe पर स्थित Internet Explorer प्रोग्राम चलाना चाहते थे। आपको बैश में निम्न कमांड चलाना होगा:
/ mnt / c / Program \ Files \ \ (x86 \) / Internet \ Explorer / iexplore.exe
अंतरिक्ष और ब्रैकेट वर्णों से पहले "\" पर ध्यान दें। इन वर्णों को "बच जाना" चाहिए या बश का एहसास नहीं होगा कि वर्ण एक फ़ाइल पथ का हिस्सा हैं.
कैसे एक कमान के लिए एक तर्क पारित करने के लिए
बैश शेल आपके द्वारा निष्पादित आदेशों पर सीधे तर्क देता है.
उदाहरण के लिए, यदि आप example.com को पिंग करना चाहते हैं, तो आप चलाएंगे:
/mnt/c/Windows/System32/PING.EXE example.com
या, यदि आप नोटपैड में विंडोज होस्ट फ़ाइल खोलना चाहते हैं, तो आप चलाएंगे:
/mnt/c/Windows/System32/notepad.exe "C: \ Windows \ System32 \ ड्राइवरों \" को "मेजबान"
जब आप किसी Windows प्रोग्राम पर सीधे फ़ाइल पथ पास करते हैं तो आप मानक Windows फ़ाइल पथ का उपयोग करते हैं। ऐसा इसलिए है क्योंकि बैश सीधे तर्क से गुजरता है। Notepad.exe और अन्य विंडोज प्रोग्राम एक विंडोज फाइल पथ की अपेक्षा करते हैं.
एक अंतर्निहित कमांड कैसे चलाएं
कुछ विंडोज़ कमांड .exe फाइलें नहीं हैं, लेकिन कमांड प्रॉम्प्ट में ही निर्मित हैं। उदाहरण के लिए, इसमें शामिल है dir
कमांड आप सामान्य रूप से कमांड प्रॉम्प्ट में चला सकते हैं। ऐसी कमांड चलाने के लिए, आपको चलाने की आवश्यकता है cmd.exe
कमांड प्रॉम्प्ट के साथ जुड़े बाइनरी और इसे / सी के साथ एक तर्क के रूप में कमांड पास करें, जैसे:
/mnt/c/Windows/System32/cmd.exe / C कमांड
उदाहरण के लिए, चलाने के लिए dir
कमांड प्रॉम्प्ट में निर्मित कमांड, आप निम्न कमांड चलाएंगे:
/mnt/c/Windows/System32/cmd.exe / C dir
पथ में निर्देशिकाएँ कैसे जोड़ें
लिनक्स वातावरण के लिए विंडोज सेवा विंडोज निष्पादनयोग्य को उसी तरह से व्यवहार करती है जिस तरह से यह लिनक्स बायनेरिज़ का व्यवहार करता है। इसका मतलब है कि आप एक निर्देशिका युक्त .exe फ़ाइलों को पथ में जोड़ सकते हैं और फिर उन .exe फ़ाइलों को सीधे निष्पादित कर सकते हैं। उदाहरण के लिए, अपने पथ में System32 निर्देशिका जोड़ने के लिए, आप दौड़ेंगे:
PATH = $ PATH: / mnt / c / Windows / System32 निर्यात करें
आप तब System32 फ़ोल्डर में स्थित Windows .exe फ़ाइलों को सीधे चला सकते हैं, जैसे:
PING.exe example.com
notepad.exe
cmd.exe / C dir
कैसे एक कमांड के आउटपुट को दूसरे पर पाइप करें
एक विंडोज कमांड के आउटपुट को लिनक्स कमांड में पाइप किया जा सकता है, और इसके विपरीत। उदाहरण के लिए, आप का उपयोग कर सकते हैं ipconfig.exe -all
अपने नेटवर्क इंटरफेस के बारे में विवरणों को सूचीबद्ध करने और इसे लिनक्स पर पाइप करने के लिए कमांड दें ग्रेप
आउटपुट खोजने के लिए कमांड। उदाहरण के लिए, अपने कनेक्शन के बारे में सभी जानकारी और "आईपीवी 4 पता" से मेल खाने वाले अनुभागों की खोज करने के लिए, आप दौड़ेंगे:
/mnt/c/Windows/System32/ipconfig.exe -all | grep "IPv4 पता"
यही मूल प्रक्रिया है। बैश स्क्रिप्ट में शामिल होने पर ये कमांड भी काम करेंगे, इसलिए आप एक बैश स्क्रिप्ट लिख सकते हैं जिसमें विंडोज कमांड और लिनक्स उपयोगिताओं दोनों शामिल हैं। यदि यह बैश शेल में चलता है, तो यह बैश स्क्रिप्ट में काम करेगा.
और, यदि आप दूसरे रास्ते पर जाना चाहते हैं, तो आप मानक विंडोज प्रॉम्प्ट से बैश कमांड को चलाने के लिए "bash -c" कमांड का उपयोग कर सकते हैं.