Résumé
Vous avez raison, Git Bash pour Windows n'est pas seulement bash
compilé pour Windows. C'est un paquet qui contient bash
(qui est un ligne de commande Shell ) et une collection d'autres utilitaires *nix séparés comme ssh
, scp
, cat
, find
et d'autres (que vous exécutez à l'aide du Shell), compilé pour Windows, et une nouvelle fenêtre de terminal à interface de ligne de commande appelée mintty
.
En bref
Sous Windows, vous pouvez exécuter des commandes comme ipconfig /all
o format G:
en utilisant cmd.exe
. Ces commandes sont de véritables fichiers exécutables sous C:\Windows\system32
stocké sous la forme ipconfig.exe
y format.com
des fichiers. cmd.exe
est séparé des deux et les charge et les exécute à la demande de l'utilisateur.
ssh
, scp
, cat
, find
sont exécutés en utilisant bash
de la même manière. Ils sont généralement stockés sous /usr/bin
plutôt que dans C:\Windows\system32
sur les systèmes *nix, car la structure des fichiers système de Windows et de *nix est organisée différemment.
Dans le cas de Git Bash pour Windows, ces programmes sont situés dans le dossier d'installation de Git : C:\Program Files\Git\usr\bin
qui peut également être trouvé dans l'environnement Linux émulé sous /usr/bin
.
Juste comme être capable de juste courir cmd.exe
sur *nix ne vous permet pas de faire grand-chose sans les autres utilitaires du système, le simple fait de pouvoir exécuter Bash sur Windows n'est pas très utile non plus. Cela signifie que toutes ces commandes supplémentaires doivent être regroupées avec Bash pour créer un logiciel utilisable.
Détails : Applications POSIX sous Windows
Normalement, ces commandes supplémentaires se trouvent sur les systèmes *nix et non sur Windows, parce qu'elles ont été programmées avec l'API de programmation POSIX (qui est celle utilisée par *nix), et non avec les API Win32 (qui sont celles utilisées par Windows). La documentation de l'API POSIX est ouvertement disponible, de sorte que certaines personnes l'ont portée sur d'autres systèmes, y compris Windows. L'implémentation Windows des API/librairies POSIX est fournie par Cygwin
y MSYS
.
C'est un peu similaire à ce que le Projet Wine. le fait, mais il convertit POSIX->Windows plutôt que Windows->POSIX comme le fait Wine.
mintty
mintty
est inclus car cmd.exe
la fenêtre de ligne de commande par défaut de Windows, est dépourvue de certaines fonctionnalités importantes qui sont normalement disponibles sur la plupart des systèmes *nix. Dans la plupart des cas, mintty
est un meilleur choix pour exécuter des commandes (en tout cas pour les utilitaires fournis avec le paquetage Git Bash pour Windows), mais il arrive qu'une application système Windows fonctionne mieux avec cmd.exe
.