Git Bash, PATH'ımı görmüyor


107

Git Bash'i (Windows'ta) kullandığımda, PATH değişkenimdeki bir klasörde yer almasına rağmen, tam yolunu belirtmeden herhangi bir yürütülebilir dosyayı çalıştıramıyorum. Görünüşe göre bash bunu tanımıyor. Neden? Düzeltebilir miyim?


1
PATH değişkeninizde tam olarak ne olduğunu gösterebilir misiniz?
choroba

Hmm bunun sorumla ne ilgisi var? Hatalı biçimlendirildiğinden şüpheleniyorsanız, normal Windows kabuğunu (cmd) kullanarak aynı yürütülebilir dosyaları çalıştırabildiğimden eminim öyle değildir.
ulu

@ulu: Sorunuzla ilgilidir çünkü PATH değişkeni hangi çalıştırılabilir dosyaların bulunabileceğini belirleyen şeydir ... PATH değişkeni Bash kabuğunun içinden nasıl görünüyor?
jalf

Özellikle, sonuna yakın bir yerde / e / Programs / Tools / bin içeriyor, ilgilendiğim yol bu. Belki de sorun bir yarasa dosyasını çalıştırmaya çalışmamdır?
ulu

Yanıtlar:


64

Anladım. Bir Windows kullanıcısı olarak, uzantılar olmadan çalıştırılabilir isimler yazmaya alıştım. Benim durumumda adlı bir dosyayı çalıştırmak istedim cup.bat. Bir Windows kabuğunda yazmak cupyeterli olacaktır. Bash bu şekilde çalışmaz, tam adı ister. Yazıyorcup.bat sorunu çözdü. (Görünüşe göre bash içeriğini anlayamadığı için dosyayı çalıştıramadım)

Posh-git'e geçmek için bir neden daha ..

Beni doğru yönü gösterdiğin için teşekkürler @ Tom.


5
İsmi kısaltmak için bir takma ad da kullanabilirsiniz:alias cup=cup.bat
Vitali Dettling

Windows, yürütülebilir dosyaları çözmek için hem PATH hem de PATH_EXTENSIONS kullanır, Linux dünyası ise yalnızca PATH
Ferrybig

Kabuk betiğiniz kesinlikle hiçbir şey olarak adlandırılmamalıdır .bat; uzantı, özellikle bir Windows makinesinde bir Windows toplu komut dosyası anlamına gelir.
üçlü

Posh-git neyi çözer? Artık uzantıyı yazmanıza gerek yok mu?
Qwerty

@Qwerty posh bir Powershell konsoludur ve buna geçiş, tüm tanıdık komutlar ve kısayollarla daha Windows dostu bir konsol anlamına gelir. Ve evet, tıpkı herhangi bir Windows konsolunda olduğu gibi, ".exe" veya ".bat" yazmanıza gerek yok
ulu

53

Belki bash, Windows yolunu görmüyor. Tip env|grep PATHhangi yolu onaylayın bash o görür.


1
Şöyle diyor: PATH = / c / Users / ulu / bin:.: / Usr / local / bin: / mingw / bin: / bin: / e / Programs / Ruby / bin: / c / P rogram Files / Common Files / Microsoft Paylaşılan / Windows Live: / c / Program Dosyaları (x86) / C ommon Dosyaları / Microsoft Paylaşılan / Windows Live: / c / Windows / system32: / c / Windows: / c / Wind ows / System32 / Wbem: / c / Windows / System32 / WindowsPowerShell / v1.0 /: / e / Program Files (x86) / Microsoft SQL Server / 90 / Araçlar / binn /
ulu

2
"Which your_batch_file.bat" dosyasını (tırnak işaretleri olmadan) çalıştırmayı deneyin. Yoldaysa, toplu iş dosyanızın konumunu döndürmelidir.
Tom

15
git-bash'ın görmesi için yolları nasıl ekleyebilirim?
Angel S. Moreno

14
@ AngelS.Moreno, ana dizininizin altında bir ".bashrc" dosyası oluşturun veya oluşturun (örneğin git bash / cygwin'de "vim ~ / .bashrc"), ardından "PATH = $ PATH: <your_path_1>: <your_path_2>: ekleyin. ..: <your_path_n> "bu dosyaya. Öyleyse, "/ usr / bin / mypath" değişkeninin PATH değişkeninde olmasını istiyorsanız, bu satır şöyle olacaktır: PATH = $ PATH: / usr / bin / mypath
Daniel

35

@ Daniel'in yorumunu takiben ve @ Tom'un cevabı sayesinde, Git bash'ın gerçekten PATH'i kullandığını, ancak yakın zamanda yüklediğim en son yolları kullanmadığını öğrendim. Bu sorunu çözmek için, ev (windows) dizinime şu adda bir dosya ekledim:

.bashrc

ve içerik aşağıdaki gibidir:

PATH=$PATH:/c/Go/bin

çünkü Go'yu kuruyordum ve bu yol çalıştırılabilir go.exe Now Git'i içeriyordu bash komutu tanıyordu:

go

Belki de sadece bir sistemin yeniden başlatılması benim durumumda yeterli olurdu, ancak bu çözümün her durumda işe yaramasına sevindim.


Ve birden çok yol eklemek için?
Nikiforos

PATH=$PATH:/c/Go/bin:/c/other/path
Mikaël Mayer

Ana pencere dizini ne demek? lütfen belirtiniz.
Mian Asbat Ahmad

c:/Users/[myusername]/bu benim ana
Mikaël Mayer

9

Git'i kurarken aşağıda gösterilen seçeneği seçebilirsiniz, yolu otomatik olarak ayarlamanıza yardımcı olacaktır.

Git kurulum sihirbazı

Benim için çalıştı :)


1
@eranotzap Git'i alternatif seçenekle yeniden yüklensin mi? :)
Brett Ryan

1
@eranotzap Environemtal Değişkenini kurun, yoksa Git
Muthamizhchelvan'ı

Bu, git bash'ın yolu kullanmasına nasıl yardımcı olur, sonuçta git bash kurulmayacaksa bile?
Jules

@Jules Hayır, Git Bash'i kurarken, ekran görüntüsünde gösterildiği gibi sizden orada seçenekler isteyecektir, orada ihtiyacınıza göre herhangi birini seçebilirsiniz, git bash seçme seçeneğiyle kurulacaktır.
Muthamizhchelvan. V

9

C: \ Users \ USERNAME'de config.bashrc adlı bir dosya oluşturun ve şunları içerir:

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

Şimdi dosyayı komut satırında doğru konuma taşıyın:

mv config.bashrc .bashrc

4

Eski soru ama başka birine yardımcı olabilir.

PATH kullanıcı genişliğimi değiştirdim, bundan sonra sadece oturumu kapatıp tekrar giriş yapıyorum.

İşte bu! git bashyeni PATH değerini doğru şekilde yükledi.


Git bask'ı kapatmadan veya oturumu kapatmadan mümkün mü? Demek istediğim, yol değişkenini ayarlamak istiyorum ve onu şu an kullanabiliyorum git bash
KCS

Belki yapabilirdi: export PATH=$NEW_PATH:$PATH. Normalde bir şeyler yapın
fernandosavio

3

PATH'e yeni değer ekledikten sonra bilgisayarı yeniden başlatın.


2
Bilgisayarın yeniden başlatılmasına gerek yoktur, terminal oturumu yapar.
christianbundy

2
@christianbundy Emin değilim, ancak terminalin yeniden başlatılmasına yardımcı olmadı gibi görünüyor, ancak bilgisayarın yeniden başlatılması yardımcı oldu, bu yüzden bu cevabı yazdım. Yeniden başlatma terminali denediğim ilk şey.
Pavel

Çok basit bir cevap ve tamamen etkili.
bobanahalf

2

Sistemin yeniden başlatılmasının, windows ortam değişkenindeki PATH setinin git tarafından alındığından ve başka otomatik yol olmadığından emin olacağından emin olabilirim.


Terminali yeniden başlatmak yeni bir yol seçmek için yeterli
Vikas Tawniya

1

Görünüşe göre buradaki temel neden Git Bash% USERPROFILE% değişkenini her zaman doğru şekilde ayrıştıramıyor. Bunu C: \ Users \\ ile ilişkili yapmak yerine, C: \ Windows \ System 32 \ systemprofile \ değerini alır Bunu tam nitelikli bir adrese değiştirdikten sonra, Çalışır ve daha sonra tekrar ayarlasam bile Git Bash hala bazı nedenlerden dolayı doğru PATH'a sahiptir.


1

Windows 10'da git'i kaldırıp tekrar kurun. Ortam değişkenini sizin için otomatik olarak ayarlayacaktır. Ortam değişkenini yanlışlıkla kaldırdım ve IDE'mde git kullanamadım. Git'i yeniden yüklemek bu sorunu çözdü.


1

Durumda sizin de git-bash'ın PATHhediye değil son ve yeniden başlatma istiyor ancak rejenere olmaz PATHtüm kapanış deneyebilirsiniz, s cmd.exe, powershell.exeve git-bash.exeBaşlat Menüsü veya Masaüstünden bir cmd.exe pencereyi yeniden ve görmek PATHenv güncellenir . Sistem genelinde değişiklik yaptıysanız, PATHayrıcalıklı bir cmd penceresi de açmanız gerekir.

Not: Bu, tüm Windows sürümlerinde çalışmaz cmd.exeve Başlat Menüsü veya Masaüstü dışında herhangi bir yerde açılmayabilir , 3 bilgisayarımla test edilmiş ve 2'si çalışıyor. Bunun neden çalıştığını anlamadım, ancak PATHoturum açıp çıkış yaptığımda ortam değişkeni otomatik olarak oluşturulduğundan, bu değişkeni değişken birleştirme ile karıştırmam.


0

Benim için en uygun olanı şuydu: 1) C: sürücüsünün kökünde "bin" dizini oluşturmak 2) "C: / bin;" eklemek "Bilgisayarım -> Özellikler -> Çevresel Değişkenler" içindeki PATH'e


0

Win10'da xgboost lib'yi derlemek için mingw kullanmaya çalıştığımda bu problemle karşılaşıyorum. Sonunda çözümü buldum.

Ana dizininizde .bashrc adlı bir dosya oluşturun (genellikle C: \ Users \ kullanıcı adı). Ardından yolu ona ekleyin. Yolunuz boşluk içeriyorsa tırnak işareti kullanmayı unutmayın ve C: / yerine / c / kullanmayı unutmayın.

Örneğin:

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


0

Benim açımdan aptalca bir hatayla karşılaştım. Windows 10 makinemdeki golang çalışma alanım için geniş bir sistem ve kullanıcı değişken yolu setim vardı. Yedekli sistemler değişken yolunu kaldırdığımda ve oturumu kapatıp tekrar açtığımda, .exe dosyalarını bash'da ve go env'i başarıyla çağırabildim.

OP'nin yanıtlanmış olmasına rağmen bu, Bash'in yollarınızı görmesini engelleyebilecek başka bir sorundur. Sadece bu problemle bash'ı tekrar test ettim ve bu, bash'ın iki yoldan birini takip etmesini engelleyen bir tür çelişki veriyor gibi görünüyor.


0

Bunun eski bir soru olduğunu biliyorum ama iki tür ortam değişkeni var. Kullanıcıya ait olan ve sistem geneli olan. Git bash'ı nasıl açtığınıza bağlı olarak (kullanıcı ayrıcalığı veya yönetici ayrıcalığı ile), kullanılan PATH ortam değişkeni sizden Kullanıcı değişkenlerinden veya Sistem değişkenlerinden olabilir. Aşağıya bakınız: görüntü açıklamasını buraya girin

önceki bir cevapta söylendiği gibi, env|grep PATHhangisini kullandığınızı görmek için komutu kontrol edin ve değişkeninizi buna göre güncelleyin. BTW, sistemi yeniden başlatmaya gerek yok. Git bash'ı kapatın ve yeniden açın


0

Benim durumumda Heroku cli ve git bash yüklenirken oldu, İşte çalışmak için yaptığım şey.

bu konuma gittim

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

ve heroku klasörümdeki dosyayı sil. Bu yüzden klasörü çıkardım ve cmd'yi çalıştırdım. Çalışıyor


-1

$ PATH değişkeninizi düzenlerken / eklerken (\) özel karakterlerinden kaçmayın. Örneğin, program dosyalarındaki bir uygulama dizini şöyle görünür: PATH=$PATH:/c/Program Files (x86)/random/application

Bunu yapma:
PATH=$PATH:/c/Program\ Files\ \\(x86\\)/random/application/

Bu yardımcı olur umarım.


PATH=$PATH:/c/Program Files (x86)/random/application... bu, PATH'i ayarlamak için doğru bash sözdizimi değildir. Bu, dizini geçici olarak /c/Programyola ekleyecek , ardından programı Filesargümanlarla çalıştırmayı deneyecektir (x86)/random/application. "Bunu yapma" örneğinizdeki tek yanlış şey, tek ters eğik çizgi doğru olduğunda, parantezler için ters eğik çizgilerin iki katına çıkmasıdır.
Jules

-2

Windows sistem env dahil olmak üzere yukarıda belirtilen tüm yöntemleri deneyenler için. değişkenler, .bashrc, .bashprofile, vb. VE 'echo $ PATH'de doğru yolu görebilir ... Sizin için bir çözümüm olabilir.

exec 2> / dev / null kullanarak hataları bastırın

Komut dosyam iyi çalışıyor ancak 'komut bulunamadı' veya 'Dizin bulunamadı' hataları veriyordu, ancak anlayabildiğim kadarıyla yollar temizdi. Dolayısıyla, bu hataları bastırırsanız (ayrıca 'set + e' eklemeniz gerekebilir), düzgün çalıştığından.


1
Bu sadece hataları görmezden geliyor ve sorunun temel nedenini çözmüyor gibi görünüyor.
nmio

-3

Yol adlı bir Kullanıcı değişkeni oluşturun ve Git Bash'in Sistem Değişkenlerini değil, yalnızca Kullanıcı Değişkenlerini gördüğünü fark ettiğimden% Yol% değeri olarak ekleyin. Bahsedilen prosedürü uygulayarak, Sistem Değişkeninizi Kullanıcı Değişkenlerinde göstereceksiniz.


-3

Windows 7 Yol Ortamı Değişkenlerinde Sistem Değişkeni yolunun sonuna ekliyorum

\; C: \ Program Dosyaları \ Git \ bin

ve şimdi çalışıyor!

Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.