Ich habe Windows 7 Ultimate gekauft und verwende es. Ich verwende es gerne, um Anwendungen zu entwickeln. Einer der Nachteile (wie bei jedem Betriebssystem) ist, dass ich keine Bash-Skripte ausführen kann. Gibt es eine Möglichkeit, Bash-Skripte unter Windows auszuführen, indem Sie Software installieren? Es ist in Ordnung, wenn es nicht zu 100% funktioniert, aber solange die gängigste Funktionalität verfügbar ist, sollte es großartig sein.
100
Antworten:
Installieren Sie Cygwin , zu dem Bash neben vielen anderen GNU- und Unix-Dienstprogrammen gehört (ohne die es unwahrscheinlich ist, dass Bash sowieso sehr nützlich ist).
Eine weitere Option ist MinGWs MSYS, das Bash und einen kleineren Satz wichtigerer Dienstprogramme wie awk enthält. Persönlich hätte ich Cygwin vorgezogen, weil es so schwere Hebewerkzeuge wie Perl und Python enthält, ohne die ich nicht leben kann, während MSYS diese überfliegt und davon ausgeht, dass Sie sie selbst installieren werden.
Aktualisiert : Wenn jemand an dieser Antwort interessiert ist und MS-Windows 10 ausführt, beachten Sie bitte, dass MS-Windows 10 über eine Funktion " Windows-Subsystem für Linux " verfügt, mit der Sie nach der Aktivierung ein Image von Ubuntu und im Benutzermodus installieren können Führen Sie dann Bash darauf aus. Dies bietet 100% Kompatibilität mit Ubuntu zum Debuggen und Ausführen von Bash-Skripten. Dieses Setup ist jedoch vollständig eigenständig von Windows und Sie können Bash-Skripte nicht für die Interaktion mit Windows-Funktionen (wie Prozessen und APIs) verwenden, außer für den eingeschränkten Zugriff auf Dateien über die DrvFS- Funktion .
quelle
mingw32
Verzeichnis, das im Wesentlichen MSYS enthält. Git für Windows ist also MinGW, das Git (optional im MSYS-Installationsprogramm) mit einem "schöneren" Installationsprogramm enthält: superuser.com/a/1362301/10942Die beste Option, die ich finden konnte, ist Git Windows. Installieren Sie es einfach und klicken Sie mit der rechten Maustaste auf "Git Bash Here". Dadurch wird ein Bash-Fenster geöffnet
Dies öffnet ein Bash-Fenster wie folgt:
und die Linux-Befehle funktionieren ...
Ich habe die Befehle 'sh', 'vi', 'ssh', 'curl' usw. ausprobiert
quelle
Wenn Sie etwas Nativeres suchen, können Sie mit getGnuWin32 alle portierten Unix-Befehlszeilentools installieren. Das plus winBash bietet Ihnen den größten Teil einer funktionierenden Unix-Umgebung. Wenn Sie console2 für einen besseren Terminalemulator hinzufügen, können Sie dies unter Windows kaum sagen!
Cygwin ist insgesamt ein besseres Toolkit, aber ich habe aufgrund der Kluft zwischen ihm und Windows auf Überraschungsprobleme gestoßen. Keine dieser Lösungen ist jedoch so gut wie ein natives Linux-System.
Möglicherweise möchten Sie die Verwendung von virtualbox zum Erstellen einer Linux-VM mit der Distribution Ihrer Wahl prüfen . Richten Sie es so ein, dass ein Ordner für das Host-Betriebssystem freigegeben wird. Sie können eine echte Linux-Entwicklungsumgebung verwenden und für Windows freigeben. Achten Sie einfach auf diese EOL-Marker, sie bekommen Sie jedes Mal.
quelle
Beste Option? Windows 10. Native Bash-Unterstützung!
quelle
cbwin
... aber das ist bereits zu viel Aufwand für nur eine Problemumgehung).Sie können Cygwin jederzeit installieren , um eine Unix-Shell unter Windows auszuführen. Ich habe Cygwin ausgiebig mit Windows XP verwendet.
quelle
Nach der Installation von Git-Extentions ( https://code.google.com/p/gitextensions/ ) können Sie die .sh-Datei über die Eingabeaufforderung ausführen. (Keine ./script.sh erforderlich, führen Sie es einfach wie eine bat / cmd-Datei aus.) Oder Sie können sie in einer "vollständigen" Bash-Umgebung ausführen, indem Sie die MinGW Git-Bash-Shell verwenden.
Ich bin kein großer Fan von Cygwin (ja, ich bin sicher, es ist wirklich mächtig), also führe Bash-Skripte unter Windows aus, ohne es perfekt für mich installieren zu müssen.
quelle
bash
von einer Powershell-Instanz aus versucht, bin fehlgeschlagen, habe Git-Erweiterungen installiert und erneut versucht, und es hat bei mir funktioniert.Um nativ ausgeführt zu werden, müssen Sie wahrscheinlich Cygwin verwenden (ohne das ich unter Windows nicht leben kann). Also sofort +1 für Cygwin. Alles andere wäre unzivilisiert.
Allerdings habe ich kürzlich damit begonnen, eine Kombination von Dienstprogrammen zu verwenden, um Bash-Skripte einfach unter Windows zu portieren, damit meine Anti-Linux-Mitarbeiter problemlos komplexe Aufgaben ausführen können, die von GNU-Dienstprogrammen besser erledigt werden.
Normalerweise kann ich ein Bash-Skript in sehr kurzer Zeit nach Batch portieren, indem ich das ursprüngliche Skript in einem Bereich öffne und eine Batch-Datei in den anderen Bereich schreibe. Die Werkzeuge, die ich benutze, sind wie folgt:
Ich bevorzuge UnxUtils gegenüber GnuWin32, da [jemand korrigiert mich bitte, wenn ich falsch liege] GnuWin-Utils normalerweise installiert werden müssen, während UnxUtils eigenständige Binärdateien sind, die sofort funktionieren.
Die CoreUtils enthalten jedoch keine bekannten * NIX-Dienstprogramme wie cURL, das auch für Windows verfügbar ist (curl.haxx.se/download.html).
Ich erstelle einen Ordner für die Projekte und setze immer PAT PATH =. in der .bat-Datei, sodass auf keine anderen Befehle als die grundlegenden CMD-Shell-Befehle verwiesen wird (sowie auf die bestimmten UnxUtils, die im Projektordner erforderlich sind, damit das Batch-Skript wie erwartet funktioniert).
Dann kopiere ich die benötigten CoreUtils .exe-Dateien in den Projektordner und verweise auf sie in der .bat-Datei wie ". \ Curl.exe -s google.com" usw.
Im Bat2Exe-Programm geschieht die Magie. Sobald Ihre Batch-Datei vollständig ist und erfolgreich getestet wurde, starten Sie Bat2Exe.exe und geben Sie den Pfad zum Projektordner an. Bat2Exe erstellt dann eine Windows-Binärdatei, die alle Dateien in diesem bestimmten Ordner enthält, und verwendet die erste .bat-Datei, die als ausführbare Hauptdatei verwendet wird. Sie können sogar eine .ico-Datei einfügen, die als Symbol für die endgültige .exe-Datei verwendet wird, die generiert wird.
Ich habe einige dieser Programme ausprobiert und viele der generierten Binärdateien werden als Malware gekennzeichnet, aber die Bat2Exe-Version, auf die ich verwiesen habe, funktioniert einwandfrei und die generierten EXE-Dateien werden vollständig sauber gescannt.
Die resultierende ausführbare Datei kann interaktiv durch Doppelklicken ausgeführt oder über die Befehlszeile mit Parametern usw. wie eine normale Batch-Datei ausgeführt werden, außer dass Sie die Funktionalität vieler der normalerweise verwendeten Tools nutzen können in Bash.
Mir ist klar, dass dies ziemlich lange dauert, aber wenn ich etwas abschweifen darf, habe ich auch ein Batch-Skript geschrieben, das ich PortaBashy nenne und das meine Mitarbeiter von einer Netzwerkfreigabe aus starten können, die eine tragbare Cygwin-Installation enthält. Anschließend wird die Variable% PATH% auf das normale * NIX-Format (/ usr / bin: / usr / sbin: / bin: / sbin) usw. gesetzt und kann entweder in die Bash-Shell selbst oder in das leistungsstärkere und gestartet werden hübscher MinTTY Terminal Emulator.
Es gibt immer zahlreiche Möglichkeiten, um das zu erreichen, was Sie sich vorgenommen haben. Es geht nur darum, die richtigen Werkzeuge für den Job zu kombinieren, und oft läuft es auf persönliche Vorlieben hinaus.
quelle
Es gibt noch eine theoretische Möglichkeit, dies zu tun: Professionelle Windows-Versionen verfügen über eine integrierte POSIX-Unterstützung, sodass bash möglicherweise nativ für Windows kompiliert wurde.
Schade, aber ich habe selbst noch keine zusammengestellt ...
quelle