Kupiłem i używam Windows 7 Ultimate i lubię używać go do tworzenia aplikacji. Jedną z wad (jak w każdym systemie operacyjnym) jest to, że nie mogę uruchamiać skryptów Bash. Czy istnieje sposób uruchamiania skryptów Bash w systemie Windows, instalując jakieś oprogramowanie? W porządku, jeśli nie działa w 100%, ale tak długo, jak dostępna jest najpopularniejsza funkcjonalność, powinna być świetna.
100
Odpowiedzi:
Zainstaluj Cygwin , który zawiera Bash wśród wielu innych narzędzi GNU i Unix (bez których jest mało prawdopodobne, że bash i tak będzie bardzo przydatny).
Inną opcją jest MSYS MinGW, który zawiera bash i mniejszy zestaw ważniejszych narzędzi, takich jak awk. Osobiście wolałbym Cygwina, ponieważ zawiera on takie ciężkie narzędzia do podnoszenia, jak Perl i Python, bez których nie mogę żyć, podczas gdy MSYS skąpi na nich i zakłada, że zamierzasz je zainstalować samodzielnie.
Zaktualizowano : Jeśli ktoś jest zainteresowany tą odpowiedzią i korzysta z systemu MS-Windows 10, pamiętaj, że MS-Windows 10 ma funkcję „ Podsystem Windows dla Linuksa ”, która - po włączeniu - umożliwia zainstalowanie obrazu Ubuntu w trybie użytkownika i następnie uruchom na tym Bash. Zapewnia to 100% zgodność z Ubuntu do debugowania i uruchamiania skryptów Bash, ale ta konfiguracja jest całkowicie niezależna od systemu Windows i nie można używać skryptów Bash do interakcji z funkcjami systemu Windows (takimi jak procesy i interfejsy API), z wyjątkiem ograniczonego dostępu do plików za pośrednictwem funkcji DrvFS .
źródło
mingw32
katalog, który zawiera w zasadzie MSYS. Tak więc Git dla Windows to MinGW, który zawiera Git (opcjonalny w instalatorze MSYS) z „ładniejszym” instalatorem: superuser.com/a/1362301/10942Najlepszą opcją jaką znalazłem jest Git Windows Wystarczy go zainstalować, a następnie kliknąć prawym przyciskiem myszy i kliknąć „Git Bash Here” to otworzy się okno bash
Spowoduje to otwarcie takiego okna bash:
a polecenia linux działają ...
Wypróbowałem polecenia „sh”, „vi”, „ssh”, „curl” itd
źródło
Jeśli szukasz czegoś bardziej natywnego, możesz użyć getGnuWin32 do zainstalowania wszystkich narzędzi wiersza poleceń unixa , które zostały przeniesione. To plus winBash zapewnia większość działającego środowiska unixowego . Dodaj console2, aby uzyskać lepszy emulator terminala i prawie nie możesz tego powiedzieć w systemie Windows!
Cygwin jest ogólnie lepszym zestawem narzędzi, ale napotkałem niespodziewane problemy z powodu podziału między nim a oknami. Żadne z tych rozwiązań nie jest jednak tak dobre, jak natywny system Linux.
Możesz przyjrzeć się użyciu virtualbox do tworzenia maszyny wirtualnej z systemem Linux z wybraną dystrybucją. Skonfiguruj go do współdzielenia folderu z systemem operacyjnym hosta i możesz używać prawdziwego środowiska programistycznego Linuksa i udostępniać go Windows. Uważaj tylko na te znaczniki EOL, za każdym razem cię dopadną.
źródło
Najlepsza opcja? Wsparcie dla Windows 10. Native Bash!
źródło
cbwin
... ale to już jest zbyt duże zamieszanie, aby tylko obejść).Zawsze możesz zainstalować Cygwin, aby uruchomić powłokę Unix pod Windows. Często używałem Cygwin z Windows XP.
źródło
Po zainstalowaniu git-Extensions ( https://code.google.com/p/gitextensions/ ) możesz uruchomić plik .sh z poziomu wiersza poleceń. (Nie ./script.sh wymagany, po prostu uruchom go jak plik bat / cmd) Lub możesz je uruchomić w „pełnym” środowisku bash za pomocą powłoki bash MinGW Git.
Nie jestem wielkim fanem Cygwina (tak, jestem pewien, że jest naprawdę potężny), więc uruchamianie skryptów bash w systemie Windows bez konieczności instalowania go idealnie dla mnie.
źródło
bash
z instancji PowerShell, nie powiodło się, zainstalowałem rozszerzenia git i ponowiłem próbę i zadziałało.Aby działać natywnie, prawdopodobnie będziesz musiał użyć Cygwin (bez którego nie mogę żyć w systemie Windows). Więc od razu, +1 dla Cygwina. Wszystko inne byłoby niecywilizowane.
JEDNAK to powiedziawszy, ostatnio zacząłem używać kombinacji narzędzi do łatwego PORTOWANIA skryptów Bash w systemie Windows, aby moi współpracownicy z systemem anty-Linux mogli z łatwością wykonywać złożone zadania, które są lepiej obsługiwane przez narzędzia GNU.
Zwykle mogę przenieść skrypt Bash do Batch w bardzo krótkim czasie, otwierając oryginalny skrypt w jednym okienku i pisząc plik Batch w drugim panelu. Narzędzia, których używam, to:
Wolę UnxUtils od GnuWin32, ponieważ [ktoś, proszę, popraw mnie, jeśli się mylę] Narzędzia GnuWin normalnie muszą być zainstalowane, podczas gdy UnxUtils to samodzielne pliki binarne, które działają od razu po wyjęciu z pudełka.
Jednak CoreUtils nie zawiera niektórych znanych narzędzi * NIX, takich jak cURL, który jest również dostępny dla systemu Windows (curl.haxx.se/download.html).
Tworzę folder dla projektów i zawsze SET PATH =. w pliku .bat, tak aby żadne inne polecenia poza podstawowymi poleceniami powłoki CMD nie były przywoływane (a także określone pliki UnxUtils wymagane w folderze projektu, aby skrypt usługi Batch działał zgodnie z oczekiwaniami).
Następnie kopiuję potrzebne pliki CoreUtils .exe do folderu projektu i odnoszę się do nich w pliku .bat, na przykład „. \ Curl.exe -s google.com” itp.
Program Bat2Exe jest miejscem, w którym dzieje się magia. Po zakończeniu tworzenia pliku wsadowego i pomyślnym przetestowaniu go uruchom Bat2Exe.exe i określ ścieżkę do folderu projektu. Bat2Exe utworzy następnie plik binarny Windows zawierający wszystkie pliki w tym określonym folderze i użyje pierwszego pliku .bat, który napotka, jako głównego pliku wykonywalnego. Możesz nawet dołączyć plik .ico, który będzie używany jako ikona dla końcowego generowanego pliku .exe.
Wypróbowałem kilka tego typu programów i wiele z wygenerowanych plików binarnych zostało oznaczonych jako szkodliwe oprogramowanie, ale wersja Bat2Exe, do której się odwołałem, działa doskonale, a wygenerowane pliki .exe są skanowane całkowicie czysto.
Wynikowy plik wykonywalny można uruchomić interaktywnie przez dwukrotne kliknięcie lub uruchomić z wiersza poleceń z parametrami itp., Tak jak zwykły plik wsadowy, z wyjątkiem tego, że będziesz w stanie wykorzystać funkcjonalność wielu narzędzi, z których normalnie będziesz korzystać w Bash.
Zdaję sobie sprawę, że trwa to dość długo, ale jeśli mogę trochę odbiegać od tematu, napisałem również skrypt Batch, który nazywam PortaBashy, który moi współpracownicy mogą uruchomić z udziału sieciowego, który zawiera przenośną instalację Cygwin. Następnie ustawia zmienną% PATH% na normalny format * NIX (/ usr / bin: / usr / sbin: / bin: / sbin) itd. I może albo uruchomić się w samej powłoce Bash, albo uruchomić mocniejszy i ładny emulator terminala MinTTY.
Zawsze istnieje wiele sposobów na osiągnięcie tego, do czego dążysz; to tylko kwestia połączenia odpowiednich narzędzi do pracy, a często sprowadza się to do osobistych preferencji.
źródło
Jest jeszcze jedna teoretyczna możliwość, aby to zrobić: profesjonalne wersje systemu Windows mają wbudowaną obsługę POSIX, więc bash mógł zostać skompilowany dla systemu Windows natywnie.
Szkoda, ale sam nadal nie znalazłem skompilowanego ...
źródło