Sommario
Hai ragione, Git Bash per Windows non è solo bash
compilato per Windows. E 'pacchetto che contiene bash
(che è una shell a linea di comando ) e una collezione di altri, utility separate * nix come ssh
, scp
, cat
, find
e altri (che si esegue utilizzando la shell), compilato per Windows, e un nuovo terminale di interfaccia della riga di comando finestra chiamata mintty
.
In poche parole
Su Windows potresti eseguire comandi come ipconfig /all
o format G:
utilizzando cmd.exe
. Questi comandi sono file eseguibili effettivi in C:\Windows\system32
, memorizzati come ipconfig.exe
e format.com
file. cmd.exe
è separato da entrambi e li carica e li esegue su richiesta dell'utente.
ssh
, scp
, cat
, find
Vengono eseguiti utilizzando bash
esattamente nello stesso modo. Di solito sono memorizzati /usr/bin
invece che C:\Windows\system32
su sistemi * nix, perché Windows e * nix hanno la struttura dei file di sistema organizzata in modo diverso.
Nel caso di Git Bash per Windows, questi programmi si trovano nella cartella di installazione di Git: C:\Program Files\Git\usr\bin
che si trova anche nell'ambiente emulato di Linux in /usr/bin
.
Proprio come essere in grado di eseguire solo cmd.exe
* nix non ti consente di fare molto senza le altre utilità di sistema, anche solo essere in grado di eseguire Bash su Windows non è molto utile. Ciò significa che tutti questi comandi extra devono essere raggruppati insieme a Bash per creare un pacchetto software utilizzabile.
Dettagli: applicazioni POSIX su Windows
Normalmente quei comandi extra si trovano sui sistemi * nix e non su Windows, perché sono stati programmati contro l'API di programmazione POSIX (che è ciò che * usa *) e non le API Win32 (che è quello che usa Windows). La documentazione API POSIX è apertamente disponibile, quindi alcune persone l'hanno portata su altri sistemi, incluso Windows. L'implementazione Windows delle API / librerie POSIX è fornita da Cygwin
e MSYS
.
Questo è un po 'simile a quello che fa il progetto Wine , ma converte POSIX-> Windows anziché Windows-> POSIX come fa Wine.
mintty
mintty
è incluso perché cmd.exe
, nella finestra predefinita della riga di comando di Windows, mancano alcune importanti funzionalità che sono normalmente disponibili sulla maggior parte dei sistemi * nix. Nella maggior parte dei casi, mintty
è una scelta migliore per l'esecuzione dei comandi (sicuramente per le utilità fornite con il pacchetto Git Bash per Windows), ma a volte un'applicazione di sistema Windows può funzionare meglio con cmd.exe
.