pierwsza wersja powłoki poleceń , łącząca funkcje Power Shell i klasycznych powłok unixowych. Kod napisany jest w języku Rust i na licencji MIT. Projekt jest rozwijany jako wieloplatformowy i wspiera pracę w Windows, macOS i Linux. Funkcjonalność można rozszerzać przy użyciu , z którymi komunikacja odbywa się za pomocą protokołu JSON-RPC.
W powłoce zastosowano znany użytkownikom Unix system potoków w formacie "komenda|filtry|przetwarzanie wyniku". Domyślnie wyjście jest formatowane za pomocą komendy autoview, korzystającej z formatu tabelarycznego, ale możliwe jest także użycie komend do wyświetlania danych binarnych i informacji w formie drzewa. Siłą nushell jest możliwość manipulacji danymi strukturalnymi.
Powłoka pozwala na strukturyzację wyników różnych komend oraz treści plików, oraz na stosowanie dowolnych filtrów, które są zapisane przy użyciu ujednoliconej składni, nie wymagającej nauki opcji wiersza poleceń każdej konkretnej komendy. Na przykład, nushell pozwala na użycie takich konstrukcji jak "ls | where size > 10kb" oraz "ps | where cpu > 10", które wygenerują tylko te pliki, które mają rozmiar większy niż 10KB i procesy, które zużyły więcej niż 10 sekund zasobów CPU:
Do strukturyzacji danych stosuje się szereg rozszerzeń, które analizują wyniki konkretnych komend i typów plików. Takie rozszerzenia zostały zaproponowane dla komend cd, ls, ps, cp, mkdir, mv, date, rm (do wywołania natywnych komend można użyć prefiksu "^", na przykład wywołanie "^ls" uruchomi systemowe narzędzie ls). Istnieją również specjalistyczne komendy, takie jak open, które wyświetlają informacje o wybranym pliku w formie tabeli. Dla formatów JSON, TOML i YAML wspierane jest automatyczne rozparowanie.
/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] | Powłoka na erę GitHub | 2018 | MIT | nu | 0.2.0
————-+—————————-+———+———+——+———
/home/jonathan/Source/nushell(master)> open Cargo.toml | get package.version | echo $it
0.2.0
Oferowany jest obszerny zestaw instrukcji do filtrowania danych strukturalnych, które umożliwiają odrzucanie wierszy, sortowanie według kolumn, sumowanie danych, przeprowadzanie prostych obliczeń, używanie liczników wartości oraz konwersję wyników do formatów CSV, JSON, TOML i YAML. Dla danych nieustrukturalnych (tekstowych) dostępne są instrukcje dzielenia na kolumny i wiersze na podstawie znaków separatorów.
Źródło: opennet.ru
