Обновить
1

Пользователь

Отправить сообщение

Я считаю, что есть шелл получше всех вышеперечисленных и вот почему:

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.​

Плюсы 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. Потому в более ранних осях это не работает.

Информация

В рейтинге
Не участвует
Зарегистрирован
Активность