En bref / Points clés
- Fatigué de vous battre avec les commandes maladroites de PowerShell ?
- Microsoft vient de publier un ensemble natif d'outils UNIX qui vous feront vous sentir comme chez vous sur Windows.
La ligne de commande que vous attendiez
Les développeurs Windows sont constamment confrontés à des frictions avec les commandes PowerShell verbeuses. La mémoire musculaire exige `ls`, `cat`, `cp`, mais le système requiert `Get-ChildItem`, `Get-Content`, `Copy-Item`. Cette disparité force un changement de contexte, entravant le flux de travail et gaspillant un temps précieux à traduire des commandes UNIX concises en de longs cmdlets PowerShell. Une expérience de ligne de commande native et familière manquait cruellement.
Microsoft offre désormais la solution définitive : Microsoft Coreutils. Ce port natif, maintenu par Microsoft, du projet uutils/coreutils comble directement le fossé de la ligne de commande. Basé sur une réimplémentation en Rust de GNU Coreutils, il s'exécute nativement dans votre environnement Windows, ne nécessitant ni WSL ni couche de virtualisation. Obtenez de puissantes fonctionnalités UNIX sans surcoût.
Installez avec `WinGet install Microsoft.Coreutils` et débloquez instantanément une suite de commandes essentielles. Accédez à des outils familiers tels que : - `cat` - `grep` - `find` - `xargs` - `sort` Ceux-ci fonctionnent directement à l'intérieur de votre Windows Terminal existant. Cela offre une productivité immédiate, exploitant votre mémoire musculaire UNIX établie avec les mêmes drapeaux, pipes et scripts que vous avez déjà écrits pour Linux ou WSL. Votre ligne de commande vient de recevoir une mise à niveau significative.
Votre mémoire musculaire est de retour
Récupérez votre mémoire musculaire de la ligne de commande. Installez Microsoft.Coreutils avec une simple commande : `WinGet install Microsoft.Coreutils`. Ce package est une version maintenue par Microsoft du projet uutils/coreutils, une réimplémentation en Rust de GNU Coreutils. Vous accédez immédiatement à des exécutables essentiels de style UNIX comme `cat`, `grep`, `find`, `xargs` et `sort`, tous fonctionnant nativement sur Windows sans couche de virtualisation. Cela apporte vos commandes préférées directement à CMD ou PowerShell.
Exécutez des scripts puissants avec les mêmes drapeaux et pipes sur lesquels vous comptez sous Linux ou WSL. Par exemple, trouvez tous les fichiers TypeScript contenant une chaîne 'TODO' spécifique en utilisant `find . -name "*.ts" | xargs grep "TODO"`. Cette commande fonctionne précisément comme vous l'attendez, démontrant que vos scripts existants et votre mémoire musculaire se traduisent parfaitement. On a l'impression que rien n'a changé, et c'est le but.
Protégez votre héritage. Microsoft a regroupé des ports des commandes DOS originales `sort` et `find` aux côtés des nouvelles versions Unix. Cette conception intelligente évite les ruptures dans les anciens scripts CMD qui reposent sur la syntaxe de style DOS, leur permettant de s'exécuter simultanément. Les commandes DOS traditionnelles et les commandes Unix modernes coexistent désormais, offrant une compatibilité ascendante complète sans compromis.
Les pièges PowerShell à éviter
Les alias intégrés de PowerShell créent un piège critique. Des commandes comme `ls`, `cat` et `rm` maintiennent la précédence, exécutant les cmdlets natifs de PowerShell plutôt que les exécutables Coreutils nouvellement installés. Appeler `ls` invoque toujours `Get-ChildItem` en coulisses. Pour accéder à la commande UNIX, vous devez appeler explicitement `ls.exe` ou effacer l'alias PowerShell existant pour cette commande.
Anticipez les limitations avec le piping. Le pipeline basé sur les objets de PowerShell peut corrompre les flux binaires lors de l'interaction avec des exécutables natifs. Par exemple, des commandes telles que `xargs` et `find` peuvent rencontrer des problèmes avec leur entrée ou sortie attendue, car la gestion de la sortie de PowerShell entre souvent en conflit avec leurs attentes de flux binaire. Cela peut entraîner un comportement inattendu ou une corruption des données.
Comprenez qu'il ne s'agit pas d'un environnement POSIX complet. Des commandes cruciales comme `chmod` et `chown` sont entièrement absentes, non simulées ou émulées. Windows gère les permissions de fichiers via des listes de contrôle d'accès (ACLs), fondamentalement différentes des bits de permission utilisés dans les systèmes de type UNIX. Vous ne pouvez pas manipuler directement les permissions POSIX ; ce sont des binaires natifs, pas un environnement Linux complet.
Tueur de WSL ? Pas tout à fait.
Coreutils fournit des GNU Coreutils robustes à Windows, mais ce n'est pas un remplacement de WSL. Comprenez cette distinction : Coreutils fournit des binaires natifs, améliorant la ligne de commande Windows existante pour plus de commodité et un accès direct à des commandes familières de type Unix, et non une émulation complète d'environnement Linux. Surtout, ne vous attendez pas à ce que des fonctionnalités POSIX comme `chmod` ou `chown` fonctionnent ; celles-ci sont intentionnellement omises, car Windows s'appuie sur les ACLs, et non sur les bits de permission, ce qui signifie que cet outil simplifie votre flux de travail sans virtualiser un OS entier.
Enjoying this? Get one like it in your inbox each morning.
one email a day · unsubscribe in two clicks · no third-party tracking
Idéal pour les scripts rapides au quotidien, Coreutils excelle dans l'automatisation des tâches où une instance WSL complète introduit une surcharge inutile. Exécutez des commandes familières en une ligne comme `find . -name "*.ts" | xargs grep "TODO"` directement dans PowerShell ou CMD, permettant une manipulation rapide des fichiers, le traitement de texte et le filtrage de données à l'aide de commandes que vous connaissez déjà, sans changement de contexte. Intégrez ces commandes de manière transparente dans les scripts batch ou les flux de travail PowerShell existants.
La publication de Coreutils par Microsoft représente un changement stratégique significatif, non pas une simple commodité, mais un engagement clair à améliorer l'expérience de développement native sur Windows. En fournissant des outils Unix maintenus par Microsoft sur Windows, l'écart entre les plateformes se réduit considérablement, offrant aux développeurs un accès immédiat à une mémoire musculaire multiplateforme. Cela fait de Windows un environnement plus puissant et polyvalent pour le développement moderne, soulignant le dévouement de Microsoft à un écosystème ouvert et intégré.
Questions fréquemment posées
Qu'est-ce que Microsoft Coreutils ?
C'est un package d'utilitaires de ligne de commande UNIX natifs pour Windows, maintenu par Microsoft, basé sur une réimplémentation moderne en Rust des classiques GNU Coreutils.
Ai-je encore besoin de WSL après avoir installé Coreutils ?
Oui, pour un environnement Linux complet. Coreutils fournit des binaires de commande spécifiques mais n'est pas un système complet conforme à POSIX avec des fonctionnalités comme la gestion des permissions (`chmod`).
Comment utiliser la vraie commande `ls` au lieu de l'alias PowerShell ?
Vous devez soit appeler l'exécutable directement (`ls.exe`), soit supprimer l'alias PowerShell pour `ls` en utilisant la commande `Remove-Item alias:ls` dans votre session ou votre profil.
Est-ce mieux que Git Bash ?
C'est différent. Coreutils fournit des binaires Windows natifs qui s'intègrent directement dans CMD ou PowerShell, tandis que Git Bash fournit un environnement d'émulation Bash séparé.
