Technology

Microsoft Brings Unix Command Tools to Windows Natively

Martin HollowayPublished 4d ago4 min readBased on 3 sources
Reading level
Microsoft Brings Unix Command Tools to Windows Natively

Microsoft Brings Unix Command Tools to Windows Natively

Microsoft has released Microsoft Coreutils for Windows, a native Windows version of command-line tools that come from Unix and Linux systems. These tools—including commands like ls, cat, grep, and find—are now available directly on Windows without needing extra software to run them. You can install them through WinGet and need PowerShell 7.4 or newer.

The release means Windows users can now run familiar Unix-style commands right from their command line, the same way they would on a Mac or Linux computer. You don't need to set up a virtual Linux environment or use third-party workarounds anymore.

How It Works

Microsoft packaged three collections of utility tools into a single file. One collection provides core Unix commands written in a programming language called Rust. Another handles finding files. The third manages searching for text patterns inside files.

The key design choice is using what's called a "multi-call binary"—think of it as one Swiss Army knife tool instead of many single-purpose knives. This takes up less disk space and is easier to distribute than shipping dozens of separate tools.

The requirement for PowerShell 7.4 suggests these utilities integrate with newer versions of PowerShell, the command system Microsoft modernized in recent years. Older PowerShell versions don't work because they lack features these tools depend on.

Microsoft's Broader Windows Strategy

This move fits a pattern Microsoft has been following for the past decade. Rather than insisting Windows users do things the "Windows way," the company increasingly brings industry-standard tools and ways of working into Windows itself. You've seen this with PowerShell becoming open-source and available on multiple operating systems, with the new Windows Terminal replacing the old command window, and with Windows Subsystem for Linux, which lets you run Linux programs on Windows.

Microsoft also improved how Windows alerts programs when files change, making it compatible with how Linux handles the same thing. This helps people who write software for multiple operating systems do their work more smoothly.

The reason for this shift is practical: many Windows developers spend their workday moving between Windows machines, Linux servers, and cloud systems. Having the same tools available everywhere reduces confusion and makes switching between systems less awkward.

What This Means for Developers

For people writing software that runs on multiple operating systems, this change removes a mental speed bump. Teams that automate their build and testing processes across Windows and Linux systems can now use the same commands on both, without needing to run a separate Linux environment inside Windows.

These tools are still in preview, which means Microsoft is testing them in the real world before making them permanent. Whether businesses adopt them will depend on how quickly Microsoft finishes testing and what kind of long-term support Microsoft commits to providing.

One thing to watch: the tools need to work correctly with Windows-specific file behavior and path names. Some existing scripts written for Unix may need small adjustments to work perfectly on Windows.

Distribution and Integration

Microsoft is distributing these tools through WinGet, the package manager it created for Windows developers. This puts them alongside other developer tools in one place, which is different from how developers have historically gotten Unix-like tools on Windows through separate software package managers.

Over time, these tools could integrate with other Microsoft development products like Visual Studio Code and GitHub Codespaces. For developers managing infrastructure across multiple operating systems, having the same set of commands available everywhere makes the work simpler.

Looking Ahead

The preview phase lets Microsoft collect real-world feedback on how Windows behaves differently, so they can fix problems before making this an official, supported product. Success will likely come from developers who regularly work across Windows and Linux systems, rather than people who only ever use one or the other.

The bigger picture here is that Windows development is becoming more integrated with the broader software engineering world. Combined with improvements to Linux support on Windows and better container technology, Windows is becoming a more natural choice for developers who need to work across multiple operating systems. The practical benefit is less time spent managing different tools and environments, and more time spent actually writing and shipping software.