Я с радостью использую Git и Git Bash с https://git-scm.com/ . Здесь есть страница с дополнительной информацией: https://git-for-windows.github.io/ .
Вчера я столкнулся с проблемой rsync
, и начал копаться глубже в Git Bash для Windows. Я понял, что даже не уверен в названии программы Bash, потому что она просто связана с загрузкой git-scm. Я называю это Git Bash для Windows, что кажется разумным.
Изучая «Что такое Git Bash», я читал о Cygwin и другой вещи, называемой mysys2 , которая, похоже, связана с mysysGit
, и я видел ссылки на нееMinGW
. Но затем я увидел в FAQ, что mintty является терминалом по умолчанию для Git Bash.
Кажется, что приложение Bash на самом деле представляет собой специально подобранный набор других вещей (в основном перечисленных выше), которые доступны независимо.
По сути, я хотел бы знать, что является основой, которая заставляет команды * nix, такие как ssh
scp
cat
ls
работа в Git Bash для Windows?
(Я думаю, что хороший ответ поможет кому-то в общих чертах понять, как эти компоненты сочетаются друг с другом, и понять правильные слова для компонентов, но я не хочу нарушать формат вопросов / ответов SO).
rsync
вопрос !!Ответы:
Резюме
Вы правы, 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. Windows-реализация API / библиотек POSIX предоставляется
Cygwin
иMSYS
.Это похоже на то, что делает проект Wine , но конвертирует POSIX-> Windows, а не Windows-> POSIX, как Wine.
mintty
mintty
включен, потому чтоcmd.exe
в окне командной строки Windows по умолчанию отсутствуют некоторые важные функции, которые обычно доступны в большинстве систем * nix. В большинстве случаевmintty
это лучший выбор для запуска команд (особенно для утилит, поставляемых с пакетом Git Bash для Windows), но иногда системное приложение Windows может работать лучшеcmd.exe
.источник
ssh
scp
cat
ls
работа в Git Bash для Windows?» , Пост Пабру довольно хорошо отвечает на оба вопроса и является правильным ответом для всех, у кого может быть тот же вопрос (как указано), поэтому, принимая его, вы помогаете другим пользователям. Вы пытались опубликовать новый вопрос поrsync
проблеме?Фон
Я ОП. Первоначально я хотел просто знать официальное название для этой вещи, которую я использовал.
Теперь я думаю, что имя "Git Bash для Windows". К сожалению, полный ответ сложен, потому что эта вещь на самом деле много вещей.
Топовый ответ 2016 года изначально не помог мне, но он был сильно отредактирован и становился все более и более полезным. Тем не менее, он пропускает некоторые мои оригинальные вопросы.
Начало:
msysgit
На самом деле, начало, вероятно
MSYS
, но на самом делеMSYS2
. Термин «msysgit» - это хороший термин для поиска, чтобы выяснить, что происходит, когда XYZ работает неправильно; такие вещи, как "где в @ * #! хранятся все настройки autocrlf?!?!?!?"README ( https://github.com/msysgit/msysgit ) в проекте msysgit объясняет взаимосвязь между компонентами:
Кстати, на случай, если полный README будет удален, я скопировал его в суть .
Окно терминала:
mintty
Другая часть Git Bash для Windows - это настоящая командная строка Windows, mintty. Слава Богу, это существует, но это не то, что мне нужно, чтобы Google.
Рекомендации для MSYS2
Их вики - настоящий кладезь подробностей о среде MSYS2: https://github.com/msys2/msys2/wiki
Во введении эта часть наиболее актуальна для моего исходного вопроса:
Это обсуждение также очень полезно: https://sourceforge.net/p/msys2/discussion/general/thread/dcf8f4d3/#8473/588e
источник