la prima versione della shell , che combina le funzionalità di Power Shell e delle classiche shell unix. Il codice è scritto in linguaggio Rust e è rilasciato sotto licenza MIT. Il progetto è inizialmente sviluppato come multiplatform e supporta l'uso su Windows, macOS e Linux. Per estendere la funzionalità possono essere utilizzati , l'interazione con i quali avviene tramite il protocollo JSON-RPC.
Nella shell viene applicato il sistema familiare agli utenti Unix dei pipe nel formato "comando|filtri|gestore output". Per default, l'output è formattato tramite il comando autoview, che utilizza un formato tabellare, ma è possibile anche utilizzare comandi per visualizzare dati binari e informazioni in una rappresentazione ad albero. Un punto di forza di nushell è la possibilità di manipolare dati strutturati.
La shell consente di strutturare l'output di vari comandi e il contenuto dei file, applicando filtri arbitrari che utilizzano una sintassi unificata, senza la necessità di apprendere le opzioni della linea di comando di ciascun comando specifico. Ad esempio, nushell consente di utilizzare costruzioni come «ls | where size > 10kb» e «ps | where cpu > 10», che porteranno all'output solo di file superiori a 10Kb e di processi che hanno consumato più di 10 secondi di risorse CPU.
Per strutturare i dati, viene utilizzato un insieme di estensioni che analizzano l'output di comandi e tipi di file specifici. Sono disponibili estensioni per i comandi cd, ls, ps, cp, mkdir, mv, date, rm (per invocare comandi nativi si può utilizzare il prefisso «^», ad esempio l'invocazione «^ls» avvierà l'utilità di sistema ls). Ci sono anche comandi specializzati, come open, per visualizzare informazioni su un file selezionato in formato tabellare. Per i formati JSON, TOML e YAML viene supportata l'analisi automatica.
/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] | Una shell per l'era di GitHub | 2018 | MIT | nu | 0.2.0
————-+—————————-+———+———+——+———
/home/jonathan/Source/nushell(master)> open Cargo.toml | get package.version | echo $it
0.2.0
Viene fornito un ampio set di istruzioni per la filtrazione dei dati strutturati, che consentono di escludere righe, ordinare per colonne, sommare dati, eseguire semplici calcoli, utilizzare contatori di valori e convertire l'output nei formati CSV, JSON, TOML e YAML. Per i dati non strutturati (testo) sono disponibili istruzioni per la suddivisione in colonne e righe basate su caratteri delimitatori.
Fonte: opennet.ru
