Windows can now run Linux's everyday commands as ordinary Windows programs. No virtual machine, no second operating system alongside, nothing in between. Microsoft announced Coreutils for Windows at its Build 2026 conference.
These are the small workhorse commands that Linux people type all day. The ls command lists a folder, cp copies a file, grep searches text. Now they behave much the same way on Linux, a Mac and Windows. A set of commands written on one machine needs fewer changes to run on the next.
A project called uutils rebuilt the classic GNU versions from scratch. They wrote them in Rust, a language Microsoft likes because it makes a whole family of memory bugs hard to write. Microsoft adds the file-finding and text-searching tools and ships the lot as one download. It calls this version a preview.
Install it with one line
You install it through WinGet, the package installer built into Windows, by typing winget install Microsoft.Coreutils. That gets you cat, cp, find, grep, hostname, ls, mv, pwd, rm, sleep, tee, and uptime.
There's a neat trick under the hood. Instead of a separate program file per command, the whole set lives in one file called coreutils.exe, and setup gives each command its own name on disk that points back at it. Windows calls that a hardlink. Typing ls loads the one program, which reads the name you used and runs the matching tool.
The catch
Plenty of Linux command names clash with ones that Command Prompt and PowerShell already use. Which one you get depends on which of those two you're typing into. It also depends on the order in which Windows searches its folders for programs. PowerShell adds a third thing in the way, its own list of command nicknames. Clearing those nicknames needs PowerShell 7.4 or newer.
Microsoft published a table spelling out which version wins where. It dropped dir, more, expand, and whoami for the same reason. Linux also hands programs standard abilities that Windows doesn't have, so chmod, chown, chroot, nohup, tty and who didn't make the cut. Neither did kill or timeout. Linux stops a running program by sending it a short standard message, and Windows has nothing that matches it.
Microsoft warns that some commands behave a little differently from their Linux originals. Windows marks the end of a line of text its own way. It tracks who may touch a file its own way too. So the occasional result won't match what you'd get on Linux.




