J'utilise avec bonheur Git et Git Bash à partir de https://git-scm.com/ . Il y a une page avec plus d'informations ici: https://git-for-windows.github.io/ .
Hier, j'ai eu un problème avec rsync
, et j'ai commencé à creuser plus profondément dans Git Bash pour Windows. J'ai réalisé que je ne suis même pas sûr du nom du programme Bash, car il est uniquement fourni avec le téléchargement de git-scm. Je l'appelle Git Bash pour Windows, ce qui semble raisonnable.
En cherchant "Qu'est-ce que Git Bash", j'ai lu des articles sur Cygwin et sur un autre élément appelé mysys2 , qui semble être lié à mysysGit
, et j'ai vu des références à MinGW
. Mais ensuite, j'ai vu dans la FAQ que Mintty était le terminal par défaut de Git Bash.
Il semble que l’application Bash soit en réalité un ensemble spécialement organisé d’autres objets (listés ci-dessus pour la plupart) qui sont disponibles indépendamment.
Fondamentalement, j'aimerais savoir quelle est la base des commandes * nix telles que ssh
scp
cat
ls
fonctionner dans Git Bash pour Windows?
(Je pense qu'une bonne réponse aiderait quelqu'un à comprendre, de manière générale, comment ces composants s'emboîtent et à comprendre les mots appropriés pour les composants, mais je ne veux pas casser le format de la question / réponse SO.)
rsync
question initiale !!Réponses:
Sommaire
Vous avez raison, Git Bash pour Windows n'est pas uniquement
bash
compilé pour Windows. Il paquet de contenantbash
(qui est un shell en ligne de commande ) et une collection d'autres, des utilitaires distincts * nix commessh
,scp
,cat
,find
et d' autres (que vous exécutez à l' aide du shell), compilé pour Windows et un nouveau terminal d'interface de ligne de commande fenêtre appeléemintty
.En un mot
Sous Windows, vous pouvez exécuter des commandes telles que
ipconfig /all
ou enformat G:
utilisantcmd.exe
. Ces commandes sont des fichiers exécutables sousC:\Windows\system32
, stockés en tant queipconfig.exe
etformat.com
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 utilisantbash
exactement de la même manière. Ils sont généralement stockés sous des systèmes * nix/usr/bin
plutôt queC:\Windows\system32
sur des systèmes, car Windows et * nix ont une structure de fichiers système organisée différemment.Dans le cas de Git Bash pour Windows, ces programmes se trouvent dans le dossier d’installation de Git:,
C:\Program Files\Git\usr\bin
qui se trouve également dans l’environnement Linux émulé sous/usr/bin
.Tout comme pouvoir simplement utiliser
cmd.exe
* nix ne vous permet pas de faire beaucoup sans les autres utilitaires du système, le simple fait de pouvoir exécuter Bash sous Windows n’est pas non plus très utile. Cela signifie que toutes ces commandes supplémentaires doivent être associées à Bash pour créer un progiciel utilisable.Détails: applications POSIX sous Windows
Normalement, ces commandes supplémentaires se trouvent sur les systèmes * nix et non sur Windows, car elles ont été programmées sur l'API de programmation POSIX (utilisée par * nix) et non sur les API Win32 (utilisée par Windows). La documentation de l'API POSIX est disponible en accès libre. Certaines personnes l'ont donc transférée sur d'autres systèmes, notamment Windows. Les implémentations Windows des API / bibliothèques POSIX sont fournies par
Cygwin
etMSYS
.Cela ressemble à ce que fait le projet Wine , mais il convertit POSIX-> Windows plutôt que Windows-> POSIX comme le fait Wine.
menthe
mintty
est incluse carcmd.exe
la fenêtre de ligne de commande Windows par défaut manque certaines fonctionnalités importantes, normalement disponibles sur * la plupart des systèmes * nix. Dans la plupart des cas, ilmintty
s'agit d'un meilleur choix pour l'exécution de commandes (certainement pour les utilitaires fournis avec le package Git Bash pour Windows), mais il peut arriver qu'une application système Windows fonctionne mieuxcmd.exe
.la source
ssh
scp
cat
ls
fonctionner dans Git Bash pour Windows?" . Le message de Pabru répond assez bien aux deux questions et constitue une réponse correcte pour quiconque peut avoir la même question (comme indiqué), donc en l'acceptant, vous aidez les autres utilisateurs. Avez-vous essayé de poster une nouvelle question pour lersync
problème?Contexte
Je suis l'OP. Au départ, je voulais juste connaître le nom officiel de cette chose que j'utilisais.
Maintenant, je pense que le nom est "Git Bash for Windows". Malheureusement, la réponse est compliquée car il s’agit de beaucoup de choses.
La première réponse de 2016 ne m'a pas été utile à l'origine, mais elle a été fortement modifiée et de plus en plus utile. Néanmoins, il manque une partie de ma question initiale.
Le début:
msysgit
En fait, le début est probablement
MSYS
, mais vraimentMSYS2
. Le terme "msysgit" est un bon terme pour effectuer une recherche afin de déterminer ce qui se passe lorsque XYZ tourne mal; des choses comme "où dans le @ * #! Tous les paramètres autocrlf sont-ils stockés?!?!?!?"Le fichier README ( https://github.com/msysgit/msysgit ) du projet msysgit explique la relation entre les composants:
BTW, juste au cas où le fichier README complet serait supprimé, je l'ai copié dans un résumé .
La fenêtre du terminal:
mintty
L’autre partie de Git Bash pour Windows est la ligne de commande Windows actuelle, menthe. Dieu merci, il existe, mais ce n'est pas quelque chose dont j'ai besoin de google.
Références pour MSYS2
Leur wiki est un véritable trésor de détails sur l'environnement MSYS2: https://github.com/msys2/msys2/wiki
Dans l'introduction, cette partie est la plus pertinente pour ma question initiale:
Cette discussion est également très utile: https://sourceforge.net/p/msys2/discussion/general/thread/dcf8f4d3/#8473/588e
la source