Git Bash no ve mi RUTA

107

Cuando uso Git Bash (en Windows), no puedo ejecutar ningún ejecutable sin especificar su ruta completa, aunque se encuentra en una carpeta que está en mi variable PATH. Parece que bash no lo reconoce. ¿Por qué? ¿Puedo arreglarlo?

ulu
fuente
1
¿Puede mostrar qué hay exactamente en su variable PATH?
choroba
Hmm, ¿cómo se relaciona eso con mi pregunta? Si sospecha que tiene un formato incorrecto, estoy seguro de que no lo es, ya que puedo ejecutar los mismos ejecutables utilizando el shell normal de Windows (cmd).
ulu
@ulu: está relacionado con su pregunta porque la variable PATH es lo que determina qué ejecutables se pueden encontrar ... ¿Cómo se ve la variable PATH desde dentro del shell Bash?
jalf
En particular, contiene / e / Programas / Herramientas / bin en algún lugar cercano al final, esta es la ruta que me interesa. ¿Quizás el problema es que estoy tratando de ejecutar un archivo bat?
ulu

Respuestas:

64

Entendido. Como usuario de Windows, estoy acostumbrado a escribir nombres de ejecutables sin extensiones. En mi caso, quería ejecutar un archivo llamado cup.bat. En un shell de Windows, cupbasta con escribir . Bash no funciona de esta manera, quiere el nombre completo. Mecanografíacup.bat resolvió el problema. (Sin embargo, no pude ejecutar el archivo, ya que aparentemente bash no podía entender su contenido)

Una razón más para cambiarse a posh-git ..

Gracias @Tom por indicarme la dirección correcta.

ulu
fuente
5
También puede utilizar un alias para acortar el nombre:alias cup=cup.bat
Vitali Dettling
Windows usa PATH y PATH_EXTENSIONS para resolver ejecutables, mientras que el mundo de Linux solo usa PATH
Ferrybig
Su script de shell definitivamente no debe llamarse de ninguna manera .bat; la extensión implica un script por lotes de Windows, especialmente en una máquina con Windows.
triplicado
¿Qué resuelve posh-git? ¿Ya no necesitas escribir la extensión?
Qwerty
@Qwerty posh es una consola Powershell, cambiar a ella significa una consola más compatible con Windows con todos los comandos y atajos familiares. Y sí, al igual que en cualquier consola de Windows, no es necesario que escriba ".exe" o ".bat"
ulu
53

Quizás bash no vea su ruta de Windows. Escribir env|grep PATHen bash para confirmar qué camino se ve.

Tom
fuente
1
Dice: RUTA = / c / Usuarios / ulu / bin:.: / Usr / local / bin: / mingw / bin: / bin: / e / Programas / Ruby / bin: / c / Archivos de programa / Archivos comunes / Microsoft Shared / Windows Live: / c / Archivos de programa (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 / Archivos de programa (x86) / Microsoft SQL Server / 90 / Tools / binn /
ulu
2
Intente ejecutar "which_batch_file.bat" (sin comillas). Debería devolver la ubicación de su archivo por lotes, si realmente está en la ruta.
Tom
15
¿Cómo agrego rutas para que las vea git-bash?
Angel S. Moreno
14
@ AngelS.Moreno actualice o cree un archivo ".bashrc" en su directorio de inicio (por ejemplo, "vim ~ / .bashrc" en git bash / cygwin), luego agregue "PATH = $ PATH: <your_path_1>: <your_path_2>:. ..: <your_path_n> "a este archivo. Entonces, si quisiera que "/ usr / bin / mypath" esté en la variable PATH, esta línea se leería: PATH = $ PATH: / usr / bin / mypath
Daniel
35

Siguiendo el comentario de @ Daniel y gracias a la respuesta de @ Tom, descubrí que Git bash estaba usando PATH pero no las últimas rutas que instalé recientemente. Para solucionar este problema, agregué un archivo en mi directorio de inicio (Windows) llamado:

.bashrc

y el contenido de la siguiente manera:

PATH=$PATH:/c/Go/bin

porque estaba instalando Go y esta ruta contenía el ejecutable go.exe Now Git bash pudo reconocer el comando:

go

Quizás solo un reinicio del sistema hubiera sido suficiente en mi caso, pero estoy feliz de que esta solución funcione en cualquier caso.

Mikaël Mayer
fuente
¿Y agregar múltiples caminos?
Nikiforos
PATH=$PATH:/c/Go/bin:/c/other/path
Mikaël Mayer
¿Qué quieres decir con el directorio de inicio de Windows? Por favor especifica.
Mian Asbat Ahmad
c:/Users/[myusername]/ese es mi directorio de inicio
Mikaël Mayer
9

Mientras instalas Git, puedes seleccionar la opción que se muestra a continuación, te ayudará a configurar la ruta automáticamente.

Asistente de instalación de Git

Me ha funcionado :)

Muthamizhchelvan. V
fuente
1
@eranotzap reinstalar Git con la opción alternativa? :)
Brett Ryan
1
@eranotzap Configure la Variable
Environemtal; de lo
¿Cómo ayuda esto a que git bash use la ruta, cuando el resultado final es que git bash ni siquiera se instalará?
Jules
@Jules No, mientras instala Git Bash, le pedirá las opciones que se muestran en la captura de pantalla, allí puede seleccionar cualquier pregunta que necesite, git bash se instalará con la opción de selección.
Muthamizhchelvan. V
9

Cree un archivo en C: \ Users \ USERNAME que se llama config.bashrc, que contiene:

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

Ahora mueva el archivo en la línea de comando a la ubicación correcta:

mv config.bashrc .bashrc
Smile4ever
fuente
4

Reinicie la computadora después de que haya agregado un nuevo valor a PATH.

Pavel
fuente
1
No es necesario reiniciar la computadora, la sesión de terminal sí.
christianbundy
2
@christianbundy No estoy seguro, pero parece que en algún momento el reinicio de la terminal no ayudó, pero el reinicio de la computadora ayudó, así que escribí esta respuesta. Reiniciar el terminal es el primero que intento.
Pavel
Una respuesta tan simple y completamente efectiva.
Bobana
4

Pregunta antigua, pero puede ayudar a otra persona.

He cambiado mi usuario de PATH en todo el mundo, después de eso, simplemente me desconecto y vuelvo a iniciar sesión.

¡Eso es! git bashcargó correctamente el nuevo valor PATH.

fernandosavio
fuente
¿Es posible sin cerrar git bask o desconectarse? Quiero decir, quiero establecer la variable de ruta, y puedo usarla en git bash actual
KCS
Tal vez usted podría hacer: export PATH=$NEW_PATH:$PATH. Y hacer las cosas normalmente
fernandosavio
2

Puedo confirmar que al reiniciar el sistema se asegurará de que git recoja el PATH establecido en la variable de entorno en Windows y no haya otra forma automática.

Pramod Alagambhat
fuente
1

Parece que la causa raíz aquí es que Git Bash no siempre puede analizar correctamente la variable% USERPROFILE%. En lugar de hacerlo relativo a C: \ Users \\, obtiene el valor C: \ Windows \ System 32 \ systemprofile \ Después de cambiar esto a una dirección completamente calificada, funciona, e incluso si lo configuro de nuevo después, Git Bash todavía tiene la RUTA correcta por alguna razón.

JakobN
fuente
1

En Windows 10, simplemente desinstale git e instálelo nuevamente. Establecerá la variable de entorno automáticamente. Eliminé la variable de entorno por error y no pude usar git dentro de mi IDE. La reinstalación de git solucionó este problema.

romin21
fuente
1

En caso de que tu git-bash 's PATHpresentes pero no última y que no quiere un reinicio, pero regenerar sus PATHs, puede intentar cerrar todos cmd.exe, powershell.exey git-bash.exey volver a abrir una ventana cmd.exe desde el menú Inicio o de escritorio y ver si el PATHse actualiza env . Si cambió en todo el sistema, PATHtambién debe abrir una ventana de cmd privilegiada.

Nota: esto no funciona con todas las versiones de Windows y abre cmd.exe cualquier lugar que no sea el menú Inicio o el escritorio puede no funcionar , probado con mis 3 computadoras y 2 de ellas funcionan. No descubrí por qué funciona esto, pero dado que la PATHvariable de entorno se genera automáticamente cuando inicio y cierre la sesión, no arruinaría esa variable con la concatenación de variables.

Zhwt
fuente
0

Para mí lo más conveniente fue: 1) Crear el directorio "bin" en la raíz de la unidad C: 2) Agregar "C: / bin;" a PATH en "Mi PC -> Propiedades -> Variables ambientales"

Mike J
fuente
0

Me encuentro con este problema cuando trato de usar mingw para compilar la biblioteca xgboost en Win10. Finalmente encontré la solución.

Cree un archivo llamado .bashrc en su directorio de inicio (generalmente C: \ Users \ username). Luego agregue la ruta. Recuerde usar comillas si su ruta contiene espacios en blanco y recuerde usar / c / en lugar de C: /

Por ejemplo:

RUTA = $ RUTA: "/ c / Archivos de programa / mingw-w64 / x86_64-7.2.0-posix-seh-rt_v5-rev1 / mingw64 / bin"

Flamenco
fuente
0

Me he encontrado con un estúpido error de mi parte. Tenía un sistema amplio y una ruta variable de usuario establecida para mi espacio de trabajo golang en mi máquina con Windows 10. Cuando eliminé la vía de la variable de sistemas redundantes y me desconecté y volví a conectar, pude llamar a archivos .exe en bash y llamar a go env con éxito.

Aunque se ha respondido a OP, este es otro problema que podría evitar que bash vea sus caminos. Acabo de probar bash nuevamente con este problema y parece dar un conflicto de algún tipo que bloquea a bash para que no siga cualquiera de los caminos.

NewbieCrit
fuente
0

Sé que es una pregunta antigua, pero hay dos tipos de variables de entorno. El que es propiedad del Usuario y el de todo el sistema. Dependiendo de cómo abra git bash (con privilegios de usuario o con privilegios de administrador), la variable de entorno PATH utilizada puede ser de sus variables de usuario o de las variables del sistema. Vea abajo: ingrese la descripción de la imagen aquí

como se dijo en una respuesta anterior, verifique con el comando env|grep PATHpara ver cuál está usando y actualice su variable en consecuencia. Por cierto, no es necesario reiniciar el sistema. Solo cierra y vuelve a abrir el git bash

LionH
fuente
0

En mi caso, sucedió mientras instalaba heroku cli y git bash, esto es lo que hice para trabajar.

llegué a esta ubicación

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

y eliminar el archivo en mi carpeta heroku caso. Así que eliminé la carpeta y ejecuté cmd. Está funcionando

kontashi35
fuente
-1

No escape caracteres especiales (\) al editar / agregar a su variable $ PATH. Por ejemplo, un directorio de aplicaciones en archivos de programa se vería así: PATH=$PATH:/c/Program Files (x86)/random/application

No hagas esto:
PATH=$PATH:/c/Program\ Files\ \\(x86\\)/random/application/

Espero que esto ayude.

Adam Parsons
fuente
PATH=$PATH:/c/Program Files (x86)/random/application... esta no es la sintaxis bash correcta para configurar el PATH. Esto agregará temporalmente el directorio /c/Programa la ruta, luego intentará ejecutar el programa Filescon argumentos (x86)/random/application. El único problema con el ejemplo de "no hacer esto" es que tiene barras invertidas duplicadas para los corchetes, cuando las barras invertidas simples son correctas.
Jules
-2

Para aquellos de ustedes que han probado todos los métodos mencionados anteriormente, incluido el sistema env de Windows. variables, .bashrc, .bashprofile, etc. Y puedo ver la ruta correcta en 'echo $ PATH' ... Puedo tener una solución para usted.

suprima los errores usando exec 2> / dev / null

Mi script funciona bien pero arrojaba errores de 'comando no encontrado' o 'No se encontró directorio' a pesar de que, por lo que puedo decir, las rutas estaban al ras. Entonces, si suprime esos errores (es posible que tenga que agregar también 'set + e'), entonces funciona correctamente.

ClickerTweeker
fuente
1
Esto parece simplemente ignorar errores y no resolver la causa raíz del problema.
nmio
-3

Cree una variable de usuario llamada Ruta y agregue como valor% Path%, por lo que noté que Git Bash solo ve Variables de usuario y no Variables de sistema. Al realizar el procedimiento mencionado, expondrá su Variable de sistema en las Variables de usuario.

broilogabriel
fuente
-3

En las variables de entorno de ruta de Windows 7, solo agrego al final de la ruta de la variable del sistema

\; C: \ Archivos de programa \ Git \ bin

¡y funciona ahora!

Kenneth Israel
fuente