първото издание на командния интерпретатор , комбиниращ възможностите на 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:
За структуриране на данни се използват редица добавки, които анализират изхода от конкретни команди и типове файлове. Подобни добавки са предложени за командите 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] | Вдъхновен от GitHub ерата | 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
