Microsoft ajoute des commandes Linux pour que vous puissiez les utiliser nativement sous Windows (sans blague)

Ceux d'entre vous qui sont plutôt des vétérans se souviennent sûrement encore du rejet initial, il y a quelques années, par Microsoft contre tout ce qui le concernait logiciel libre. Bien entendu, cela inclut Systèmes d'exploitation Linux et Unix que peu à peu ils ont accepté comme alliés.

Beaucoup d'entre vous sont peut-être déjà habitués à utiliser le outil WSL que l'on retrouve nativement dans Windows. Mais il semble que le géant de la technologie aille désormais plus loin. Nous vous disons tout cela car Microsoft vient d'incorporer officiellement diverses commandes Linux bien connues et utilisées dans son Windows.

Plus précisément, il s'agit d'une série de utilitaires Windows de base basés sur Rust qui sont en cours de développement. Nous parlons de commandes aussi connues et courantes dans ces environnements open source que ls, grep, cat, cp ou find. Ce sont en fait les mêmes commandes qui alimentent les systèmes Linux depuis des décennies et qui sont désormais disponibles nativement sur Windows. Tout cela avec la maintenance de Microsoft lui-même.

Ces commandes peuvent être considérées comme des éléments fondamentaux sur lesquels s'appuient tous les systèmes Linux pour les opérations de base sur les fichiers, le traitement de texte et scripts shell. En fait, on peut dire que des millions de scripts et de workflows en dépendent. Une fois que nous saurons cela, vous trouverez sûrement pour le moins curieux que Microsoft distribue et maintienne désormais une version de ceux-ci pour Windows de manière native.

Et non, ce n’est pas WSL, c’est-à-dire que vous n’avez pas besoin d’un sous-système Linux exécuté en arrière-plan.

Voici comment fonctionnent les commandes Linux sous Windows

On peut dire que ces commandes Linux sont exécutées nativement sous Windows avec les mêmes options et comportement que sous Linux. Fondamentalement, l'objectif principal de Microsoft est de réaliser une transition en douceur entre Linux, macOS, WSL, les conteneurs et le système Windows lui-même.

Cela permettra à la fois aux utilisateurs finaux et aux développeurs ou aux entreprises d'écrire un script une seule fois et de l'exécuter n'importe où, par exemple. Ainsi, le forfait comprend uutils/coreutilsune version Rust moderne de ceux-ci utilitaires GNU de base, findutils et grepen un seul fichier binaire avec plusieurs appels.

Dans le même temps, chaque commande prend en charge plusieurs options standard avec les mêmes paramètres et pipelines, sans aucune conversion.

Commandes Linux pouvant être utilisées sous Windows via le Terminal. Photo : GitHub.

Pour l’instant, la seule chose que nous devons garder à l’esprit est qu’il s’agit d’un projet qui est encore en phase d’avant-première. De plus, il ne dispose pour l'instant que d'un nombre limité de commandes, elles vont donc augmenter dans les mois à venir. Étant donné que certains d'entre eux portent le même nom sous Linux et Windows, il existe un risque de conflit.

Si vous souhaitez savoir par vous-même quels utilitaires Windows de base sont disponibles, il est préférable de jeter un œil à son référentiel GitHub officiel via ce lien.

Par exemple, nous constatons qu'il existe des colonnes distinctes pour la fenêtre d'invite de commande (CMD) et PowerShell. Cela signifie que certaines commandes fonctionnent uniquement dans l'invite de commande, mais pas dans PowerShell, et vice versa. Nous pouvons confirmer qu'il s'agit d'un projet qui est actuellement en plein développement et en cours et qui devrait être amélioré prochainement.

Questions fréquemment posées sur les nouvelles commandes Linux sous Windows

Quelle est la différence entre ces commandes natives et WSL ?

Contrairement à WSL (Windows Subsystem for Linux), ces commandes s'exécutent directement sur Windows sans avoir besoin d'un sous-système en arrière-plan ou d'une machine virtuelle. Ce sont des binaires autonomes écrits en Rust.

Quelles commandes Linux puis-je déjà utiliser dans l’invite de commande ?

L'implémentation initiale comprend des outils de gestion de fichiers et de textes de base populaires tels que ls, grep, cat, cp et find, intégrés via le projet uutils/coreutils.

Pourquoi le langage Rust a-t-il été utilisé pour son développement ?

Microsoft a opté pour des versions modernes basées sur Rust pour garantir la sécurité et les performances de la mémoire, suivant la tendance à moderniser les principaux utilitaires GNU.

Ces commandes fonctionnent-elles de la même manière dans CMD que dans PowerShell ?

Il existe actuellement une scission : certains utilitaires sont disponibles pour l'invite de commande (CMD) mais présentent des incompatibilités ou ne fonctionnent pas dans PowerShell, et vice versa. C'est un aspect en cours de développement.

Ces commandes peuvent-elles entrer en conflit avec les commandes Windows ?

Oui, étant donné que certaines commandes partagent des noms sur les deux systèmes, Microsoft prévient qu'il pourrait y avoir des conflits d'exécution lors de cette phase de prévisualisation.