External Publication
Visit Post

Coreutils for Windows 11: Native Linux Commands Without WSL

All Things How June 4, 2026
Source

Microsoft has released Coreutils for Windows 11, a native build of the open-source uutils project that brings familiar Linux command-line tools straight into the Windows shell. You no longer need to spin up a full Linux subsystem just to run everyday commands like ls, cp, or rm. The package runs as a single binary that exposes each utility under its standard name, so the same commands, flags, and pipelines you use on Linux and macOS behave the same way on Windows.

Quick answer: Open Windows Terminal, run winget install Microsoft.Coreutils, then restart the console. Make sure you are on PowerShell 7.4 or newer.


What Coreutils for Windows 11 is

Coreutils is a Microsoft-maintained build of uutils/coreutils, a cross-platform reimplementation of GNU Coreutils written in Rust. Microsoft bundles coreutils, findutils, and a newly written grep into one multi-call binary for Windows. The whole point is consistency. The commands developers have built up over years just work inside a normal Windows environment, without translation or workarounds.

Microsoft announced general availability at Build 2026, describing it as more than 75 familiar Linux-style command-line utilities running natively on Windows 11. The utilities are still marked as preview, so early builds may have occasional bugs. You can read the full overview on the Microsoft Learn documentation.

Windows 11 already shipped some Linux-inspired tools, including curl, tar, the OpenSSH utilities, and the Windows Package Manager. Coreutils fills the gap left by the core file and text commands that were never available natively before.


Commands included in Coreutils

The build covers the file and text commands most developers reach for first, plus the bundled findutils and grep implementations. Every command supports the standard --help flag, so you can check full syntax and options directly in your terminal.

Command What it does
ls Lists files and directories
cp Copies files and folders
mv Moves or renames files
rm Deletes files and directories
cat Prints file contents
mkdir Creates directories
touch Creates files or updates timestamps
pwd Prints the current working directory

These are only the headline commands. The package also ships integrated ports of the original DOS sort and find, a shim that keeps existing DOS-style invocations working, and a PowerShell wrapper for glob patterns.


How to install Coreutils on Windows 11

There are two ways to install the package. The fastest route uses winget, the package manager built into Windows 11.

Step 1: Open Windows Terminal, Command Prompt, or PowerShell.

Step 2: Run the install command.

winget install Microsoft.Coreutils

Step 3: Restart the console so the new commands load into your session. Once it reopens, the commands are available without launching a separate Linux environment.

If you prefer a direct download, grab the installer from the official Coreutils release page. Microsoft publishes both x64 and arm64 builds, so pick the one that matches your hardware.

You know it worked when a command like ls runs and returns a file listing. If a command is not found after install, the cause is almost always your PATH. Restart the console first, then confirm the install directory sits on your PATH before troubleshooting anything deeper.


Shell support and PowerShell 7.4 requirement

Coreutils runs on Command Prompt, PowerShell, and Windows Terminal. One requirement matters above all. PowerShell 7.4 or newer is required, and older PowerShell versions will not work. If you are on an older build, update PowerShell first, then install Coreutils.

Whether a given command actually runs depends on three things. The shell you use, the order of your PATH, and, in PowerShell, the alias table. Several Coreutils command names overlap with shell built-ins, which changes how Windows resolves them.


Command conflicts in CMD and PowerShell

Some commands ship and work cleanly, some ship but conflict with a built-in, and a few do not ship at all. When a command conflicts in PowerShell, the built-in alias usually wins. You can call the Coreutils version explicitly or adjust your PATH and alias table to control which one runs.

Command CMD PowerShell 7.4+ Notes
cat Works Conflicts
cp Works Conflicts
date Conflicts Conflicts
dir Not shipped Not shipped Conflicts with built-in DOS command
echo Conflicts Conflicts
find Works Works Integrated port of the DOS command
hostname Works Works Superset of the Windows built-in
kill Not shipped Not shipped Windows lacks POSIX signals
ls Works Conflicts
mkdir Conflicts Conflicts
more Not shipped Not shipped Conflicts with built-in DOS command
mv Works Conflicts
pwd Works Conflicts
rm Works Conflicts
sort Works Works Integrated port of the DOS command
tee Works Conflicts
uptime Works Conflicts
whoami Not shipped Not shipped Conflicts with built-in Windows command

Windows caveats that can break scripts

Coreutils behaves like its Linux counterpart in most cases, but a handful of Windows-specific differences can trip up your scripts. Keep these in mind before you depend on the commands in production.

  • CRLF line endings: Windows text files often use CRLF. Most utilities handle this transparently, but pattern matching with $ and exact byte counts can change.
  • No /dev/null: Use NUL instead, for example find . -name "*.log" > NUL.
  • No POSIX signals: Signals such as SIGHUP and SIGPIPE are not available, though Ctrl+C still works as expected.
  • Path separators: Both / and \ are accepted, but some utilities produce backslash-separated output, which can affect downstream piping.
  • File permissions: Windows uses ACLs rather than POSIX permission bits, so predicates like find -perm may behave differently or stay unavailable.
  • Symbolic links: Reading existing symbolic links works without elevation. Creating new ones requires Developer Mode or an elevated terminal.

Coreutils vs WSL: when to use each

Coreutils does not replace Windows Subsystem for Linux. It removes the need to launch a full Linux subsystem just to run a handful of common commands. Reach for Coreutils when you want quick, native access to tools like ls, cp, and rm inside a normal Windows shell. Keep WSL for full Linux workloads, package managers, Linux-only software, and container workflows that depend on a real Linux kernel.

For developers who jump between Linux servers, containers, cloud environments, and Windows all day, the value is not in the commands themselves. Linux users have had them for decades. The value is consistency, removing the dozens of small interruptions that come from stopping to remember which command works where.

Coreutils is part of a broader push Microsoft outlined at Build 2026 to make Windows feel less isolated from the wider developer ecosystem. It follows the same pattern as WSL, Windows Terminal, OpenSSH, and WinGet, bringing existing developer workflows to Windows rather than asking developers to relearn them. Just remember the package is still in preview, so test it against your scripts before you rely on it.

Discussion in the ATmosphere

Loading comments...