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

Публикувано първият брой на командната обвивка nushell, съчетаваща възможностите на Power Shell и класическите unix обвивки. Кодът е написан на езика 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 | 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. За неструктурирани данни (текст) се предлагат инструкции за разбиване на колони и редове въз основа на символи-разделители.

Източник: opennet.ru

Купете надежден хостинг за сайтове със защита от DDoS, VPS и VDS сървъри 🔥 Купете надежден хостинг за сайтове със защита от DDoS, VPS и VDS сървъри | ProHoster