Rust CLI утилиты, заменяющие классические инструменты Linux

Ubuntu тихо переходит на Rust для своего пользовательского пространства. Проект uutils готов заменить GNU coreutils в Ubuntu 25.10 и позже, сохраняя безопасность памяти без нарушения существующих скриптов. Этот переход на уровне системы займет годы, но отдельные переписанные инструменты уже доступны сегодня. Эти лучшие утилиты CLI на Rust для Linux работают на macOS и Windows, встраиваются рядом с grep, cat, ls, du, top и diff, оставаясь совместимыми с флагами, которые используют большинство скриптов.

На что обратить внимание в утилите CLI на Rust

Быстрое сравнение

Инструмент Заменяет Бесплатный план Выделяющееся Кросс-платформа
ripgrep (rg) grep / ack Бесплатно Поиск с учетом gitignore Windows, macOS, Linux
bat cat Бесплатно Подсветка синтаксиса, маркеры git diff Windows, macOS, Linux
eza ls Бесплатно Иконки, статус git, режим tree macOS, Linux, Windows (WSL)
fd find Бесплатно Эргономичный синтаксис, учитывает gitignore Windows, macOS, Linux
dust du Бесплатно Визуальное дерево использования диска Windows, macOS, Linux
bottom (btm) top / htop Бесплатно GPU и сеть по процессам Windows, macOS, Linux
zoxide cd Бесплатно Запоминает ваши папки Windows, macOS, Linux
delta diff / git diff Бесплатно Параллельные git diff Windows, macOS, Linux

Утилиты

1. ripgrep — лучшая замена grep

ripgrep (rg) — это инструмент, который уже используют в своих dotfiles почти все разработчики. Он обходит директорию параллельно, пропускает файлы, указанные в .gitignore, и заметно быстрее GNU grep на любой кодовой базе размером более нескольких мегабайт.

Где он не справляется: по умолчанию он учитывает .gitignore, что удивляет тех, кто ожидает полного охвата в стиле grep. Используйте -uu для отключения.

Лицензирование:

Платформы: Windows, macOS, Linux. Загрузка: BurntSushi/ripgrep Итог: устанавливайте в первую очередь. Каждый другой инструмент в этом списке имеет пользователей ripgrep, пишущих для него плагины.

2. bat — лучшая замена cat

bat раскрашивает вывод файлов подсветкой синтаксиса для 150+ языков, показывает номера строк по умолчанию и чисто передается в less. Также отображает маркеры diff при чтении файла в репозитории git.

Где он не справляется: он работает в меньшем количестве контекстов, чем обычный cat, поэтому bat file.txt | grep требует --paging=never.

Лицензирование:

Платформы: Windows, macOS, Linux. Загрузка: sharkdp/bat Итог: небольшой выигрыш в качестве жизни, который останется с вами во всех сеансах оболочки.

3. eza — лучшая замена ls

eza — это поддерживаемый форк заброшенного exa. Он отображает списки директорий с цветом, иконками (с Nerd Font), статусом git для каждого файла и встроенным режимом дерева, заменяющим tree.

Где он не справляется: поддержка Windows только через WSL. Поддержка иконок требует установленного Nerd Font.

Лицензирование:

Платформы: Linux, macOS, Windows через WSL. Загрузка: eza-community/eza Итог: сделайте ls псевдонимом eza -l --git --icons и больше не смотрите назад.

4. fd — лучшая замена find

fd — это find с англоязычным набором флагов. fd pattern обходит дерево и выводит каждое совпадение; добавьте -e md для фильтрации по расширению, -x cmd для запуска по результату. По умолчанию учитывает .gitignore.

Где он не справляется: набор флагов несовместим со скриптами find, поэтому псевдонимы оболочки и конвейеры CI, использующие find -exec, требуют переписывания.

Лицензирование:

Платформы: Windows, macOS, Linux. Загрузка: sharkdp/fd Итог: стоит переключиться только, чтобы прекратить вспоминать синтаксис -exec в find.

5. dust — лучшая замена du

dust показывает использование диска как встроенную столбчатую диаграмму, отсортированную по размеру с цветной кодировкой процентов. dust в папке проекта делает очевидным, какая подпапка поедает ваш SSD.

Где он не справляется: по умолчанию не следует символическим ссылкам; добавьте -s. Очень глубокие деревья могут замедлить итоговый результат.

Лицензирование:

Платформы: Windows, macOS, Linux. Загрузка: bootandy/dust Итог: самый быстрый способ ответить на вопрос “что заполнило мой диск” без открытия GUI.

6. bottom — лучшая замена top

bottom (btm) — это монитор системы терминала с панелями для CPU, памяти, GPU (Nvidia), сети, диска, температур и разбивки по процессам. Каждая панель расширяемая, каждая метрика графируется.

Где он не справляется: панель GPU первична для Nvidia; поддержка AMD зависит от установленного radeontop. Датчики температуры macOS требуют дополнительных разрешений.

Лицензирование:

Платформы: Windows, macOS, Linux. Загрузка: ClementTsang/bottom Итог: htop с графиками и современной атрибуцией сети.

7. zoxide — лучшая замена cd

zoxide отслеживает ваши привычки cd и позволяет переходить в любую недавно посещаемую папку по ключевому слову. z proj лучше, чем cd ~/code/company/project/frontend каждый раз.

Где он не справляется: требуется неделя использования, чтобы его рейтинг казался естественным.

Лицензирование:

Платформы: Windows (PowerShell, cmd), macOS, Linux. Загрузка: ajeetdsouza/zoxide Итог: выигрыш в производительности, который все недооценивают, пока не попробуют в течение недели.

8. delta — лучшая замена diff и git-diff

delta пропускает git diff, git show и git log -p через параллельную подсветку синтаксиса с осведомленностью о git для каждой строки. Настройте один раз в ~/.gitconfig и каждый вывод git будет выглядеть как GitHub.

Где он не справляется: требуются широкие терминалы. При ширине менее 100 столбцов параллельный вид схлопывается.

Лицензирование:

Платформы: Windows, macOS, Linux. Загрузка: dandavison/delta Итог: обновление вывода git, о котором вы не знали, что вам нужно.

Как выбрать правильный инструмент

Если вы устанавливаете один инструмент из этого списка: ripgrep. Если вы проводите день в git: delta. Если ваш диск заполняется быстрее, чем вы его чистите: dust. Если ваша привычка к top устаревает: bottom. Если ваш ls без стиля: eza. Если ваша привычка cd включает ввод семи директорий: zoxide. Если вы хотите полное переписывание coreutils: uutils, которое теперь охватывает большую часть набора GNU и является основой работы Ubuntu. Оставайтесь с GNU-инструментами там, где скрипты, которые вы не писали, зависят от их точного поведения флагов; переписывания на Rust для вас, а не для конвейера CI, который вы унаследовали.

FAQ

Безопасно ли заменять coreutils версиями на Rust?

Для вашей собственной оболочки и скриптов, да; каждый инструмент в этом списке стабилен и широко используется. Не заменяйте системные coreutils на сервере без предварительного тестирования каждого зависящего от них скрипта. Ubuntu переходит на уровне системы по одной утилите за раз по этой причине.

Почему Ubuntu переписывает coreutils на Rust?

Безопасность памяти. Rust исключает целые классы ошибок безопасности на этапе компиляции, а переписывания uutils сохраняют поверхность флагов GNU, чтобы существующие скрипты не нарушались.

Работают ли эти утилиты CLI на Rust на macOS?

Все они. Homebrew имеет текущие формулы для каждого инструмента в списке.

Какие инструменты CLI на Rust работают на Windows без WSL?

ripgrep, bat, fd, dust, bottom, zoxide и delta поставляются с нативными двоичными файлами Windows. eza сейчас только для WSL.

Какой самый простой способ установить все это?

brew install ripgrep bat eza fd dust bottom zoxide git-delta на macOS и Linux. cargo install ripgrep bat eza fd-find du-dust bottom zoxide git-delta если вы предпочитаете Cargo. Пользователи Windows могут winget install BurntSushi.ripgrep.MSVC sharkdp.bat sharkdp.fd Dandavison.delta ClementTsang.bottom ajeetdsouza.zoxide.