No Windows 10, o git-bash e o cygwin shell podem fazer as mesmas coisas?
O que um pode fazer, mas o outro não?
Por exemplo,
- Como conchas, os dois podem funcionar da mesma forma que o bash?
Quais programas e comandos podem ser executados em um, mas não no outro?
Por exemplo, no git-bash, não consigo executar algum comando do Windows:
$ reg add "HKCU\Software\Microsoft\VisualStudio\14.0_Config\MSBuild" /v EnableOutOfProcBuild /t REG_DWORD /d 0 /f ERROR: Invalid syntax. Type "REG ADD /?" for usage.
Mas em Cygwin, ele corre bem
$ reg add "HKCU\Software\Microsoft\VisualStudio\14.0_Config\MSBuild" /v EnableOutOfProcBuild /t REG_DWORD /d 0 /f The operation completed successfully.
originalmente eu pensava que o git-bash e o cygwin podem executar programas no Windows. Então, por que o git-bash não funciona, enquanto o cygwin pode?
Obrigado.
Há muita sobreposição entre os dois. Mas, em última análise, são implementações diferentes do bash / will no Windows.
O Cygwin possui um grande corpo de software opcional que você pode instalar, incluindo várias linguagens de programação diferentes, compiladores, várias ferramentas de rede e assim por diante. Você também pode instalar o X e muitos aplicativos X.
Com o git bash, você obtém o que obtém e é um pouco mais difícil instalar ferramentas adicionais. Na verdade, tenho os dois na minha estação de trabalho, porque há coisas que não posso fazer no git bash. Também tive sucesso misto ao chamar aplicativos cygwin a partir da janela do git bash.
Além disso, o cygwin é um ambiente posix completo, não apenas um interpretador do bash; portanto, você pode frequentemente compilar código não distribuído, por exemplo, se você encontrou a fonte de uma boa ferramenta Linux que encontrou, geralmente pode compilar essa ferramenta para Cygwin. Não tanto para o git bash. E como mencionei acima, mesmo se você o compilar para o Cygwin, provavelmente não funcionará no git bash.
Fora isso, eles são muito parecidos. É meio engraçado ver que o git bash inclui o
cygpath
comando para converter os caminhos de arquivos do Windows e Posix, porque o git bash afaik é baseado no MinGW, que é uma solução distinta do Cygwin.fonte
Acabei de encontrar uma diferença: posso executar esse script no Git bash, mas não no Cygwin.
No Git bash, ele processa meus arquivos xml, mas no Cygwin, gera um erro:
bash --version
no Git bash:em Cygwin:
fonte
ls
no diretório atual com o comandofind
dessa maneira sem aspas.) (2) Os nomes dos arquivos são na verdade * .XML (em maiúsculas) e a opção shellnocaseglob
é definida na criação de shell git globs insensitive (o que faz certo sentido no Windows).