NOTA: Consulte mi segunda edición a continuación para obtener una actualización sobre el problema.
Cygwin estuvo trabajando bien para mí hasta la semana pasada. Ahora .bashrc no se obtiene. Debo haber instalado o cambiado algo, pero no recuerdo exactamente qué causó el problema. Cuando inicio Cygwin, estoy en mi casa de Windows y ninguno de mis alias funciona. Tengo que fuente manualmente .bashrc. El siguiente es mi Cygwin.bat:
@echo off
C:
chdir C:\cygwin\bin
set CYGWIN=tty notitle glob
bash --login -i
¿Algunas ideas?
EDITAR: Mi .bash_profile contiene lo siguiente,
# source the users bashrc if it exists
if [ -f "${HOME}/.bashrc" ] ; then
source "${HOME}/.bashrc"
fi
EDIT2: ¡IMPORTANTE! Cuando comencé Cygwin, comienza en mi carpeta de inicio de Windows. ¡Intenté poner mi .bash_profile y .bashrc en esta carpeta y se obtuvieron correctamente! Esto significa que el problema se ha reducido a descubrir por qué Cygwin se inicia en la carpeta de inicio de Windows y no en la carpeta de inicio normal de Cygwin.
EDITAR3: Resultados de ejecutar grep Gulshan / etc / passwd /
$ grep Gulshan /etc/passwd
Administrator:unused:500:513:U-Gulshan-HP\Administrator,S-1-5-21-1235613160-4193452482-2032876723-500:/home/Administrator:/bin/bash
Guest:unused:501:513:U-Gulshan-HP\Guest,S-1-5-21-1235613160-4193452482-2032876723-501:/home/Guest:/bin/bash
Gulshan:unused:1000:513:U-Gulshan-HP\Gulshan,S-1-5-21-1235613160-4193452482-2032876723-1000:/home/Gulshan:/bin/bash
echo $HOME
imprime?/cygdrive/c/Users/foo
lugar deC:\Users\foo
)HOME=/home/yourname bash -l
en el indicador de terminal? Si estoy en lo cierto, esto debería darte un shell que funcione correctamente. Tenga en cuenta que esto es un diagnóstico, o en el mejor de los casos una solución alternativa, no una solución; Todavía tenemos que averiguar por qué su$HOME
incorrecta es en primer lugar. El problema raíz es la configuración incorrecta de$HOME
; bash se está comportando correctamente.Respuestas:
Las preguntas frecuentes de Cygwin explican cómo
$HOME
se configura:Mi mejor suposición es que has estropeado tu
/etc/passwd
archivo. (El directorio de inicio de Windows es%USERPROFILE%
, no%HOME%
).¿Qué
grep USERNAME /etc/passwd
imprime (reemplazandoUSERNAME
con su nombre de usuario)?fuente
set HOME=
? Es más probable que el uso del panel de control del sistema funcione, pero un reinicio podría ser necesario incluso en ese momento.Si tiene un .profile o .bash_profile, esto se obtiene de los shells de inicio de sesión, y obtiene un shell de inicio de sesión desde que lo aprueba
--login
. Si obtiene .profile, bash no generará .bashrc.Intentaría poner:
en su perfil, vea si eso ayuda. Su .bashrc aún debe obtenerse, como es normal, en otras invocaciones de shell sin inicio de sesión.
Y no pases
-i
a bash; no lo necesitas Bash es un tipo de pirateo que, simula que diste-i
en la línea de comando.fuente
-i
no es necesario. Gracias.-i
en la línea de comando. Intente abrir una ventana de bash shell, entoncesecho $-
, debería veri
(entre otras posibles banderas)Experimenté el mismo comportamiento, probablemente después de tener instalado git (Windows).
En la configuración del sistema, encontré la variable de usuario HOME = C: \ Users \ me y restablecí esto a HOME = D: \ home
fuente