NOTA: Consulte minha segunda edição abaixo para obter uma atualização sobre o problema.
Cygwin estava funcionando bem para mim até a semana passada. Agora o .bashrc não está sendo originado. Devo ter instalado ou alterado algo, mas não consigo me lembrar exatamente o que causou o problema. Quando inicio o Cygwin, estou na minha casa do Windows e nenhum dos meus apelidos funciona. Eu tenho que fonte manualmente .bashrc. O seguinte é o meu Cygwin.bat:
@echo off
C:
chdir C:\cygwin\bin
set CYGWIN=tty notitle glob
bash --login -i
Alguma ideia?
EDIT: My .bash_profile contém o seguinte,
# source the users bashrc if it exists
if [ -f "${HOME}/.bashrc" ] ; then
source "${HOME}/.bashrc"
fi
EDIT2: IMPORTANTE! Quando iniciei o Cygwin, ele inicia na minha pasta inicial do Windows. Tentei colocar meus arquivos .bash_profile e .bashrc nessa pasta e eles foram obtidos corretamente! Isso significa que o problema foi reduzido para descobrir por que o Cygwin inicia na pasta inicial do Windows e não na pasta inicial normal do Cygwin.
EDIT3: Resultados da execução do 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
impresso?/cygdrive/c/Users/foo
vez deC:\Users\foo
)HOME=/home/yourname bash -l
no prompt do terminal? Se eu estiver certo, isso deve lhe dar um shell funcionando corretamente. Observe que este é um diagnóstico ou, na melhor das hipóteses, uma solução alternativa, não uma solução; ainda precisamos descobrir por que você$HOME
está incorreto em primeiro lugar. O problema raiz é a configuração incorreta de$HOME
; bash está se comportando corretamente.Respostas:
O FAQ do Cygwin explica como
$HOME
está definido:Meu melhor palpite é que você estragou seu
/etc/passwd
arquivo. (O diretório inicial do Windows%USERPROFILE%
não é%HOME%
.)O que é
grep USERNAME /etc/passwd
impresso (substituindoUSERNAME
pelo seu nome de usuário)?fonte
set HOME=
? É mais provável que o uso do painel de controle do sistema funcione, mas pode ser necessário reiniciar mesmo assim.Se você possui um .profile ou .bash_profile, que é originado em shells de logon, e você obtém um shell de logon desde que passa
--login
. Se você originar .profile, o bash não fará a origem .bashrc.Eu tentaria colocar:
no seu .profile, veja se isso ajuda. Seu .bashrc ainda deve ser originado, normalmente, em outras invocações de shell que não são de login.
E não passe
-i
para a festança; você não precisa disso. Bash tipo de hacks que, finge que você deu-i
na linha de comando.fonte
-i
não é necessário. Obrigado.-i
na linha de comando. Tente abrir uma janela de shell bash, entãoecho $-
, você deve veri
(entre possivelmente outras bandeiras)Eu experimentei o mesmo comportamento - provavelmente depois de ter o git (Windows) instalado.
Na configuração do sistema, encontrei a variável de usuário HOME = C: \ Users \ me e redefini-a para HOME = D: \ home
fonte