Linux-Befehle nativ unter Windows
Wer täglich zwischen Linux und Windows pendelt, kennt das Dilemma: Die vertrauten Befehle funktionieren plötzlich nicht mehr - oder anders. Microsoft will dieses Problem mit "Coreutils for Windows" lösen und bringt klassische Unix-Werkzeuge direkt ins Windows-Terminal.
Microsoft hat die allgemeine Verfügbarkeit von "Coreutils for Windows" bekanntgegeben - ein Toolkit, das klassische Linux- und Unix-Befehle direkt in der Windows-Umgebung verfügbar macht. Die Grundlage bildet das Open-Source-Projekt "uutils/coreutils", eine in der Programmiersprache Rust geschriebene plattformübergreifende Neuimplementierung der GNU Coreutils.
Damit reagiert der Konzern auf ein langjähriges Problem vieler Entwickler: Wer täglich zwischen Linux, macOS und Windows wechselt, verliert Zeit durch inkonsistentes Befehlsverhalten und ständiges Umdenken.
Das Paket bündelt uutils/coreutils, findutils und grep in einer einzigen ausführbaren Datei und lässt sich per WinGet mit dem Befehl winget install Microsoft.Coreutils installieren. Skripte und Workflows sollen dann ohne Anpassungen plattformübergreifend funktionieren - ob auf einer lokalen Maschine, in einem Container oder in der Cloud. Gängige Befehle wie "ls", "cat", "find", "sort" oder "grep" stehen damit nativ in Windows-Umgebungen bereit, inklusive der gewohnten Flags und Pipelines.
Nicht alle Befehle laufen konfliktfrei
Allerdings ist nicht jeder Befehl reibungslos verfügbar. Einige Kommandos kollidieren mit eingebauten Befehlen von CMD oder PowerShell, was je nach Shell-Konfiguration und PATH-Reihenfolge dazu führt, dass mal die Windows-Version, mal die Coreutils-Variante greift. So funktioniert "ls" in CMD problemlos, zeigt in PowerShell 7.4 aber zunächst Konflikte mit einem eingebauten Alias.
Befehle wie "whoami", "kill", "dir" oder "paste" sind gar nicht enthalten - entweder wegen Konflikten mit Windows-Bordmitteln oder weil sie konzeptionell POSIX-spezifisch sind und sich nicht sinnvoll auf Windows übertragen lassen. PowerShell 7.4 oder neuer ist dabei Voraussetzung; ältere Versionen werden nicht unterstützt.
Windows bleibt Windows: Diese Unterschiede bleiben
Einige Windows-typische Eigenheiten schränken die vollständige Kompatibilität mit Linux-Workflows zusätzlich ein. Windows-Textdateien verwenden häufig CRLF-Zeilenenden statt des Linux-üblichen LF, was bei Mustervergleichen oder exakten Byte-Zählungen zu unerwarteten Ergebnissen führen kann.
Echte POSIX-Signale wie SIGHUP oder SIGPIPE stehen nicht zur Verfügung; lediglich Strg+C funktioniert erwartungsgemäß. Beim Erstellen symbolischer Links ist Developer Mode oder eine erhöhte Terminal-Instanz nötig. Wer statt "/dev/null" arbeitet, muss auf "NUL" ausweichen - ein kleiner, aber bekannter Windows-Stolperstein.
Das Projekt ist auf GitHub öffentlich, Beiträge aus der Community sind ausdrücklich erwünscht. Für Entwickler, die Windows als vollwertigen Teil einer plattformübergreifenden Toolchain etablieren wollen, ist Coreutils for Windows ein ernstzunehmender Schritt - auch wenn der Teufel bei einigen Befehlen noch im Shell-Detail steckt.