← Ко всем open source проектам

Nushell

nushell/nushell

Nushell — современная оболочка, где команды передают друг другу структурированные данные, а не только текст.

Форки 2,167
Автор nushell
Язык Rust
Лицензия MIT
Обновлено 2026-06-27

Что это такое

Nushell — современная командная оболочка, написанная на Rust. Ее главная идея — передавать между командами структурированные данные: таблицы, записи, списки и значения, а не только строки текста.

Обычные shell-пайплайны сильны, но часто требуют `grep`, `awk`, `sed` и ручного парсинга. Nushell пытается сделать работу с файлами, JSON, CSV, процессами и системной информацией более типизированной и читаемой.

Как устроен подход

Команды Nushell возвращают данные, которые можно фильтровать, сортировать, выбирать по колонкам и передавать дальше. Это похоже на работу с таблицей прямо в терминале.

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

Структурированный пайплайн

Пример показывает стиль Nushell: список файлов превращается в таблицу, фильтруется и сортируется по размеру.

Язык: Plain text
ls
| where type == file
| sort-by size
| last 10
| select name size modified

Что внутри репозитория

Репозиторий содержит shell, стандартные команды, парсер, движок выполнения, документацию, тесты и материалы для установки. Проект развивается как полноценная альтернатива привычным оболочкам, а не как отдельная утилита.

Nushell также интересен тем, что соединяет идеи shell, языка данных и интерактивной таблицы. Это меняет привычки: меньше парсинга текста, больше операций над структурой.

Практический контекст

Переходить на Nushell лучше постепенно. Можно сначала использовать его для отдельных задач обработки JSON, CSV и файлов, а не сразу переписывать все скрипты.

Для серверов и командных окружений важно помнить о совместимости. Bash и POSIX shell никуда не исчезают, поэтому Nushell часто живет рядом с ними.

Чем он отличается от привычной оболочки

Nushell меняет главную привычку командной строки: данные между командами идут не только как текстовые строки, а как структурированные таблицы и значения. Это особенно удобно, когда нужно фильтровать JSON, CSV, списки процессов или результаты системных команд.

Вместо длинной цепочки grep, awk и sed пользователь может обращаться к колонкам, сортировать, группировать и преобразовывать данные как к структуре. Такой подход делает многие одноразовые операции понятнее и менее хрупкими.

Ограничение в совместимости: огромный мир shell-скриптов исторически построен на текстовом потоке. Nushell может вызывать внешние команды, но его собственная модель требует привыкания и не всегда заменяет старые сценарии без переделки.

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

Сильные стороны и ограничения

Сильная сторона — структурированные данные в терминале. Ограничение — отличия от привычного shell-синтаксиса и совместимости старых скриптов.