Microsoft Coreutils заменил WSL в повседневных задачах — автору хватило восьми команд

Microsoft Coreutils для Windows позволяет запускать привычные команды из мира Linux напрямую в Windows, без постоянного перехода в WSL. Автор MakeUseOf неделю работал с набором утилит и обнаружил, что для повседневных задач ему чаще всего не была нужна полноценная Linux-среда — хватало восьми знакомых команд.
Речь идёт о ls, grep, find, cat, sort, head, tail и wc. Именно ради них автор обычно запускал WSL — Windows Subsystem for Linux, то есть подсистему Windows для работы с Linux-средой.
Во время теста Coreutils справился с обычной работой с файлами и текстом. Команда ls -la запускалась прямо в Windows, рекурсивный find находил нужные файлы, а grep -r позволял искать строки сразу во всей папке проекта.
Работали и привычные цепочки команд. Например, для разбора журнала ошибок автор использовал cat access.log | grep 500 | sort | uniq | wc -l. Небольшие однострочные команды для пакетного переименования файлов и очистки вывода логов также потребовали минимум изменений.
Любопытный момент обнаружился с производительностью. По наблюдениям автора, рекурсивные grep и find на большом каталоге Windows отрабатывали быстрее, чем те же операции через WSL. Однако точных замеров в материале нет, поэтому считать Coreutils универсально более быстрым вариантом нельзя.
Без шероховатостей тоже не обошлось. В PowerShell часть привычных имён уже занята собственными командами и псевдонимами. Например, ls там вызывает Get-ChildItem, а cat связан с Get-Content. Чтобы запустить нужную утилиту Coreutils, автору пришлось использовать ls.exe, менять порядок путей в PATH и убирать конфликтующие псевдонимы из профиля.
В обычной командной строке CMD таких конфликтов меньше. В материале также упоминается таблица совместимости Microsoft для PowerShell 7.4 и новее, где некоторые утилиты отмечены как поставляемые, но конфликтующие с уже существующими командами оболочки.
Полноценной заменой WSL Coreutils for Windows всё равно не становится. В Windows отсутствуют привычные механизмы, на которые рассчитывают некоторые Unix-команды. В частности, автор отмечает отсутствие chmod, chown, kill и timeout. Вместо /dev/null в Windows используется NUL, а при работе с текстовыми файлами можно столкнуться с окончаниями строк CRLF.
По этой же причине WSL остаётся нужен для задач, где важны Linux-специфичные права доступа, управление процессами, пакетные менеджеры, контейнеры или полноценная среда разработки. Но для поиска файлов, фильтрации логов и небольших сценариев ситуация стала проще: можно остаться в терминале Windows и не переключаться в отдельную Linux-среду.
Именно в этом и заключается главный вывод недельного теста. Автор не отказался от WSL как от технологии — он просто понял, что в большинстве повседневных терминальных задач открывал её ради восьми команд, которые теперь можно запускать прямо в Windows.
Источник: MakeUseOf