Z radością korzystam z Git i Git Bash z https://git-scm.com/ . Istnieje strona z dodatkowymi informacjami tutaj: https://git-for-windows.github.io/ .
Wczoraj napotkałem problem rsync
i zacząłem głębiej zagłębiać się w Git Bash dla Windows. Uświadomiłem sobie, że nie jestem nawet pewien nazwy programu Bash, ponieważ jest on dołączony do pakietu git-scm. Nazywam to Git Bash dla Windows, co wydaje się rozsądne.
Przeglądając „What is Git Bash” przeczytałem o Cygwinie i innej rzeczy zwanej mysys2 , z którą wydaje się to być związane mysysGit
, i zobaczyłem odniesienia do MinGW
. Ale potem zobaczyłem w FAQ, że mintty jest domyślnym terminalem dla Git Bash.
Wygląda na to, że aplikacja Bash jest specjalnie wyselekcjonowanym pakietem innych rzeczy (najczęściej wymienionych powyżej), które są dostępne niezależnie.
Zasadniczo chciałbym wiedzieć, jaka jest podstawa, która sprawia, że polecenia * nix ssh
scp
cat
ls
działają jak w Git Bash dla Windows?
(Myślę, że dobra odpowiedź pomogłaby komuś zrozumieć, w skrócie, jak te komponenty pasują do siebie i zrozumieć odpowiednie słowa dla komponentów, ale nie chcę łamać formatu pytania / odpowiedzi SO).
rsync
pytanie !!Odpowiedzi:
streszczenie
Masz rację, Git Bash dla Windows to nie tylko
bash
kompilacja dla Windows. Jest to pakiet, który zawierabash
(co jest powłoka wiersza polecenia ) oraz zbiór innych, oddzielnych * narzędzi uniksowych takich jakssh
,scp
,cat
,find
i innych (które pracuje z wykorzystaniem powłoki), opracowanych dla systemu Windows, a nowy terminal interfejs wiersza poleceń okno o nazwiemintty
.W skrócie
W systemie Windows możesz uruchamiać polecenia takie jak
ipconfig /all
lubformat G:
za pomocącmd.exe
. Te polecenia są rzeczywistymi plikami wykonywalnymi wC:\Windows\system32
, przechowywanymi jakoipconfig.exe
iformat.com
plikami.cmd.exe
jest oddzielny od i ładuje i uruchamia je na żądanie użytkownika.ssh
,scp
,cat
,find
Są prowadzone przy użyciubash
dokładnie w ten sam sposób. Zazwyczaj są one przechowywane/usr/bin
wC:\Windows\system32
systemach * nix, a nie w nich , ponieważ Windows i * nix mają inną strukturę plików systemowych.W przypadku Git Bash dla Windows programy te znajdują się w folderze instalacyjnym Git:,
C:\Program Files\Git\usr\bin
który można również znaleźć w emulowanym środowisku Linux pod/usr/bin
.Podobnie jak możliwość uruchomienia
cmd.exe
na * Nixie nie pozwala ci wiele zrobić bez innych narzędzi systemowych, tak samo możliwość uruchamiania Bash na Windowsie również nie jest bardzo przydatna. Oznacza to, że wszystkie te dodatkowe polecenia muszą być połączone z Bash, aby stworzyć użyteczny pakiet oprogramowania.Szczegóły: aplikacje POSIX w systemie Windows
Zwykle te dodatkowe polecenia można znaleźć w systemach * nix, a nie w systemie Windows, ponieważ zostały one zaprogramowane w interfejsie API programowania POSIX (który jest używany przez * nix), a nie w interfejsach API Win32 (który używa Windows). Dokumentacja API POSIX jest jawnie dostępna, więc niektóre osoby przeniosły ją na inne systemy, w tym Windows. Implementacja interfejsów API / bibliotek POSIX w systemie Windows jest zapewniana przez
Cygwin
iMSYS
.Jest to trochę podobne do tego, co robi projekt Wine , ale konwertuje POSIX-> Windows zamiast Windows-> POSIX, podobnie jak Wine.
miętowy
mintty
jest dołączony, ponieważcmd.exe
w domyślnym oknie wiersza poleceń systemu Windows brakuje niektórych ważnych funkcji, które normalnie są dostępne w większości systemów * nix. W większości przypadkówmintty
jest lepszym wyborem do uruchamiania poleceń (z pewnością dla narzędzi dostarczanych z pakietem Git Bash dla Windows), ale czasami aplikacja systemowa Windows może działać lepiejcmd.exe
.źródło
ssh
scp
cat
ls
działają jak Git Bash dla Windows?” . Post Pabru dość ładnie odpowiada na oba pytania i jest poprawną odpowiedzią dla każdego, kto może mieć to samo pytanie (jak podano), więc akceptując to, pomagasz innym użytkownikom. Czy próbowałeś opublikować nowe pytanie dotyczącersync
problemu?tło
Jestem OP. Początkowo chciałem po prostu poznać formalną nazwę tego, czego używałem.
Teraz myślę, że nazywa się „Git Bash dla Windows”. Niestety pełna odpowiedź jest skomplikowana, ponieważ tak naprawdę jest wiele rzeczy.
Najlepsza odpowiedź z 2016 roku początkowo nie była dla mnie pomocna, ale została mocno zredagowana i stała się coraz bardziej pomocna. Mimo to brakuje niektórych moich pierwotnych pytań.
Początek:
msysgit
Właściwie początek jest prawdopodobnie
MSYS
, ale naprawdęMSYS2
. Termin „msysgit” jest dobrym terminem do wyszukiwania, aby dowiedzieć się, co się dzieje, gdy XYZ nie działa; rzeczy takie jak „gdzie w @ * #! są zapisane wszystkie ustawienia autocrlf?!?!?!?”Plik README ( https://github.com/msysgit/msysgit ) w projekcie msysgit wyjaśnia związek między komponentami:
BTW, na wypadek, gdyby cały plik README został usunięty, skopiowałem go do maniery .
Okno terminala:
mintty
Inną częścią Git Bash dla systemu Windows jest wiersz poleceń systemu Windows, miętowy. Dzięki Bogu istnieje, ale nie potrzebuję google.
Referencje dla MSYS2
Ich wiki to prawdziwy skarb informacji o środowisku MSYS2: https://github.com/msys2/msys2/wiki
We wstępie ta część jest najbardziej adekwatna do mojego pierwotnego pytania:
Ta dyskusja jest również bardzo pomocna: https://sourceforge.net/p/msys2/discussion/general/thread/dcf8f4d3/#8473/588e
źródło