Підсумок
Ви маєте рацію, 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.