
nushell v0.115.0
Un nouveau type de shell
Nushell
Un nouveau type de shell.

Table des matières
- Statut
- Apprendre Nu
- Installation
- Configuration
- Philosophie
- Objectifs
- Officiellement pris en charge par
- Contribuer
- Licence
Statut
Ce projet a atteint un niveau de qualité de produit minimum viable. De nombreuses personnes l'utilisent au quotidien, mais il peut être instable pour certaines commandes. La conception de Nu est susceptible d'évoluer à mesure qu'il mûrit.
Apprendre Nu
Le livre Nushell est la source principale de documentation de Nushell. Vous pouvez trouver une liste complète des commandes Nu dans le livre, et nous avons de nombreux exemples d'utilisation de Nu dans notre cookbook.
Nous sommes également actifs sur Discord ; venez discuter avec nous !
Installation
Pour installer Nu rapidement :
# Linux and macOS
brew install nushell
# Windows
winget install nushell
Pour utiliser Nu dans GitHub Action, consultez setup-nu pour plus de détails.
Des instructions d'installation détaillées se trouvent dans le chapitre d'installation du livre. Nu est disponible via de nombreux gestionnaires de paquets :
Pour plus de détails sur les plateformes que l'équipe Nushell prend activement en charge, consultez notre politique de prise en charge des plateformes.
Configuration
Les configurations par défaut se trouvent dans sample_config, qui sont les fichiers de configuration obtenus lors du premier démarrage de Nushell.
Il définit toute la configuration par défaut pour exécuter Nushell. À partir de là, on peut ensuite personnaliser ce fichier selon ses besoins spécifiques.
Pour voir où se trouve config.nu sur votre système, tapez simplement cette commande.
$nu.config-path
Veuillez consulter notre livre pour toute la documentation de Nushell.
Philosophie
Nu s'inspire de projets comme PowerShell, les langages de programmation fonctionnels et les outils CLI modernes. Plutôt que de considérer les fichiers et les données comme de simples flux de texte brut, Nu considère chaque entrée comme quelque chose de structuré. Par exemple, lorsque vous listez le contenu d'un répertoire, ce que vous obtenez est un tableau de lignes, où chaque ligne représente un élément de ce répertoire. Ces valeurs peuvent être transmises à travers une série d'étapes, dans une série de commandes appelée « pipeline ».
Pipelines
Sous Unix, il est courant de faire circuler des données entre des commandes pour décomposer une commande sophistiquée en plusieurs étapes. Nu va plus loin et s'appuie fortement sur l'idée de pipelines. Comme dans la philosophie Unix, Nu permet aux commandes d'écrire sur stdout et de lire depuis stdin. De plus, les commandes peuvent produire des données structurées (vous pouvez considérer cela comme un troisième type de flux). Les commandes qui fonctionnent dans le pipeline appartiennent à l'une des trois catégories suivantes :
- Les commandes qui produisent un flux (par exemple,
ls) - Les commandes qui filtrent un flux (par exemple,
where type == "dir") - Les commandes qui consomment la sortie du pipeline (par exemple,
table)
Les commandes sont séparées par le symbole pipe (|) pour indiquer un pipeline circulant de gauche à droite.
ls | where type == "dir" | table
# => ╭────┬──────────┬──────┬─────────┬───────────────╮
# => │ # │ name │ type │ size │ modified │
# => ├────┼──────────┼──────┼─────────┼───────────────┤
# => │ 0 │ .cargo │ dir │ 0 B │ 9 minutes ago │
# => │ 1 │ assets │ dir │ 0 B │ 2 weeks ago │
# => │ 2 │ crates │ dir │ 4.0 KiB │ 2 weeks ago │
# => │ 3 │ docker │ dir │ 0 B │ 2 weeks ago │
# => │ 4 │ docs │ dir │ 0 B │ 2 weeks ago │
# => │ 5 │ images │ dir │ 0 B │ 2 weeks ago │
# => │ 6 │ pkg_mgrs │ dir │ 0 B │ 2 weeks ago │
# => │ 7 │ samples │ dir │ 0 B │ 2 weeks ago │
# => │ 8 │ src │ dir │ 4.0 KiB │ 2 weeks ago │
# => │ 9 │ target │ dir │ 0 B │ a day ago │
# => │ 10 │ tests │ dir │ 4.0 KiB │ 2 weeks ago │
# => │ 11 │ wix │ dir │ 0 B │ 2 weeks ago │
# => ╰────┴──────────┴──────┴─────────┴───────────────╯
Comme la plupart du temps vous voudrez voir la sortie d'un pipeline, table est supposé.
Nous aurions aussi pu écrire ce qui précède :
ls | where type == "dir"
Pouvoir utiliser les mêmes commandes et les composer différemment est une philosophie importante dans Nu.
Par exemple, nous pourrions utiliser la commande intégrée ps pour obtenir une liste des processus en cours d'exécution, en utilisant le même where que ci-dessus.
ps | where cpu > 0
# => ╭───┬───────┬──────┬───────────┬──────┬─────────┬───────┬────────────┬──────────╮
# => │ # │ pid │ ppid │ name │ user │ status │ cpu │ cpu_time │ mem │
# => ├───┼───────┼──────┼───────────┼──────┼─────────┼───────┼────────────┼──────────┤
# => │ 0 │ 2240 │ 9872 │ Slack.exe │ dev │ Running │ 16.40 │ 1min 12sec │ 178.3 MB │
# => │ 1 │ 16948 │ 9872 │ Slack.exe │ dev │ Running │ 16.32 │ 48sec │ 205.0 MB │
# => │ 2 │ 17700 │ 4632 │ nu.exe │ dev │ Running │ 3.77 │ 2sec │ 26.1 MB │
# => ╰───┴───────┴──────┴───────────┴──────┴─────────┴───────┴────────────┴──────────╯
Ouverture de fichiers
Nu peut charger le contenu de fichiers et d'URL sous forme de texte brut ou de données structurées (s'il reconnaît le format). Par exemple, vous pouvez charger un fichier .toml sous forme de données structurées et l'explorer :