Microsoft has been gradually adopting Linux for the past decade. It's an uncanny feeling to see the company slowly accept the very thing it fought against for so long, but it's showing no signs of slowing down. At Build 2026, Microsoft announced Coreutils for Windows. It includes more than 75 Unix-style command-line tools, including staples found on pretty much every Linux install, like ls, cp, mv, grep, find, and dozens more.
All the commands run natively on Windows, with no need for WSL, a virtual machine, or a Bash workaround. The tools are compiled as native Windows binaries, and can be installed with a single WinGet command. Microsoft framed the announcement as one that improves the developer experience by reducing context switching for those who regularly bounce between Windows, Linux, and macOS. And that's definitely true. But it also acknowledges the impact that Linux had on the developer tooling space.
I regret switching to Linux, even though I wanted to love it
It's powerful but comes with flaws
How Coreutils actually works on Windows
You no longer need WSL to run common Linux commands
First, a quick clarification: Windows hasn't appropriated Linux commands, as the tools comprising Coreutils aren't really "Linux commands" in the first place. They're just commands, and they are free to be bundled with any OS. Since the commands are most commonly used on Linux machines, they've become conflated with the OS, but are actually maintained separately. Microsoft's implementation of the toolset is based on uutils, a community-driven, open-source Rust rewrite of GNU Coreutils.
Microsoft's Coreutils bundles most of the tools from GNU coreutils, findutils, and a GNU-compatible grep in a single binary. The "GNU-compatible" distinction is important, since grep behaves differently depending on the OS — the GNU version is common on Linux, but BSD and macOS have their own variants. The package is trivial to install on Windows with the following command:
winget install Microsoft.Coreutils
After installation, the everyday commands you're accustomed to finding on Linux will be available from your Windows terminal. The native tools also outperform their WSL counterparts, so there is actually motivation to install them directly on Windows rather than relying on WSL for everything. The performance benefit is most apparent on commands like grep and find, which bypass WSL's kernel overhead and can run against the native filesystem.
There are a handful of utilities that obviously didn't make the cut. chmod, chown, and chroot are examples of commands that rely on a specific file permissions model that Windows simply doesn't have. But the vast majority of tools that a developer might reach for to accomplish a task are present. There are also a few commands that conflict with Windows built-ins and therefore weren't included: dir, more, and whoami. The idea was to bridge the gap for developers so they don't need to reach for Linux, and the excluded commands shouldn't really matter for that purpose.
This is Microsoft admitting Linux won the tooling war
Developers prefer the tools found on Linux systems
It's interesting to think about Microsoft's motivation behind introducing Coreutils into Windows. It indicates that there's a meaningful portion of developers who keep reaching for Linux tools, need to write scripts that assume GNU behavior, and don't want to rewire things just to work properly on Windows. WSL has already addressed many of these problems, but it wasn't the cleanest solution. It felt more like a Linux environment tacked onto Windows so that developers wouldn't be tempted to reach for a MacBook. Coreutils is the next logical step: stop making everyone boot a virtual environment just to run grep.
With how gradual Windows has been absorbing Linux, it's easy to forget that Microsoft once called it a cancer. Remembering that fact lets you appreciate the irony of Microsoft contributing to and implementing a Rust port of GNU tools. Microsoft would prefer to frame the news as an investment in the developer experience, but I can't see it as anything other than a dramatic reversal of their original position.
Doesn't WSL already do all of this?
With a lot of additional overhead, yes
Anyone who has needed access to Linux tooling from Windows could always just reach for WSL. There's not much fuss in doing so, especially with WSL2's full Linux kernel, proper filesystem integration, and access to every package in whatever distro you install. For Linux-heavy workflows, this news doesn't change much.
Score Deals on Developer PCs, Monitors & Gear
But WSL and Coreutils for Windows aren't directly competing. Coreutils is for the user who needs to pipe some output through sort | uniq or run grep against a log file and doesn't want to start up a separate Linux environment just to do it. Lightweight tasks that previously required a WSL tab can now stay in a native terminal session. For those of us who work in mixed environments, using scripts that can run without the WSL layer eliminates friction.
Microsoft finally realized that Windows shouldn't be fighting Linux
Whether Microsoft acknowledges it or not, this move is an admission that developers are thinking in terms of Linux tooling and that Windows needs to meet them halfway. Coreutils is a great start at that. It's a well-implemented first release, and it only took about two seconds to install on my system. Embracing the tools that users actually use is a better option than trying to compete with them.
