The Linux mascot next to the PowerShell logo with PowerShell open in the background.
Agence web » Actualités du digital » Pourquoi je préfère WSL à PowerShell pour la ligne de commande Windows

Pourquoi je préfère WSL à PowerShell pour la ligne de commande Windows

Sur Windows, lorsque je veux une ligne de commande, je peux choisir entre le PowerShell natif ou installer le sous-système Windows pour Linux. Je préfère ce dernier lorsque je suis sous Windows. Voici pourquoi j'atteins une coque Linux au lieu de PowerShell.

Je suis plus familier avec Linux

L'une des raisons pour lesquelles je suis resté avec WSL sur Windows, au point que je l'installe sur chaque nouvelle machine Windows que j'obtiens, au lieu de PowerShell, c'est que je trouve que le paradigme entier de Linux et Unix est plus familier. J'ai utilisé MS-DOS dans les années 90 et je lançais une invite de commande occasionnelle sur les versions antérieures de Windows, mais en termes de ligne de commande, c'est Unix qui a capturé mon imagination, avec toutes ses commandes de LS, PWD et CD étranges.

Ce voyage a commencé, curieusement, sur le Mac, qui était et est la première plate-forme pour créer des médias lorsque je gagnais mon diplôme de communication. Un jour, j'ai décidé d'explorer le macOS, ou plutôt, Mac OS X, terminal. C'est là que j'ai appris à naviguer dans l'arborescence du répertoire et à créer des fichiers dans VIM. Je semble être l'une des rares personnes qui sait comment sortir de VIM. Ou du moins je le ferais si je le voulais.

Armé des connaissances d'Unix, j'ai rapidement sorti mon CD Knoppix et je l'ai tiré, car je pouvais enfin le connecter à Internet maintenant qu'il était branché sur le routeur de l'aéroport (oui, Apple avait l'habitude de faire des routeurs, introduisant pratiquement le Wi-Fi au tour du millénaire). Cela m'a conduit sur la route de l'exploration des distros Linux, ce qui m'a finalement conduit à écrire pour HTG.

Ma connaissance de Linux et Unix semble trop précieuse à gaspiller pour apprendre quelque chose de très différent des autres coquilles de ligne de commande.

Powershell est bizarre

Je n'ai jamais pu comprendre pleinement PowerShell. Il semble essayer d'être radicalement différent du paradigme Unix et Linux traditionnel. Dans Linux, vous opérez sur du texte pur. L'entrée et la sortie du texte peuvent être redirigées dans d'autres programmes et fichiers. C'est ce qui donne le style UNIX de programmation de sa puissance et est un élément clé de la «philosophie UNIX».

PowerShell, en revanche, est construit pour être «orienté objet». Lorsque vous écrivez un pipeline dans PowerShell, vous travaillez sur un objet au lieu d'un flux de texte.

La syntaxe de ligne de commande a toujours semblé un peu trop verbeux à mon goût. J'apprécie comment Microsoft a « aliasé » certaines commandes communes dans les commandes MS-DOS et UNIX plus courtes. Il semble que Microsoft ait pu se rendre compte que cela pourrait également avoir été un problème.

Linux a plus de développeur MindShare

Linux, ou plutôt Unix, a non seulement capturé mon imagination, mais le reste de la communauté des développeurs. Procurez-vous n'importe quel livre de programmation, et il supposera probablement que vous utilisez un environnement de type Unix. Ce sera une installation Linux ou MacOS. Lisez les articles sur Hacker News. Les extraits de code de ligne de commande commencent souvent par un « $ » (signe dollar), indiquant l'invite d'utilisateur par défaut pour la plupart des shells de type Unix, s'il n'est pas un caractère « # » (hash), indiquant qu'une commande est censée être exécutée en tant que superutilisateur. Les systèmes de type UNIX, y compris MacOS, Ubuntu et d'autres systèmes Linux, sont fortement souhaités sur le sondage des développeurs de Stack Overflow.

Jetez un coup d'œil à l'ordinateur portable d'un développeur, et ils exécuteront soit un terminal macOS, soit une sorte de shell Linux. C'est la raison pour laquelle Microsoft a créé WSL en premier lieu: le paradigme Unix est omniprésent parmi les programmeurs. C'est ce que les développeurs apprennent dans leurs cours d'informatique au collège. C'est ce qu'ils construisent leurs projets pendant leur temps libre. Une génération de développeurs a coupé les dents sur des outils open source fonctionnant sur Linux et n'a aucun intérêt à coder sur .NET Tools.

Lorsque les développeurs créent un projet dans le monde réel, sur quoi vont-ils le construire, Linux ou PowerShell? Il est évident que ce sera le premier. C'est pourquoi, même sous Windows, je consacrerai plus mon énergie à en savoir plus du côté WSL de la clôture.

Si je veux suivre un livre ou un tutoriel pour apprendre un nouveau langage ou outil de programmation, je peux être convaincu que si je voulais le faire sur Windows, je pourrais tirer un terminal WSL et suivre. Je ne sais pas si je pouvais à partir d'un terminal PowerShell.

Linux semble plus portable

Bien que Microsoft souligne que PowerShell est un programme multiplateforme, l'ouvrir la source et le rendant disponible sur Linux, il n'est pas clair pourquoi quelqu'un voudrait utiliser PowerShell sur un système Linux.

Les coquilles Linux ont déjà l'avantage d'être installé sur les distributions Linux. Avec PowerShell, vous devez l'installer séparément du système. Si une distribution Linux le faisait jamais emballé sous forme de shell par défaut, je le testerais et le réviserais avec plaisir pour un futur article.

Même sur Windows, qui semble favoriser PowerShell, je peux obtenir un shell Linux. Cela est vrai depuis des années avant que WSL ne soit disponible. Cygwin, Mingw et Uwin ont pu offrir des capacités de type Unix sur Windows. Il n'y a pas eu beaucoup d'efforts pour porter l'invite de commande à Linux.

Avec ma connaissance de la ligne de commande Linux, je peux m'asseoir dans un système Linux, un Mac et bien sûr, un système Windows exécutant WSL et pouvoir exécuter des commandes hors de ma tête et même exécuter des scripts sans avoir à les changer. Je ne peux pas dire la même chose pour l'inverse.

La plupart des programmes de ligne de commande sont linux-premiers

En conséquence de la grande quantité de Mindshare que Linux tient sur le développeur MindShare, il semble que de nouveaux outils de ligne de commande soient écrits pour les systèmes de type Unix, en particulier Linux. Ce n'est pas surprenant étant donné combien de serveurs exécutent Linux.

De nouveaux serveurs, interprètes, débogueurs, éditeurs et clients IRC sont toujours écrits pour Linux. Ils semblent se faire plus lentement vers les fenêtres sur PowerShell. Lorsqu'ils atteignent les fenêtres, c'est généralement via WSL. Il y a probablement une raison technique à cela. Pendant de nombreuses années, Windows n'avait pas de véritable pseudoconsole, ce qui a rendu difficile le portage de nombreuses applications populaires basées sur les terminaux à Windows. C'était le projet WSL qui a été l'élan pour avoir finalement créé ce logiciel vital sur Linux, selon un article de blog Microsoft.

J'utilise WSL car je peux accéder aux outils sur lesquels je compte facilement.

Microsoft positionne PowerShell principalement comme un outil pour les administrateurs informatiques pour gérer les ordinateurs de bureau et les serveurs et moins comme un moyen d'exécuter des programmes réels dans le terminal, bien qu'ils aient fait des progrès en ajoutant des outils tels que OpenSSH à l'installation de Windows par défaut.

Je peux gérer Windows à partir de Linux

Alors que Microsoft prétend PowerShell comme moyen de gérer Windows à partir de la ligne de commande, en allant jusqu'à remplacer l'ancienne invite de commande, je peux faire beaucoup de choses que je pourrais utiliser PowerShell pour une installation WSL.

Les installations WSL rendent le système Windows accessible à partir de Linux à partir du répertoire / mnt. Cela signifie que pour mon installation Windows principale sur le C: Drive, je peux exécuter tous mes outils préférés à partir de Linux sur les répertoires et fichiers Windows. Il y a moins de raisons de faire face aux excentricités de PowerShell. Je peux également lancer des programmes Windows réguliers à partir de la ligne de commande Linux.

Je peux le faire avec tous mes outils préférés et mes programmes Linux que j'ai appris à connaître sur d'autres systèmes, tout en exécutant des applications grand public comme les jeux de Windows. Bien sûr, il y a plus de jeux sur Linux, et Proton continue de s'améliorer, mais il y aura encore quelques développeurs de traînées qui ne peuvent pas être dérangés de taper « faire » de leurs terminaux.


Étant donné que WSL m'est plus familier en tant qu'utilisateur de longue date de systèmes de type UNIX, je m'en tiendrai à PowerShell lorsque je serai sur un système Windows. C'est peut-être juste une familiarité, mais avec Linux si omniprésent dans le monde de la technologie, je serai probablement en bonne compagnie.

★★★★★