Git Bash tidak melihat PATH saya

107

Ketika saya menggunakan Git Bash (di Windows), saya tidak dapat menjalankan apa pun yang dapat dieksekusi tanpa menentukan jalur lengkapnya, meskipun itu terletak di folder yang ada di variabel PATH saya. Sepertinya bash tidak mengenalinya. Mengapa? Bisakah saya memperbaikinya?

ulu
sumber
1
Bisakah Anda menunjukkan apa yang sebenarnya ada dalam variabel PATH Anda?
choroba
Hmm bagaimana itu terkait dengan pertanyaan saya? Jika Anda mencurigai bahwa itu salah format, saya yakin tidak, karena saya dapat menjalankan executable yang sama menggunakan shell Windows biasa (cmd).
ulu
@ulu: ini terkait dengan pertanyaan Anda karena variabel PATH adalah yang menentukan executable mana yang dapat ditemukan ... Seperti apa tampilan variabel PATH dari dalam shell Bash?
jalf
Secara khusus, ini berisi / e / Programs / Tools / bin di suatu tempat yang dekat dengan akhir, ini adalah jalur yang saya minati. Mungkin masalahnya adalah saya mencoba menjalankan file bat?
ulu

Jawaban:

64

Mengerti. Sebagai pengguna Windows, saya terbiasa mengetik nama yang dapat dieksekusi tanpa ekstensi. Dalam kasus saya, saya ingin menjalankan file bernama cup.bat. Di shell Windows, mengetik cupsudah cukup. Bash tidak berfungsi seperti ini, ia menginginkan nama lengkapnya. Mengetik cup.batmemecahkan masalah. (Saya tidak dapat menjalankan file tersebut, karena tampaknya bash tidak dapat memahami isinya)

Satu lagi alasan untuk beralih ke posh-git ..

Terima kasih @Tom karena telah mengarahkan saya ke arah yang benar.

ulu
sumber
5
Anda juga dapat menggunakan alias untuk mempersingkat nama:alias cup=cup.bat
Vitali Dettling
Windows menggunakan PATH dan PATH_EXTENSIONS untuk menyelesaikan file yang dapat dieksekusi, sedangkan dunia Linux hanya menggunakan PATH
Ferrybig
Skrip shell Anda seharusnya tidak disebut apapun .bat; ekstensi menyiratkan skrip batch Windows - terutama pada mesin Windows.
tripleee
Apa yang dipecahkan oleh posh-git? Apakah Anda tidak perlu mengetik ekstensi lagi?
Qwerty
@Qwerty posh adalah konsol Powershell, yang berarti konsol yang lebih ramah Windows dengan semua perintah dan pintasan yang sudah dikenal. Dan ya, sama seperti di konsol Windows mana pun, Anda tidak perlu mengetik ".exe" atau ".bat"
ulu
53

Mungkin bash tidak melihat jalur Windows Anda. Ketik env|grep PATHbash untuk mengonfirmasi jalur yang dilihatnya.

Tom
sumber
1
Dikatakan: PATH = / c / Users / ulu / bin:.: / Usr / local / bin: / mingw / bin: / bin: / e / Program / Ruby / bin: / c / P rogram Files / Common Files / Microsoft Shared / Windows Live: / c / Program Files (x86) / C ommon Files / Microsoft Shared / 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 / Tools / binn /
ulu
2
Coba jalankan "which your_batch_file.bat" (tanpa tanda kutip). Ini harus mengembalikan lokasi file batch Anda, jika benar-benar ada di jalurnya.
Tom
15
bagaimana cara menambahkan jalur untuk dilihat git-bash?
Angel S. Moreno
14
@ AngelS.Moreno perbarui atau buat file ".bashrc" di bawah direktori home Anda (misalnya "vim ~ / .bashrc" di git bash / cygwin), lalu tambahkan "PATH = $ PATH: <your_path_1>: <your_path_2>:. ..: <your_path_n> "ke file ini. Jadi, jika Anda ingin "/ usr / bin / mypath" berada dalam variabel PATH, baris ini akan membaca: PATH = $ PATH: / usr / bin / mypath
Daniel
35

Mengikuti komentar @ Daniel dan terima kasih atas jawaban @ Tom, saya menemukan bahwa Git bash memang menggunakan PATH tetapi bukan jalur terbaru yang saya pasang baru-baru ini. Untuk mengatasi masalah ini, saya menambahkan file di direktori home (windows) saya bernama:

.bashrc

dan isinya sebagai berikut:

PATH=$PATH:/c/Go/bin

karena saya menginstal Go dan jalur ini berisi go.exe bash Sekarang Git yang dapat dieksekusi dapat mengenali perintah:

go

Mungkin hanya reboot sistem sudah cukup dalam kasus saya, tetapi saya senang solusi ini berfungsi dalam hal apa pun.

Mikaël Mayer
sumber
Dan menambahkan beberapa jalur?
Nikiforos
PATH=$PATH:/c/Go/bin:/c/other/path
Mikaël Mayer
Apa yang Anda maksud dengan direktori home windows? harap sebutkan.
Mian Asbat Ahmad
c:/Users/[myusername]/itu direktori home saya
Mikaël Mayer
9

Saat Anda menginstal Git, Anda dapat memilih opsi yang ditunjukkan di bawah ini, ini akan membantu Anda mengatur jalur secara otomatis.

Wizard penginstalan Git

Ini berhasil untuk saya :)

Muthamizhchelvan. V.
sumber
1
@eranotzap instal ulang Git dengan opsi alternatif? :)
Brett Ryan
1
@eranotzap Siapkan Variabel Lingkungan atau instal ulang Git
Muthamizhchelvan. V
Bagaimana hal ini membantu membuat git bash menggunakan jalur tersebut, jika hasil akhirnya adalah git bash tidak akan diinstal?
Jules
@Jules Tidak, saat menginstal Git Bash, Anda akan ditanyai opsi seperti yang ditunjukkan pada tangkapan layar, di sana Anda dapat memilih salah satu permintaan sesuai kebutuhan Anda, git bash akan diinstal dengan opsi pilih.
Muthamizhchelvan. V
9

Buat file di C: \ Users \ USERNAME yang disebut config.bashrc, berisi:

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

Sekarang pindahkan file pada baris perintah ke lokasi yang benar:

mv config.bashrc .bashrc
Smile4ever
sumber
4

Restart komputer setelah menambahkan nilai baru ke PATH.

Pavel
sumber
1
Komputer tidak perlu di-restart, sesi terminal membutuhkannya.
christianbundy
2
@Christianbundy Saya tidak yakin, tapi sepertinya kadang-kadang restart terminal tidak membantu, tetapi restart komputer membantu, jadi saya menulis jawaban ini. Restart terminal adalah yang pertama, yang saya coba.
Pavel
Jawaban yang sangat sederhana, dan sangat efektif.
bobanahalf
4

Pertanyaan lama tapi bisa membantu orang lain.

Saya telah mengubah lebar pengguna PATH saya, setelah itu saya baru saja logoff dan login lagi.

Hanya itu saja! git bashmemuat nilai PATH baru dengan benar.

fernandosavio
sumber
Apakah mungkin tanpa menutup git bask atau log off. Maksud saya, saya ingin mengatur variabel jalur, dan saya dapat menggunakannya saat ini git bash
KCS
Mungkin Anda bisa melakukan: export PATH=$NEW_PATH:$PATH. Dan lakukan hal-hal secara normal
fernandosavio
2

Saya dapat mengonfirmasi bahwa memulai ulang sistem akan memastikan bahwa PATH yang diatur dalam variabel lingkungan di windows diambil oleh git dan tidak ada cara otomatis lainnya.

Pramod Alagambhat
sumber
1

Tampaknya penyebab utama di sini adalah Git Bash tidak selalu dapat mengurai variabel% USERPROFILE% dengan benar. Alih-alih membuatnya relatif ke C: \ Users \\ itu mendapat nilai C: \ Windows \ System 32 \ systemprofile \ Setelah mengubah ini ke alamat yang memenuhi syarat, itu Bekerja, dan bahkan jika saya mengaturnya kembali setelah itu, Git Bash masih memiliki PATH yang benar untuk beberapa alasan.

JakobN
sumber
1

Di Windows 10, cukup hapus instalan git dan instal lagi. Ini akan mengatur variabel lingkungan secara otomatis untuk Anda. Saya telah menghapus variabel lingkungan secara tidak sengaja dan saya tidak dapat menggunakan git di dalam IDE saya. Menginstal ulang git memperbaiki masalah ini.

romin21
sumber
1

Dalam kasus Anda git-bash's PATHhadiah tetapi tidak terbaru dan Anda tidak ingin reboot tapi regenerasi Anda PATHs, Anda dapat mencoba menutup semua cmd.exe, powershell.exe, dan git-bash.exedan membuka kembali satu jendela cmd.exe dari Start Menu atau Desktop dan melihat apakah PATHenv diperbarui . Jika Anda mengubah seluruh sistem, PATHAnda juga perlu membuka satu jendela cmd dengan hak istimewa.

Catatan: Ini tidak berfungsi dengan semua versi Windows, dan terbuka di cmd.exemana saja selain Start Menu atau Desktop mungkin tidak berfungsi , diuji dengan 3 komputer saya dan 2 di antaranya berfungsi. Saya tidak tahu mengapa ini berfungsi, tetapi karena PATHvariabel lingkungan dihasilkan secara otomatis ketika saya masuk dan keluar, saya tidak akan mengacaukan variabel itu dengan penggabungan variabel.

Zhwt
sumber
0

Bagi saya yang paling nyaman adalah: 1) Buat direktori "bin" di root C: drive 2) Tambahkan "C: / bin;" ke PATH di "Komputer Saya -> Properti -> Variabel Lingkungan"

Mike J.
sumber
0

Saya menemui masalah ini ketika saya mencoba menggunakan mingw untuk mengkompilasi xgboost lib di Win10. Akhirnya saya menemukan solusinya.

Buat file bernama .bashrc di direktori home Anda (biasanya C: \ Users \ username). Kemudian tambahkan jalur ke sana. Ingatlah untuk menggunakan tanda kutip jika jalur Anda kosong, dan ingat untuk menggunakan / c / alih-alih C: /

Sebagai contoh:

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

Flamingo
sumber
0

Saya telah mengalami kesalahan bodoh di pihak saya. Saya memiliki sistem yang luas dan jalur variabel pengguna yang ditetapkan untuk ruang kerja golang saya di mesin windows 10 saya. Ketika saya menghapus jalur variabel sistem yang redundan dan keluar dan masuk kembali, saya dapat memanggil file .exe di bash dan memanggil go env dengan sukses.

Meskipun OP telah dijawab, ini adalah masalah lain yang dapat membuat bash tidak melihat jalur Anda. Saya baru saja menguji bash lagi dengan masalah ini dan tampaknya memberikan konflik semacam yang menghalangi bash mengikuti salah satu jalur.

NewbieCrit
sumber
0

Saya tahu ini adalah pertanyaan lama tetapi ada dua jenis variabel lingkungan. Yang dimiliki oleh Pengguna dan satu sistem yang luas. Bergantung bagaimana Anda membuka git bash (dengan hak istimewa pengguna atau dengan hak istimewa administrator) variabel lingkungan PATH yang digunakan dapat berasal dari Anda variabel Pengguna atau dari variabel Sistem. Lihat di bawah: masukkan deskripsi gambar di sini

seperti yang dikatakan dalam jawaban sebelumnya, periksa dengan perintah env|grep PATHuntuk melihat mana yang Anda gunakan dan perbarui variabel Anda sesuai. BTW, tidak perlu reboot sistem. Tutup saja dan buka kembali git bash

LionH
sumber
0

Dalam kasus saya Itu terjadi saat menginstal heroku cli dan git bash, Inilah yang saya lakukan untuk bekerja.

sampai di lokasi ini

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

dan hapus file dalam kasus saya folder heroku. Jadi saya menghapus folder dan menjalankan cmd. Ini bekerja

kontashi35
sumber
-1

Jangan lepas (\) karakter khusus saat mengedit / menambahkan variabel $ PATH Anda. Misalnya, direktori aplikasi dalam file program akan terlihat seperti ini: PATH=$PATH:/c/Program Files (x86)/random/application

Jangan lakukan ini:
PATH=$PATH:/c/Program\ Files\ \\(x86\\)/random/application/

Semoga ini membantu.

Adam Parsons
sumber
PATH=$PATH:/c/Program Files (x86)/random/application... ini bukan sintaks bash yang benar untuk menyetel PATH. Ini sementara akan menambahkan direktori /c/Programke jalur, kemudian mencoba menjalankan program Filesdengan argumen (x86)/random/application. Satu-satunya hal yang salah dengan contoh "jangan lakukan ini" adalah bahwa ia telah menggandakan garis miring terbalik untuk tanda kurung, ketika satu garis miring terbalik benar.
Jules
-2

Bagi Anda yang telah mencoba semua metode yang disebutkan di atas termasuk sistem Windows env. variabel, .bashrc, .bashprofile, dll. DAN dapat melihat jalur yang benar di 'echo $ PATH' ... Saya mungkin punya solusi untuk Anda.

tekan kesalahan menggunakan exec 2> / dev / null

Skrip saya berjalan dengan baik tetapi menampilkan kesalahan 'command not found' atau 'No directory found' meskipun, sejauh yang saya tahu, jalurnya rata. Jadi, jika Anda menekan kesalahan tersebut (mungkin juga harus menambahkan 'set + e'), daripada berfungsi dengan baik.

ClickerTweeker
sumber
1
Ini sepertinya hanya mengabaikan kesalahan dan tidak menyelesaikan akar penyebab masalah.
nmio
-3

Buat variabel Pengguna bernama Path dan tambahkan sebagai nilai% Path%, dari apa yang saya perhatikan Git Bash hanya melihat Variabel Pengguna dan bukan Variabel Sistem. Dengan melakukan prosedur yang disebutkan, Anda akan mengekspos Variabel Sistem Anda di Variabel Pengguna.

broilogabriel.dll
sumber
-3

Dalam Variabel Lingkungan Jalur Windows 7 saya hanya menambahkan di akhir jalur Variabel Sistem

\; C: \ Program Files \ Git \ bin

dan berhasil sekarang!

Kenneth Israel
sumber