跳至主要內容

什麼是適用於 Windows 的 Coreutils

WinGet 可安裝的 Microsoft 官方 Linux 指令群最新動向(2026 年 6 月更新)

2026 年 6 月,Microsoft 正式公開了 Coreutils for Windows

winget install Microsoft.Coreutils

透過這個指令可安裝的 Microsoft.Coreutils,是 Microsoft 官方專案,可讓 Linux 與 macOS 日常使用的 lscprmcat 等 UNIX 系指令,能在 Windows 上以原生方式執行。

本文將整理專案概要、支援指令、限制事項,以及與 WSL 和 PowerShell 的差異。

概要

Microsoft.Coreutils 是由 Microsoft 維護、面向 Windows 的命令列工具集。

其內部是以以下專案為基礎構建:

  • uutils/coreutils
  • findutils
  • grep

並以 Rust 實作。

Microsoft 將此專案的目的說明為:

降低在 Linux、macOS、WSL、容器、Windows 之間來回切換的開發者摩擦

安裝方法

可透過 WinGet 輕鬆導入。

winget install Microsoft.Coreutils

WinGet 是 Windows 內建的套件管理員,可自動下載並安裝指定套件。

安裝後即可作為一般指令使用。

ls
cat file.txt
grep keyword log.txt
cp source.txt backup.txt

可使用的主要指令

代表性的指令如下。

分類指令範例
檔案列表ls
檔案複製cp
檔案移動mv
檔案刪除rm
內容顯示cat
目前工作目錄pwd
建立目錄mkdir
休眠sleep
管線處理tee
搜尋grep, find

對 Linux 使用者來說,熟悉的指令可直接使用。

與 PowerShell 的衝突問題

這裡是最大的注意點!

PowerShell 內已經存在同名的別名或內建指令。

例如:

指令問題
ls與 PowerShell 別名衝突
cp與 Copy-Item 衝突
cat與 Get-Content 衝突
rm與 Remove-Item 衝突
pwd與 Get-Location 衝突

因此,

ls

即使執行了,也不一定會呼叫 Coreutils 版本。

Microsoft 建議使用 PowerShell 7.4 以上版本。

Windows 特有的限制

雖然目標是相容 Linux,但仍存在因 Windows 機制造成的限制。

1. 沒有 POSIX 訊號

Linux 的

kill
SIGTERM
SIGKILL

機制在 Windows 中不存在。

因此,

kill
timeout

目前尚未提供。

2. 沒有 /dev/null

Linux:

grep error log.txt > /dev/null

Windows:

grep error log.txt > NUL

會是這樣。

3. ACL 與 POSIX 權限的差異

Windows 是以 ACL 為基礎的權限管理。

因此,

chmod
chown
chgrp

等指令不會提供。


4. 建立符號連結

雖然可以讀取,但若要新建立,則需要:

  • Developer Mode
  • 管理員權限

不提供的主要指令

Microsoft 有意排除了一部分指令。

與 Windows 衝突的項目

  • dir
  • more
  • paste
  • whoami
  • expand

與 POSIX 強烈依賴的項目

  • chmod
  • chown
  • chgrp
  • chroot
  • nohup
  • stty
  • tty
  • who

目前尚未實作的項目

  • kill
  • timeout
  • dd

與 WSL 的差異

最常被比較的是 WSL(Windows Subsystem for Linux)。

項目Microsoft.CoreutilsWSL
導入成本非常低需要建置 Linux 環境
啟動速度原生有虛擬環境層
Linux 相容性部分非常高
Bash 環境
apt 可用性不可
Shell 腳本相容性有限制

WSL 是「Linux 環境本身」,而 Coreutils 則是「在 Windows 上使用類 Linux 指令的工具集」。

評論

載入中...

發表評論