Git Bash मेरे PATH को नहीं देखता है


107

जब मैं गिट बैश (विंडोज पर) का उपयोग करता हूं, तो मैं इसके पूर्ण पथ को निर्दिष्ट किए बिना किसी भी निष्पादन योग्य को नहीं चला सकता, हालांकि यह एक फ़ोल्डर में स्थित है जो मेरे पैट वैरिएबल में है। ऐसा लगता है कि बैश यह पहचान नहीं करता है। क्यों? क्या मैं इसे ठीक कर सकता हूं?


1
क्या आप दिखा सकते हैं कि वास्तव में आपके पैट चर में क्या है?
चोराबा

हम्म मेरे सवाल से कैसे संबंधित है? यदि आपको संदेह है कि यह विकृत है, तो मुझे यकीन है कि यह नहीं है, क्योंकि मैं नियमित विंडोज शेल (सीएमडी) का उपयोग करके समान निष्पादनयोग्य चला सकता हूं।
इलू

@ सुलु: यह आपके प्रश्न से संबंधित है क्योंकि पथ चर वह है जो यह निर्धारित करता है कि कौन से निष्पादनयोग्य पाए जा सकते हैं ... बाथ शेल के भीतर से पाथ चर कैसा दिखता है?
जालपा

Inparticular, इसमें सम्‍मिलित / ई / प्रोग्राम / टूल / बिन सम्‍मिलित हैं, अंत में यह मार्ग है, जिसकी मुझे रुचि है। शायद समस्या यह है कि मैं एक बैट फ़ाइल चलाने का प्रयास कर रहा हूं?
इलू

जवाबों:


64

समझ गया। एक विंडोज उपयोगकर्ता के रूप में, मैं बिना एक्सटेंशन के निष्पादन योग्य नाम टाइप करने के लिए उपयोग किया जाता हूं। मेरे मामले में, मैं नामक एक फ़ाइल को निष्पादित करना चाहता था cup.bat। विंडोज शेल में, टाइपिंग cupपर्याप्त होगी। बैश इस तरह से काम नहीं करता है, यह पूरा नाम चाहता है। टाइपिंग cup.batसे समस्या हल हो गई। (हालांकि मैं फ़ाइल को चलाने में सक्षम नहीं था, क्योंकि जाहिरा तौर पर बैश अपनी सामग्री को समझ नहीं पाया था)

पॉश-गिट पर स्विच करने का एक और कारण ..

धन्यवाद @ मुझे सही दिशा की ओर इशारा करने के लिए।


5
नाम को छोटा करने के लिए आप एक उपनाम का भी उपयोग कर सकते हैं:alias cup=cup.bat
विटाली डेटलिंग

विंडोज़ निष्पादन के समाधान के लिए PATH और PATH_EXTENSIONS दोनों का उपयोग करता है, जबकि लिनक्स दुनिया केवल PATH
Ferrybig

आपकी शेल स्क्रिप्ट को निश्चित रूप से कुछ भी नहीं कहा जाना चाहिए .bat; विस्तार का तात्पर्य विंडोज बैच स्क्रिप्ट से है - विशेषकर विंडोज मशीन पर।
ट्रिपल जं

पॉश-गिट क्या हल करता है? क्या आपको एक्सटेंशन को और टाइप करने की आवश्यकता नहीं है?
क्वर्टी

@ क्वर्टी पॉश एक पॉवर्सशेल कंसोल है, इसे स्विच करने का मतलब सभी परिचित कमांड और शॉर्टकट के साथ अधिक विंडोज-फ्रेंडली कंसोल है। और हां, किसी भी विंडोज कंसोल पर, आपको ".exe" या ".bat" टाइप करने की आवश्यकता नहीं है
ulu

53

हो सकता है कि bash आपके विंडोज पथ को नहीं देखता हो। यह देखने के env|grep PATHलिए कि क्या रास्ता है, इसकी पुष्टि करने के लिए बैश में टाइप करें ।


1
यह कहता है: PATH = / c / उपयोगकर्ता / ulu / bin:। / Usr / स्थानीय / बिन: / mingw / बिन: / बिन: / e / कार्यक्रम / रूबी / बिन: / c / P rogram फ़ाइलें / सामान्य फ़ाइलें Microsoft साझा / Windows Live: / c / प्रोग्राम फ़ाइलें (x86) / C ommon फ़ाइलें / Microsoft साझा / Windows Live: / c / Windows / system32: / c / Windows: / c / Wind ows / System32 / Wbem, / c / Windows / System32 / WindowsPowerShell / v1.0 /: / e / प्रोग्राम फाइलें (x86) / Microsoft SQL सर्वर / 90 / उपकरण / binn /
ulu

2
"जो आपके_बच_फाइल.बैट" (बिना उद्धरण के) चलाने की कोशिश करें। यह आपके बैच फ़ाइल के स्थान को वापस करना चाहिए, अगर यह वास्तव में पथ में है।
टॉम

15
मैं git-bash को देखने के लिए पथ कैसे जोड़ूं?
एंजेल एस। मोरेनो

14
@ AngelS.Moreno अपडेट करें या अपने होम डायरेक्टरी के तहत एक ".bashrc" फाइल बनाएं (जैसे git bash / cygwin में "vim ~ / .bashrc"), फिर "PATH = $ PATH: <your_path_1>: <your_path_2> जोड़ें। ..: <your_path_n> "इस फ़ाइल में। इसलिए, यदि आप चाहते थे कि "/ usr / bin / mypath" PATH चर में हो, तो यह पंक्ति पढ़ेगी: PATH = $ PATH: / usr / bin / mypath
डैनियल

35

@ डैनियल की टिप्पणी और @ टॉम के जवाब के लिए धन्यवाद के बाद, मुझे पता चला कि Git bash वास्तव में PATH का उपयोग कर रहा था लेकिन हाल ही में स्थापित नवीनतम पथ नहीं। इस समस्या को हल करने के लिए, मैंने अपने घर (विंडोज़) निर्देशिका में एक फ़ाइल जोड़ी, जिसका नाम है:

.bashrc

और सामग्री इस प्रकार है:

PATH=$PATH:/c/Go/bin

क्योंकि मैं गो स्थापित कर रहा था और इस पथ में निष्पादनीय go.exe नाउ Git बैश कमांड को पहचानने में सक्षम था:

go

शायद मेरे मामले में सिर्फ एक सिस्टम रिबूट पर्याप्त होता, लेकिन मुझे खुशी है कि यह समाधान किसी भी मामले में काम करता है।


और कई रास्ते जोड़ने के लिए?
निकिफोरोस

PATH=$PATH:/c/Go/bin:/c/other/path
मिकाइल मेयर

आप घर की खिड़कियों निर्देशिका का क्या मतलब है? कृपया निर्दिष्ट करें।
मियां असबत अहमद

c:/Users/[myusername]/मेरे घर की निर्देशिका है
Mikaël Mayer

9

जब आप Git स्थापित कर रहे हैं, तो आप नीचे दिखाए गए विकल्प का चयन कर सकते हैं, यह आपको स्वचालित रूप से पथ सेट करने में मदद करेगा।

Git स्थापना विज़ार्ड

इसके लिए मेरे लिए काम किया :)


1
@eranotzap वैकल्पिक विकल्प के साथ Git को पुन: स्थापित करें? :)
ब्रेट रयान

1
@eranotzap सेटअप Environemtal चर को Git
Muthamizhchelvan

यह कैसे पथ का उपयोग करने के लिए गिट बश पाने में मदद करता है, जब अंतिम परिणाम यह होता है कि गिट बैश भी स्थापित नहीं किया जाएगा?
जूल्स

@Jules नहीं, Git Bash इंस्टॉल करते समय यह आपको स्क्रीनशॉट के अनुसार दिए गए विकल्पों के लिए पूछेगा, वहां आप अपनी जरूरत के अनुसार किसी भी एक का चयन कर सकते हैं, git bash सिलेक्ट ऑप्शन के साथ इंस्टॉल हो जाएगा।
मुथमीज़चेलवन V

9

C: \ Users \ USERNAME में एक फ़ाइल बनाएँ, जिसे config.bashrc कहा जाता है, जिसमें:

PATH=$PATH:/c/Program\ Files\ \(x86\)/Application\ with\ space

अब कमांड लाइन पर फ़ाइल को सही स्थान पर ले जाएँ:

mv config.bashrc .bashrc

4

PATH में नया मान जोड़ने के बाद कंप्यूटर को पुनरारंभ करें।


1
कंप्यूटर को पुनरारंभ करने की आवश्यकता नहीं है, टर्मिनल सत्र करता है।
क्रिश्चियनबॉडी

2
@christianbundy मुझे यकीन नहीं है, लेकिन ऐसा लगता है कि कुछ समय के लिए टर्मिनल की पुनः आरंभ में मदद नहीं मिली, लेकिन कंप्यूटर के पुनरारंभ में मदद मिली, इसलिए मैंने यह उत्तर लिखा। रीस्टार्ट टर्मिनल पहला है, जो मैं कोशिश करता हूं।
पावेल

इस तरह के एक सरल जवाब, और पूरी तरह से प्रभावी।
बोबानाफुल

4

पुराना सवाल है लेकिन यह किसी और की मदद कर सकता है।

मैंने अपने PATH उपयोगकर्ता को व्यापक रूप से बदल दिया है, उसके बाद मैंने केवल लॉगऑफ़ किया है और फिर से लॉगिन किया है।

बस इतना ही! git bashनए PATH मान को सही तरीके से लोड किया।


क्या यह बग बेसक को बंद किए बिना या लॉगिंग के बिना संभव है। मेरा मतलब है कि मैं पथ चर सेट करना चाहता हूं, और मैं इसे वर्तमान git bash का उपयोग कर सकता हूं
KCS

शायद आप कर सकते हैं export PATH=$NEW_PATH:$PATH:। और सामान्‍य रूप से करें
फर्नानडोसावियो

2

मैं पुष्टि कर सकता हूं कि सिस्टम को फिर से शुरू करने से यह सुनिश्चित हो जाएगा कि विंडोज़ में पर्यावरण चर में सेट किया गया पैट जीआईटी द्वारा उठाया गया है और कोई अन्य स्वचालित तरीका नहीं है।


1

ऐसा लगता है कि यहां मूल कारण Git Bash हमेशा चर% USERPROFILE% को सही ढंग से पार्स करने में सक्षम नहीं है। C: \ Users \\ के सापेक्ष बनाने के बजाय इसे C: \ Windows \ System 32 \ systemprofile \ मिल जाता है, इसे पूरी तरह से योग्य पते में बदलने के बाद, यह काम करता है, और यहां तक ​​कि अगर मैं इसे बाद में सेट करता हूं, तो Git Bash अभी भी किसी कारण से सही PATH है।


1

विंडोज 10 पर, बस गिट को अनइंस्टॉल करें और फिर से इंस्टॉल करें। यह आपके लिए पर्यावरण चर को स्वचालित रूप से सेट करेगा। मैंने गलती से पर्यावरण चर को हटा दिया था और मैं अपने IDE के अंदर git का उपयोग नहीं कर सका। Git को पुनर्स्थापित करने से यह समस्या ठीक हो गई।


1

मामले अपने में git-bashकी PATHलेकिन प्रस्तुत नहीं नवीनतम और आप एक रिबूट नहीं चाहते हैं, लेकिन अपने को पुनर्जीवित करना PATHहै, आप सभी को बंद करने की कोशिश कर सकते cmd.exe, powershell.exe, और git-bash.exeऔर प्रारंभ मेनू या डेस्कटॉप से एक cmd.exe खिड़की फिर से खोलना और अगर देखना PATHenv अद्यतन किया जाता है । अगर आपने सिस्टम-वाइड बदल दियाPATH एक विशेषाधिकार प्राप्त cmd विंडो खोलने की आवश्यकता है।

नोट: यह सभी विंडोज संस्करणों के साथ काम नहीं करता है, और cmd.exeस्टार्ट मेनू या डेस्कटॉप के अलावा कहीं भी खुला नहीं हो सकता है , मेरे 3 कंप्यूटर और उनमें से 2 के साथ काम करता है। मुझे पता नहीं है कि यह क्यों काम करता है, लेकिन PATHजब से मैं लॉगिन और लॉगआउट करता हूं, तब से पर्यावरण चर स्वचालित रूप से उत्पन्न हो जाता है, मैं चर चर के साथ उस चर को गड़बड़ाना नहीं चाहूंगा।


0

मेरे लिए सबसे सुविधाजनक था: 1) सी की जड़ में निर्देशिका "बिन" बनाएं: ड्राइव 2) "सी: / बिन" जोड़ें; "मेरा कंप्यूटर -> गुण -> Environemtal चर"


0

जब मैं Win10 में xgboost lib को संकलित करने के लिए mingw का उपयोग करने का प्रयास करता हूं, तो मैं इस समस्या को पूरा करता हूं। अंत में मुझे इसका हल मिल गया।

अपने घर निर्देशिका (आमतौर पर C: \ Users \ उपयोगकर्ता नाम) में .bashrc नाम से एक फ़ाइल बनाएं। फिर इसमें पथ जोड़ें। उद्धरण का उपयोग करने के लिए याद रखें अगर आपके रास्ते में खाली है, और सी के बजाय / सी / का उपयोग करना याद रखें: /

उदाहरण के लिए:

PATH = $ PATH: "/ c / Program Files / mingw-w64 / x86_64-7.2.0-posix-seh-rt_v5-rev1 / mingw64 / bin"


0

मैं अपनी ओर से एक मूर्खतापूर्ण गलती पर भाग गया हूं। मेरे पास एक सिस्टम चौड़ा था और मेरी खिड़कियों 10 मशीन पर मेरे गोलंग कार्यक्षेत्र के लिए एक उपयोगकर्ता चर पथ निर्धारित किया गया था। जब मैंने निरर्थक सिस्टम चर मार्ग को हटा दिया और लॉग ऑन और बैक किया, तो मैं bash में कॉल .exe फ़ाइलों और सफलता के साथ गो एनवी को कॉल करने में सक्षम था।

हालांकि ओपी को जवाब दिया गया है कि यह एक और समस्या है जो आपके रास्तों को देखने से रोक सकती है। मैंने इस समस्या के साथ बस बैश का फिर से परीक्षण किया और यह किसी प्रकार का संघर्ष देता प्रतीत होता है, जो दोनों में से किसी भी मार्ग का अनुसरण करने से रोकता है।


0

मुझे पता है कि यह एक पुराना प्रश्न है, लेकिन दो प्रकार के पर्यावरण चर हैं। एक उपयोगकर्ता के साथ और एक विस्तृत प्रणाली के स्वामित्व में है। निर्भर करता है कि आप git bash कैसे खोलते हैं (उपयोगकर्ता विशेषाधिकार के साथ या व्यवस्थापक विशेषाधिकार के साथ) PATH का उपयोग किया गया वातावरण आपके उपयोगकर्ता चर या सिस्टम चर से हो सकता है। निचे देखो: यहां छवि विवरण दर्ज करें

जैसा कि पिछले उत्तर में कहा गया है, यह देखने के env|grep PATHलिए कि आप किसका उपयोग कर रहे हैं और अपने चर को तदनुसार अद्यतन करें , कमांड के साथ जांचें । BTW, सिस्टम को रिबूट करने की आवश्यकता नहीं है। बस बंद करें और गिट बैश को फिर से खोलें


0

मेरे मामले में यह हेरोकू क्ली और गिट बैश को स्थापित करते समय हुआ, यहां मैंने काम करने के लिए क्या किया।

इस स्थान के लिए मिला है

C:\Users\<username here>\AppData\Local

और मेरे केस हर्को फोल्डर में फाइल को डिलीट करें। इसलिए मैंने फ़ोल्डर को डिलीट किया और cmd को रन किया। यह काम कर रहा है


-1

अपने $ पथ चर को संपादित / जोड़ते समय विशेष वर्ण () को न छोड़ें। उदाहरण के लिए, प्रोग्राम फ़ाइलों में एक एप्लिकेशन डायरेक्टरी इस तरह दिखाई देगी: PATH=$PATH:/c/Program Files (x86)/random/application

ऐसा न करें:
PATH=$PATH:/c/Program\ Files\ \\(x86\\)/random/application/

उम्मीद है की यह मदद करेगा।


PATH=$PATH:/c/Program Files (x86)/random/application... यह PATH सेट करने के लिए सही बैश सिंटैक्स नहीं है। यह अस्थायी रूप से निर्देशिका /c/Programको पथ में जोड़ देगा , फिर Filesतर्क के साथ कार्यक्रम चलाने का प्रयास करें (x86)/random/application। आपके "यह मत करो" उदाहरण के साथ एकमात्र गलत बात यह है कि यह ब्रैकेट के लिए बैकस्लैश को दोगुना कर देता है, जब एकल बैकस्लैश सही होते हैं।
जूल्स

-2

आप में से उन लोगों के लिए जिन्होंने उपर्युक्त सभी तरीकों को आजमाया है, जिसमें विंडोज सिस्टम शामिल है। चर, .bashrc, .bashprofile, आदि और 'इको $ पाथ' में सही रास्ता देख सकते हैं ... मेरे पास आपके लिए एक समाधान हो सकता है।

2> / dev / null का उपयोग करके त्रुटियों को दबाएं

मेरी स्क्रिप्ट ठीक-ठाक चलती है, लेकिन 'कमांड नॉट फाउंड' या 'नो डायरेक्टरी मिली' की त्रुटियां फेंक रहा था, जहां तक ​​मैं बता सकता हूं, रास्ते फ्लश थे। इसलिए, यदि आप उन त्रुटियों को दबा देते हैं (तो उन्हें ठीक से काम करने की तुलना में 'सेट + ई' भी जोड़ना पड़ सकता है)।


1
यह सिर्फ त्रुटियों को नजरअंदाज करने और समस्या के मूल कारण को हल करने के लिए नहीं लगता है।
nmio

-3

पथ नाम का एक उपयोगकर्ता चर बनाएँ और मान% Path% के रूप में जोड़ें, मैंने जो देखा कि गश बैश केवल उपयोगकर्ता चर और सिस्टम चर नहीं देखता है। उल्लिखित प्रक्रिया को करके आप अपने सिस्टम चर को उपयोगकर्ता चर में उजागर करेंगे।


-3

विंडोज 7 पथ पर्यावरण चर में मैं सिर्फ सिस्टम चर पथ के अंत में जोड़ता हूं

\; C: \ Program Files \ Git \ bin

और यह अब काम करता है!

हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.