Sumário
Você está correto, o Git Bash para Windows não é apenas bash
compilado para Windows. Empacotá-lo de que contém bash
(que é um shell de linha de comando ) e uma coleção de outros, utilitários separados * nix como ssh
, scp
, cat
, find
e outros (que você executar usando o shell), compilado para Windows, e um novo terminal de interface de linha de comando janela chamada mintty
.
Em poucas palavras
No Windows, você pode executar comandos como ipconfig /all
ou format G:
usando cmd.exe
. Esses comandos são arquivos executáveis reais em C:\Windows\system32
, armazenados como ipconfig.exe
e format.com
arquivos. cmd.exe
é separado de ambos e carrega e os executa a pedido do usuário.
ssh
, scp
, cat
, find
São executados usando bash
exatamente da mesma maneira. Eles geralmente são armazenados em sistemas * nix, /usr/bin
e não em C:\Windows\system32
sistemas * nix, porque o Windows e o * nix têm sua estrutura de arquivos do sistema organizada de maneira diferente.
No caso do Git Bash for Windows, esses programas estão localizados na pasta de instalação do Git:, C:\Program Files\Git\usr\bin
que também pode ser encontrada no ambiente Linux emulado em /usr/bin
.
Assim como poder rodar cmd.exe
no * nix não permite muito sem os outros utilitários do sistema, apenas rodar o Bash no Windows também não é muito útil. Isso significa que todos esses comandos extras precisam ser agrupados com o Bash para criar um pacote de software utilizável.
Detalhes: aplicativos POSIX no Windows
Normalmente esses comandos extras seriam encontrados nos sistemas * nix e não no Windows, porque foram programados na API de programação POSIX (que é o que o * nix usa) e não nas APIs do Win32 (que é o Windows que usa). A documentação da API POSIX está disponível abertamente, portanto, algumas pessoas a portaram para outros sistemas, incluindo o Windows. A implementação do Windows de APIs / bibliotecas POSIX é fornecida por Cygwin
e MSYS
.
Isso é semelhante ao que o projeto Wine faz, mas converte POSIX-> Windows em vez de Windows-> POSIX como o Wine.
hortelã
mintty
está incluído porque cmd.exe
, na janela de linha de comando padrão do Windows, faltam alguns recursos importantes que normalmente estão disponíveis na maioria dos sistemas * nix. Na maioria dos casos, mintty
é uma opção melhor para executar comandos (certamente para os utilitários que acompanham o pacote Git Bash for Windows), mas ocasionalmente um aplicativo de sistema Windows pode funcionar melhor cmd.exe
.