Форум АНТИЧАТ

Форум АНТИЧАТ (https://forum.antichat.xyz/index.php)
-   Мировые новости. Обсуждения. (https://forum.antichat.xyz/forumdisplay.php?f=23)
-   -   Представлена новая командная оболочка nushell (https://forum.antichat.xyz/showthread.php?t=472691)

Suicide 29.08.2019 17:34

Опубликован первый выпуск командной оболочки nushell, сочетающей возможности Power Shell и классических unix shell. Код написан на языке Rust и распространяется под лицензией MIT. Проект изначально развивается как кросс-платформенный и поддерживает работу в Windows, macOS и Linux. Для расширения функциональности могут использоваться плагины, взаимодействие с которыми осуществляется по протоколу JSON-RPC.

В оболочке применяется привычная для пользователей Unix система конвейеров в формате "команда|фильтры|обработчи вывода". По умолчанию вывод оформляется при помощи команды autoview, использующей табличный формат, но возможно и применения команд для отображения бинарных данных и информации в древовидном представлении. Сильной стороной nushell является возможность манипуляции структурированными данными.

Оболочка позволяет структурировать вывод различных команд и содержимое файлов, и применять произвольные фильтры, которые оформляются с использованием унифицированного синтаксиса, не требующего изучения опций командной строки каждой конкретной команды. Например, nushell позволяет использовать такие конструкции, как "ls | where size > 10kb" и "ps | where cpu > 10", которые приведут к выводу только файлов размером больше 10Kb и процессов, которые потратили больше 10 секунд ресурсов CPU:

https://www.opennet.ru/opennews/pics...1567065483.pnghttps://www.opennet.ru/opennews/pics...1567065506.png

Для структурирования данных применяется ряд надстроек, которые разбирают вывод конкретных команд и типов файлов. Подобные надстройки предложены для команд cd, ls, ps, cp, mkdir, mv, date, rm (для вызова родных команд может применяться префикс "^", например вызов "^ls" приведёт к запуску системной утилиты ls). Имеются и специализированные команды, такие как open для отображения информации о выбранном файле в табличном виде. Для форматов JSON, TOML и YAML поддерживается автоматический разбор.

/home/jonathan/Source/nushell(master)> open Cargo.toml

-----------------+------------------+-----------------

dependencies | dev-dependencies | package

-----------------+------------------+-----------------

[object Object] | [object Object] | [object Object]

-----------------+------------------+-----------------

/home/jonathan/Source/nushell(master)> open Cargo.toml | get package

-------------+----------------------------+---------+---------+------+---------

authors | description | edition | license | name | version

-------------+----------------------------+---------+---------+------+---------
[list List] | A shell for the GitHub era | 2018 | MIT | nu | 0.2.0

-------------+----------------------------+---------+---------+------+---------

/home/jonathan/Source/nushell(master)> open Cargo.toml | get package.version | echo $it

0.2.0

Предоставляется большой набор инструкций для фильтрации структурированных данных, позволяющих отсеивать строки, сортировать по столбцам, суммировать данные, производить простые вычисления, использовать счётчики значений, выполнять преобразование вывода в форматы CSV, JSON, TOML и YAML. Для неструктурированных данных (текста) предлагаются инструкции для разбивки на столбцы и строки на основе символов-разделителей.



Время: 22:30