Nushell : un Shell multi plates-formes moderne

Par:
fredericmazue

mer, 13/09/2023 - 12:41

Nushell, ou nu de son petit nom, est un Shell écrit en Rust conçu pour fonctionner sur Linux, macOS, BSD et Windows, tout en apportant des fonctionnalité nouvelles et modernes. Le but de ce projet est de reprendre la philosophie Unix des shells, où les pipelines connectent des commandes simples entre elles, et de l'adapter au style de développement moderne. Ainsi, plutôt que d'être un shell ou un langage de programmation, Nushell connecte les deux en réunissant un langage de programmation riche et un shell complet dans un seul package.

Nu s'inspire de nombreux territoires familiers : des shells traditionnels comme bash, des shells basés sur des objets comme PowerShell, des langages progressivement typés comme TypeScript, la programmation fonctionnelle, la programmation système, etc.

Nushell fonctionne sur la base de pipelines qui utilisent des données structurées afin que vous puissiez sélectionner, filtrer et trier. Nushell comprend de nombreux formats de données : JSON, YAML, SQLite, Excel, etc., et même NUON, un format conçu par le projet Nushell et qui est un sur-ensemble de JSON. Ainsi toute donnée JSON est compatible avec NUON.

L'un des atouts les plus puissants de Nushell pour travailler avec des données est la commande open. Il s'agit d'un multi-outil qui peut fonctionner avec un certain nombre de formats de données différents. Voici par exemple l'ouverture d'un fichier JSON :

Si l'on veut accéder directement à la version du fichier :

> open editors/vscode/package.json | get version
1.0.0

Nushell modernise les commandes classiques : par exemple ls :

Et il est même capable d'ouvrir des fichiers distants

Nushell se disntingue par d'excellents messages d'erreur. En effet, il fonctionne sur des données typées, il détecte donc les bugs que les autres shells ne détectent pas. Et quand les choses se cassent, Nushell vous dit exactement où et pourquoi :

Nushell est un outil qui mérite vraiment d'être découvert. C'est un logiciel libre sous licence MIT, disponible sur GitHub.

Nushell est entièrement documenté sur son site officiel.