РАЗРАБОТКА

Microsoft принесла Linux-команды в Windows: зачем это разработчикам

Более 75 Unix-команд появились в Windows и PowerShell: Microsoft добавила coreutils, чтобы унифицировать скрипты и упростить жизнь разработчикам.

✍️ Редакция iTech News | 04.06.2026 | ⏱ 5 мин | Источник: The Register
🛠

Microsoft встроила Linux-команды в Windows не через очередную прослойку совместимости, а почти напрямую: пакет Coreutils приносит в CMD и PowerShell больше 75 привычных Unix-утилит, включая cat, ls, grep и head. Для разработчиков и админов это не косметика, а попытка убрать старую боль Windows-окружения, где один и тот же скрипт приходилось переписывать под разные оболочки.

О новинке, представленной на конференции Build, сообщает The Register. По данным издания, Microsoft выпустила Coreutils как multi-call binary для Windows, собранный на Rust. Размер пакета небольшой, около 4,6 МБ, а установить его можно через WinGet командой winget install Microsoft.Coreutils. Формально это просто набор знакомых команд в новой среде. Практически же это шаг к тому, чтобы Linux-команды в Windows перестали быть экзотикой для WSL, Git Bash или Cygwin и стали частью штатного инструментария.

Самый показательный пример здесь, конечно, grep. Сatya Nadella на Build отдельно акцентировал внимание именно на нем, назвав доступность утилиты в Windows важным новшеством. И это легко понять: для тех, кто живет в логах, конфигурациях, CI-скриптах и огромных каталогах с артефактами сборки, grep часто полезнее красивых презентаций про агентный ИИ. В русскоязычных командах это особенно заметно там, где одновременно используются Windows-ноутбуки, Linux-сервера, контейнеры и облачные пайплайны. Чем меньше различий между командами в локальной разработке и проде, тем меньше случайных ошибок и времени на отладку.

У Microsoft здесь вполне прагматичная мотивация. Компания прямо объясняет, что хочет стандартизировать пользовательские команды между разными платформами и средами: контейнерами, PowerShell, WSL, macOS и старым CMD. Идея простая: если разработчик, администратор или агент пишет сценарий с Unix-утилитами, этот сценарий должен вести себя предсказуемо не только в Linux, но и в Windows. Это выглядит как очередной этап долгой трансформации Microsoft из компании, которая когда-то воевала с Linux почти идеологически, в поставщика инфраструктуры, которому важнее удержать разработчика в своей экосистеме, чем спорить о религии командной строки.

Отдельная деталь, которая многое объясняет, — техническая база проекта. Coreutils в Windows построен на uutils, открытой инициативе по переписыванию ключевых Unix-команд на Rust. Для Microsoft это удобное сочетание кроссплатформенности, контроля над интеграцией и аргумента про memory safety. Заодно компания избегает лицензионных сложностей, которые неизбежно всплывали бы при более тесной опоре на GNU-реализации. Проще говоря, Microsoft не просто одолжила старые утилиты у мира Unix, а встроила их в Windows так, как ей самой удобно с точки зрения сопровождения, безопасности и корпоративной дистрибуции.

Но эйфория здесь должна быть умеренной. Linux-команды в Windows появились не в вакууме и не без оговорок. У части утилит есть конфликты имен с уже существующими командами CMD и PowerShell. В материале The Register упоминаются, например, date и rmdir: какая именно команда сработает, зависит от оболочки, порядка путей в PATH и, в случае PowerShell, от таблицы алиасов. Это означает, что универсальность наступает не автоматически. Если команда годами жила в PowerShell-скриптах со своим смыслом, появление Unix-аналога может не только упростить жизнь, но и добавить новый класс трудноуловимых ошибок.

Есть и более фундаментальные ограничения. Windows использует модель прав доступа на базе ACL, а не POSIX-биты разрешений, поэтому ряд типично Linux-команд для управления владельцами и правами просто не имеет там нормального смысла. В опубликованном описании проекта перечислены, в частности, chcon, chgrp, chmod, chown, chroot и groups — их сценарии в Windows не переносятся один к одному. Некоторые утилиты проект и вовсе пока не берет: тот же dd в документации упоминается с оговоркой в духе «возможно, когда-нибудь потом». Иными словами, речь идет не о полной миграции Unix-среды в Windows, а о довольно продуманном наборе самых востребованных команд, которые закрывают ежедневные задачи, но не делают Windows новым Linux.

Зато для разработчиков, которые периодически пересаживаются между системами, выигрыш очевиден уже сейчас. Больше не нужно помнить, что в одной среде список файлов показывает ls, а в другой — dir; что для поиска по содержимому в PowerShell придется срочно вспоминать синтаксис эквивалента; что привычный пайплайн нужно переписывать только потому, что ноутбук корпоративный и с Windows. В этом смысле Microsoft решает не идеологическую, а сугубо производственную задачу: снижает стоимость переключения контекста. Для продуктовых команд и IT-руководителей это тоже неплохая новость, потому что унификация инструментов обычно уменьшает накладные расходы на онбординг, поддержку внутренних скриптов и сопровождение смешанных сред.

Контекст у этого шага тоже показательный. The Register связывает интерес Microsoft к Unix-утилитам не только с многолетним ростом Linux в Azure, но и с новым витком борьбы за разработчика на фоне ИИ-платформ. Компания продвигает идею, что агентам, Copilot-инструментам и автоматизации нужен предсказуемый, безопасный и единообразный базовый слой. Если grep, cat и другие базовые команды одинаково доступны в контейнере, в WSL и в штатной Windows-среде, это удобно не только человеку, но и любому агенту, которому поручили разобрать логи, пройтись по репозиторию или подготовить простую цепочку команд. И тут Microsoft действует в своем привычном стиле: не спорить с тем, к чему привык рынок, а встроить это в корпоративный контур под собственным брендом и управлением.

Вопрос теперь не в том, нужны ли Linux-команды в Windows, а в том, где Microsoft остановится. Если компания действительно хочет сделать Windows естественной средой для разработки, автоматизации и агентных сценариев, одного набора coreutils будет мало: дальше придется аккуратно разруливать конфликты команд, поведение скриптов и границы совместимости. Но сам сигнал уже вполне ясен: CMD и PowerShell перестают быть отдельным миром со своим диалектом и медленно учатся говорить на языке, который индустрия выучила задолго до этого. Подробнее об анонсе пишет The Register.

Поделиться: Telegram X LinkedIn