Підсумок
Ви маєте рацію, Git Bash для Windows складається не просто bash
для Windows. Це пакет , який містить bash
(який є оболонкою командного рядка ) і набір інший, окремою * NIX утиліти , такої як ssh
, scp
, cat
, find
та інших (які ви проводили з використанням оболонки), компільованою для Windows, і новий термінал інтерфейсу командного рядка вікно називається mintty
.
Коротко
У Windows ви можете запускати такі команди, як ipconfig /all
і format G:
використовуєте cmd.exe
. Ці команди - це фактично виконувані файли C:\Windows\system32
, збережені як ipconfig.exe
і format.com
файли. cmd.exe
є окремим від обох і завантажує і запускає їх за бажанням користувача.
ssh
, scp
, cat
, find
Виконуються з використанням bash
точно таким же чином. Зазвичай вони зберігаються під, /usr/bin
а не в C:\Windows\system32
* nix системах, оскільки Windows та * nix мають структуру системних файлів по-різному.
У випадку з Git Bash для Windows ці програми знаходяться у папці інсталяції Git:, C:\Program Files\Git\usr\bin
яку також можна знайти в емульованому середовищі Linux у розділі /usr/bin
.
Подібно до того, що можливість просто запустити cmd.exe
* nix не дозволяє зробити багато без інших системних утиліт, так само можливість роботи Bash в Windows також не дуже корисна. Це означає, що всі ці додаткові команди потрібно поєднати разом з Bash, щоб створити корисний пакет програм.
Докладніше: POSIX-програми у Windows
Зазвичай ці додаткові команди знаходяться у системах * nix, а не в Windows, оскільки вони запрограмовані проти API програмування POSIX (для чого використовується * nix), а не API Win32 (для чого використовується Windows). Документація POSIX API доступна відкрито, тому деякі люди перенесли її в інші системи, включаючи Windows. Реалізація API / бібліотек POSIX для Windows надає Cygwin
та MSYS
.
Це схоже на те, що робить проект Wine , але він конвертує POSIX-> Windows, а не Windows-> POSIX, як це робить Wine.
м'ятний
mintty
включено, оскільки cmd.exe
у вікні командного рядка Windows за замовчуванням відсутні деякі важливі функції, які зазвичай доступні у більшості * nix систем. У більшості випадків mintty
це кращий вибір для запуску команд (звичайно, для утиліт, які постачаються з пакетом Git Bash для Windows), але іноді системна програма Windows може працювати краще cmd.exe
.