Представлено нову командну оболонку 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:

Представлено нову командну оболонку nushell

Представлено нову командну оболонку nushell

Для структурування даних використовується ряд надбудов, які розбирають виведення конкретних команд та типів файлів. Подібні надбудови запропоновані для команд 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 | опис | 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. Для неструктурованих даних (тексту) пропонуються інструкції для розбиття на стовпці та рядки на основі символів-розділювачів.

Джерело: opennet.ru

Додати коментар або відгук