první verze shellu , kombinující vlastnosti Power Shell a klasických unixových shellů. Kód je napsán v jazyce Rust a pod licencí MIT. Projekt je původně vyvíjen jako multiplatformní a podporuje běh ve Windows, macOS a Linuxu. Pro rozšíření funkcionality mohou být použity , jejichž interakce probíhá pomocí protokolu JSON-RPC.
V shellu se používá uživatelsky známý systém potrubí ve formátu „příkaz|filtry|zpracovatel výstupu“. Výchozí výstup je formátován pomocí příkazu autoview, který používá tabulkový formát, ale je také možné použít příkazy pro zobrazení binárních dat a informací ve stromovém zobrazení. Silnou stránkou nushellu je schopnost manipulace se strukturovanými daty.
Shell umožňuje strukturování výstupů různých příkazů a obsahu souborů a aplikovat libovolné filtry, které jsou vytvářeny pomocí unifikované syntaxe, která nevyžaduje studium voleb příkazového řádku pro každý konkrétní příkaz. Například nushell umožňuje používat konstrukce jako „ls | where size > 10kb“ a „ps | where cpu > 10“, které vrátí pouze soubory větší než 10Kb a procesy, které spotřebovaly více než 10 sekund zdrojů CPU:
Pro strukturování dat se používá řada nadstaveb, které interpretují výstup konkrétních příkazů a typů souborů. Tyto nadstavby jsou navrženy pro příkazy cd, ls, ps, cp, mkdir, mv, date, rm (pro volání nativních příkazů může být použit prefix „^“, například volání „^ls“ spustí systémový nástroj ls). Existují také specializované příkazy, jako open pro zobrazení informací o vybraném souboru v tabulkovém zobrazení. Pro formáty JSON, TOML a YAML je podporováno automatické rozpoznávání.
/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] | Shell pro éru GitHubu | 2018 | MIT | nu | 0.2.0
————-+—————————-+———+———+——+———
/home/jonathan/Source/nushell(master)> open Cargo.toml | get package.version | echo $it
0.2.0
Je poskytována široká sada pokynů pro filtrování strukturovaných dat, které umožňují vyřazovat řádky, třídit podle sloupců, shrnovat data, provádět jednoduché výpočty, používat hodnotové počitadla a měnit výstup do formátů CSV, JSON, TOML a YAML. Pro nestrukturovaná data (text) jsou nabízeny pokyny pro rozdělení na sloupce a řádky na základě oddělovačů.
Zdroj: opennet.ru
