Я считаю, что есть шелл получше всех вышеперечисленных и вот почему:
Nushell
Nushell появился в 2019 году как попытка переосмыслить консольный интерфейс, сделав его более современным, мощным и универсальным для работы с табличными, структурированными данными. Проект стартовал с позиции: «shell для XXI века», главными разработчиками выступили Yehuda Katz и команда энтузиастов из Rust-сообщества, вдохновлённые гибкостью языков данных и недовольные устаревшими подходами Bash и Zsh. Основан на языке Rust, что обеспечивает высокую производительность и кроссплатформенность.
Установка Nushell:
Установка Nushell стандартна для большинства Linux-дистрибутивов, macOS и Windows:
Linux (Debian/Ubuntu):
sudo apt update
sudo apt install nushell
Можно также собрать из исходников — для фанатов Rust:
cargo install nu
macOS:
brew install nushell
Windows:
choco install nushell
Для вышеперечисленных и других систем доступны бинарные релизы на GitHub.
После установки версия проверяется:
nu --version
Чтобы сделать nushell оболочкой по умолчанию:
chsh -s $(which nu)
Временный запуск — просто выполнить nu из любого терминала.
Настройка Nushell
Конфигурация хранятся (начиная с nu 0.60+) в каталоге ~/.config/nushell/, главные файлы:
Настройка максимально проста и понятна: переменные, псевдонимы, функции и оформление задаются декларативно. Для глубокого тюнинга доступна встроенная система плагинов, поддержка тем оформления, а также редактор табличных представлений прямо в терминале.
Для интерактивной настройки можно отредактировать переменную окружения ($env.config), а большая часть новых функций работает «из коробки» без необходимости ручного конфигурирования.
Сложность работы и синтаксис
Nushell отличается от классических shell «табличным» мышлением: большинство команд возвращает структурированные данные (таблицы, списки, записи), которые можно фильтровать, группировать и преобразовывать встроенными командами — по аналогии с SQL или DataFrame в Python(sqlite и polars также поддерживаются, первый из коробки, второй ставится в виде плагина, который можно подключить).
Основные особенности синтаксиса:
Все переменные и данные — типизированные объекты, а не строки.
Пайпы (|) работают как конвейер преобразования данных, а не передачи потоков строк.
Есть встроенные команды для работы с JSON, YAML, TOML, файлами, HTTP, git и др.
Параметры передаются логично: например, ls | where size > 100kb | sort-by modified — и результат мгновенно фильтруется и сортируется.
Есть поддержка пользовательских команд, функций, псевдонимов и мощнейший парсер выражений.
Поиск по истории: через встроенную команду (history) либо стандартные стрелки.
Возможности Nushell
Встроенная поддержка табличных, структурированных данных (JSON, YAML, CSV, TSV, TOML, Parquet).
Явная типизация (int, string, table, record и др.), что снижает количество ошибок.
Автодополнение, контекстные подсказки, синтаксическая подсветка прямо в терминале.
Встроенные плагины для git, расширенной поддержки форматов, построения запросов(query), агрегаций и аналитики(polars).
Расширяемость через плагины (которые, к слову можно писать не только на расте, но и на других языках, например Python) и темы.
Совместимость с POSIX
Nushell НЕ является POSIX-совместимой оболочкой. Классические shell-скрипты Bash, Zsh, Fish работать в nushell не будут — потребуется адаптация под этот shell. Но всегда можно запустить bash -с "команда" и обработать stdout уже в nu.
Работа с табличными, структурированными и бинарными данными из коробки.
Встроенные автоматизации, мощные возможности по управлению файлами, сетями, пакетами.
Отличная поддержка автодополнения, подсветки, поиска, встроенная система help.
Простота расширения и кастомизации.
Кроссплатформенность без гемора — работает на Linux, macOS, Windows.
Огромная документация и активное сообщество (Discord, GitHub).
Минусы Nushell
Не совместим с POSIX (старые скрипты требуют переписывания).
Молодое сообщество (меньше готовых решений и примеров, чем у Bash/Zsh).
Некоторые плагины и интеграции ещё в стадии разработки.
Не всегда доступен прямо на минимальных rescue-системах.
Вывод:
Nushell — единственная оболочка из рассмотренных, которая сочетает «человеко-читабельный» синтаксис, работу с табличными и структурированными данными, производительность Rust и ультра-модульность. Bash остаётся стандартом для совместимости; Zsh — коктейлем автоматизации и тем, а Fish — уютом для новичка. Но Nushell — это новый класс shell, где возможности современных языков объединены с простотой и гибкостью командной строки.
Для инженера, программиста, дата-аналитика, DevOps или хакера — Nushell может заменить старые скрипты автоматизацией в разы проще и нагляднее. Если хочется настоящего «shell будущего», стоит попробовать именно nushell: быстро, удобно, красиво и функционально сразу «из коробки», без костылей и устаревших подходов.
За последние годы улучшений, nu превратился в полноценный скриптовой язык программирования. Сам я пользуюсь им уже много лет и имею множество самописных модулей, которыми пользуюсь каждый день, а некоторые из них работают на проде.
По поводу перезапуска питона после перекомпиляции, думаю проблема кроется в импортирте. Возможно, если использовать importlib (importlib.reload(импортированныйпакет)), может помочь.
Я считаю, что есть шелл получше всех вышеперечисленных и вот почему:
Nushell
Nushell появился в 2019 году как попытка переосмыслить консольный интерфейс, сделав его более современным, мощным и универсальным для работы с табличными, структурированными данными. Проект стартовал с позиции: «shell для XXI века», главными разработчиками выступили Yehuda Katz и команда энтузиастов из Rust-сообщества, вдохновлённые гибкостью языков данных и недовольные устаревшими подходами Bash и Zsh. Основан на языке Rust, что обеспечивает высокую производительность и кроссплатформенность.
Установка Nushell:
Установка Nushell стандартна для большинства Linux-дистрибутивов, macOS и Windows:
Linux (Debian/Ubuntu):
Можно также собрать из исходников — для фанатов Rust:
macOS:
Windows:
Для вышеперечисленных и других систем доступны бинарные релизы на GitHub.
После установки версия проверяется:
Чтобы сделать nushell оболочкой по умолчанию:
Временный запуск — просто выполнить
nuиз любого терминала.Настройка Nushell
Конфигурация хранятся (начиная с nu 0.60+) в каталоге
~/.config/nushell/, главные файлы:config.nuenv.nuНастройка максимально проста и понятна: переменные, псевдонимы, функции и оформление задаются декларативно. Для глубокого тюнинга доступна встроенная система плагинов, поддержка тем оформления, а также редактор табличных представлений прямо в терминале.
Для интерактивной настройки можно отредактировать переменную окружения (
$env.config), а большая часть новых функций работает «из коробки» без необходимости ручного конфигурирования.Сложность работы и синтаксис
Nushell отличается от классических shell «табличным» мышлением: большинство команд возвращает структурированные данные (таблицы, списки, записи), которые можно фильтровать, группировать и преобразовывать встроенными командами — по аналогии с SQL или DataFrame в Python(sqlite и polars также поддерживаются, первый из коробки, второй ставится в виде плагина, который можно подключить).
Основные особенности синтаксиса:
Все переменные и данные — типизированные объекты, а не строки.
Пайпы (|) работают как конвейер преобразования данных, а не передачи потоков строк.
Есть встроенные команды для работы с JSON, YAML, TOML, файлами, HTTP, git и др.
Параметры передаются логично: например,
ls | where size > 100kb | sort-by modified— и результат мгновенно фильтруется и сортируется.Есть поддержка пользовательских команд, функций, псевдонимов и мощнейший парсер выражений.
Поиск по истории: через встроенную команду (history) либо стандартные стрелки.
Возможности Nushell
Встроенная поддержка табличных, структурированных данных (JSON, YAML, CSV, TSV, TOML, Parquet).
Явная типизация (int, string, table, record и др.), что снижает количество ошибок.
Автодополнение, контекстные подсказки, синтаксическая подсветка прямо в терминале.
Встроенные плагины для git, расширенной поддержки форматов, построения запросов(query), агрегаций и аналитики(polars).
Расширяемость через плагины (которые, к слову можно писать не только на расте, но и на других языках, например Python) и темы.
Совместимость с POSIX
Nushell НЕ является POSIX-совместимой оболочкой. Классические shell-скрипты Bash, Zsh, Fish работать в nushell не будут — потребуется адаптация под этот shell. Но всегда можно запустить
bash -с "команда"и обработать stdout уже в nu.Плюсы Nushell
Современная архитектура (Rust, быстрое выполнение).
Работа с табличными, структурированными и бинарными данными из коробки.
Встроенные автоматизации, мощные возможности по управлению файлами, сетями, пакетами.
Отличная поддержка автодополнения, подсветки, поиска, встроенная система help.
Простота расширения и кастомизации.
Кроссплатформенность без гемора — работает на Linux, macOS, Windows.
Огромная документация и активное сообщество (Discord, GitHub).
Минусы Nushell
Не совместим с POSIX (старые скрипты требуют переписывания).
Молодое сообщество (меньше готовых решений и примеров, чем у Bash/Zsh).
Некоторые плагины и интеграции ещё в стадии разработки.
Не всегда доступен прямо на минимальных rescue-системах.
Вывод:
Nushell — единственная оболочка из рассмотренных, которая сочетает «человеко-читабельный» синтаксис, работу с табличными и структурированными данными, производительность Rust и ультра-модульность. Bash остаётся стандартом для совместимости; Zsh — коктейлем автоматизации и тем, а Fish — уютом для новичка. Но Nushell — это новый класс shell, где возможности современных языков объединены с простотой и гибкостью командной строки.
Для инженера, программиста, дата-аналитика, DevOps или хакера — Nushell может заменить старые скрипты автоматизацией в разы проще и нагляднее. Если хочется настоящего «shell будущего», стоит попробовать именно nushell: быстро, удобно, красиво и функционально сразу «из коробки», без костылей и устаревших подходов.
За последние годы улучшений, nu превратился в полноценный скриптовой язык программирования.
Сам я пользуюсь им уже много лет и имею множество самописных модулей, которыми пользуюсь каждый день, а некоторые из них работают на проде.
По поводу перезапуска питона после перекомпиляции, думаю проблема кроется в импортирте. Возможно, если использовать importlib (importlib.reload(импортированныйпакет)), может помочь.
или же поставить nushell, она неплохо развивается в последнее время
В Win10 выходило обновление, добавляющее поддержку ESC ANSI Sequences. Потому в более ранних осях это не работает.