Retour aux mises à jour
New releaseAug 30, 2026

nushell v0.115.0

Un nouveau type de shell

Partager

Nushell

Crates.io Build Status Nightly Build Discord The Changelog #363 GitHub commit activity GitHub contributors

Un nouveau type de shell.

Exemple de nushell

Table des matières

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 :

Packaging status

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 :

Catégories