première version du shell , alliant les capacités de Power Shell et des shells unix classiques. Le code est écrit en Rust et sous licence MIT. Le projet est initialement développé comme multiplateforme et prend en charge Windows, macOS et Linux. Des , dont l'interaction se fait via le protocole JSON-RPC.
Le shell utilise un système de pipelines familier aux utilisateurs de Unix au format « commande|filtres|gestionnaire de sortie ». Par défaut, la sortie est présentée à l'aide de la commande autoview, qui utilise un format tabulaire, mais il est également possible d'utiliser des commandes pour afficher des données binaires et des informations en représentation arborescente. Un des points forts de nushell est sa capacité à manipuler des données structurées.
Le shell permet de structurer la sortie de différentes commandes et le contenu de fichiers, et d'appliquer des filtres arbitraires, qui sont formulés à l'aide d'une syntaxe unifiée ne nécessitant pas d'apprendre les options de ligne de commande de chaque commande spécifique. Par exemple, nushell permet d'utiliser des constructions telles que « ls | where size > 10kb » et « ps | where cpu > 10 », qui conduiront à afficher uniquement les fichiers de plus de 10 Ko et les processus ayant consommé plus de 10 secondes des ressources CPU :
Pour structurer les données, un certain nombre de plugins sont utilisés pour analyser la sortie de commandes spécifiques et de types de fichiers. De tels plugins sont proposés pour les commandes cd, ls, ps, cp, mkdir, mv, date, rm (pour appeler les commandes natives, un préfixe « ^ » peut être utilisé, par exemple l'appel « ^ls » lancera l'utilitaire système ls). Il existe également des commandes spécialisées comme open pour afficher des informations sur un fichier sélectionné sous forme tabulaire. Les formats JSON, TOML et YAML sont automatiquement décodés.
/home/jonathan/Source/nushell(master)> open Cargo.toml
——————+——————+——————
dépendances | dépendances de développement | package
——————+——————+——————
[object Object] | [object Object] | [object Object]
——————+——————+——————
/home/jonathan/Source/nushell(master)> open Cargo.toml | get package
————-+—————————-+———+———+——+———
auteurs | description | édition | licence | nom | version
————-+—————————-+———+———+——+———
[list List] | Un shell pour l'ère GitHub | 2018 | MIT | nu | 0.2.0
————-+—————————-+———+———+——+———
/home/jonathan/Source/nushell(master)> open Cargo.toml | get package.version | echo $it
0.2.0
Un large éventail d'instructions est fourni pour le filtrage des données structurées, permettant de filtrer les lignes, de trier par colonnes, de sommer les données, d'effectuer des calculs simples, d'utiliser des compteurs de valeurs et de convertir la sortie en formats CSV, JSON, TOML et YAML. Pour les données non structurées (textes), des instructions sont proposées pour diviser en colonnes et lignes sur la base de caractères délimiteurs.
Source : opennet.ru
