Sous Windows, la comparaison PowerShell vs Bash devient intéressante – Un bon serveur Minecraft
Les mises à jour du sous-système Windows pour Linux, ainsi que de PowerShell Core, sont configurées pour secouer les comparaisons PowerShell et Bash.
Microsoft s'est associé au fournisseur Linux Canonical Ltd. pour transférer Bash (Bourne Again Shell) à Windows en 2016. L'intégration de Bash à l'environnement Windows permet aux utilisateurs de renoncer au double démarrage avec le système d'exploitation Ubicalu de Canonical pour obtenir des fonctionnalités Linux natives. Les administrateurs Windows familiarisés avec les scripts peuvent se demander si Bash sous Windows remplace PowerShell, qui est similaire aux systèmes Unix et Linux et fournit également une connectivité OpenSSH via le protocole Secure Shell.
Le sous-système Windows pour Linux (WSL) existe depuis plusieurs années et les développeurs l'ont rapidement adopté. Les améliorations apportées à WSL facilitent l'installation de plusieurs distributions Linux en fonction des besoins, prennent en charge les fins de ligne Linux dans le Bloc-notes et lancent un shell Linux à partir de l'explorateur de fichiers. Auparavant, les administrateurs pouvaient installer Cygwin Bash pour utiliser le shell dans Windows, mais cela n'offrait pas une expérience native de Bash ni une intégration adéquate avec Windows. En tant que tel, WSL offre le meilleur des deux mondes et offre une expérience améliorée.
Windows 10 version 1903 améliore et étend davantage WSL, avec la possibilité, par exemple, de naviguer dans le système de fichiers Linux dans l'explorateur de fichiers. Ces mises à jour font partie de WSL 2, une architecture WSL mise à jour avec un véritable noyau Linux s'exécutant sous Windows. WSL 2 permet une compatibilité totale des appels système. Ainsi, non seulement WSL et Windows sont étroitement intégrés, mais les performances du système sont également meilleures.
Différences entre Bash et PowerShell
But et portée. PowerShell est un outil de gestion de la configuration qui intègre les fonctionnalités du contrôle d'interface de ligne de commande Linux dans l'environnement Windows historiquement par pointer-cliquer afin de gérer efficacement les serveurs Windows dans des déploiements virtuels. Les administrateurs peuvent gérer les charges de travail du serveur Windows ou héberger des charges de travail Linux de production et des applications serveur via PowerShell.
Bash, en revanche, convient plus traditionnellement aux environnements de développement. Il a été introduit pour compléter et renforcer l’interaction fondée sur la CLI. Avec l'ajout de Bash à Windows, le code que les développeurs ou les ingénieurs d'infrastructure écrivent pour Linux fonctionne également sur leurs systèmes Windows. Imaginez les premiers outils Linux – Python, Ruby, Git – qui sont courants dans les magasins DevOps fonctionnant directement sous Windows.
Syntaxe. PowerShell n'est pas qu'un simple shell; c'est un environnement de script complet. PowerShell appelle des commandes légères appelées cmdlets au moment de l'exécution via des scripts automatisés ou des API. Bien que PowerShell ne les appelle pas, les anciennes commandes du système d’exploitation du disque fonctionnent toujours bien. PowerShell utilise des alias, qui pointent les anciennes commandes vers les nouvelles correspondantes. le Get-Alias La cmdlet vous donne une liste de tous les alias dans PowerShell.
Les commandes ls -la dans Bash et dir PowerShell contient deux concepts CLI distincts, mais la sortie n’est pas très différente. La figure 1 montre la sortie de PowerShell dir commandes et comment une liste de répertoires s’affiche dans PowerShell. La sortie se présente sous la forme d'objets de fichier avec des propriétés, telles que la date de création et la taille, répertoriées à côté des fichiers.
En revanche, la sortie Bash de la figure 2 se présente sous la forme d'un ensemble de chaînes, qui sont les représentations textuelles des noms de fichiers. Le résultat final est particulièrement important: les scripts que vous écrivez prennent les données renvoyées et les transmettent à une autre fonction ou les utilisent pour effectuer une action.
PowerShell s'appuie sur un pipeline d'objets. Il dirige les objets, en passant le résultat d'une applet de commande comme entrée pour un autre. Les mêmes données peuvent être manipulées avec plusieurs cmdlets en séquence. En canalisant les objets, les scripts PowerShell partagent des données complexes, en passant des structures de données entières entre les commandes. Bash, quant à lui, transmet la sortie et l'entrée en texte brut, ce qui signifie qu'il est facile pour l'utilisateur de déplacer des informations vers le programme suivant.
La sortie PowerShell de la figure 3 montre comment une entrée de répertoire contient une multitude de propriétés. Utilisez la commande Get-ChildItem | Select-Object * -Premier 1 pour afficher les nombreuses propriétés disponibles sur un seul objet système de fichiers.
Capacités. PowerShell permet aux administrateurs de modifier le registre, de gérer le courrier électronique Microsoft Azure Cloud et Exchange ou d'effectuer Windows Management Instrumentation. Le shell Bash et le langage de commande n'offrent pas ces fonctionnalités sous Windows. En tant qu'outil de développement sous Windows, les utilisateurs peuvent toutefois coder et créer des fonctions ou des services tout en travaillant sur les mêmes fichiers à partir de la CLI de Linux et de Windows.
PowerShell facilite l'accès aux valeurs de registre et aux propriétés de fichier à l'aide d'une syntaxe commune. Le traitement XML est également simple.
La valeur de PowerShell vs. Bash revient à l'utilisateur. Si vous travaillez sur plusieurs systèmes Windows, Bash n’est guère utile; vous aurez besoin de PowerShell pour écrire des scripts. Les administrateurs ne peuvent pas accéder aux fichiers Linux locaux avec des applications Windows, telles que le Bloc-notes Windows, via Bash.
Apprenez à utiliser le pipeline PowerShell avec l'auteur Adam Bertram.
Bien que Bash soit idéal pour gérer les fichiers texte dans un environnement de script, tout est géré via des API, pas des fichiers. Donc, Bash est principalement utile pour importer du code Linux sur des machines Windows et développer ce code.
Pour gérer les charges de travail Windows, PowerShell est efficace avec son infrastructure .NET et son intégration COM +. De nombreuses fonctionnalités modulaires et orientées objet installées avec PowerShell étendent les fonctionnalités de l'outil pour gérer les tâches Windows centrées sur Active Directory, Exchange Server et SQL Server. VMware est également géré facilement via PowerShell. La CLI dispose de bonnes fonctions de traçage et de débogage. Les utilisateurs disposent de plusieurs environnements de développement intégrés pour coder et tester des programmes.
Auparavant, PowerShell ne pouvait pas concurrencer Bash sous Linux. Bash dispose d'un écosystème d'outils conçus à partir de zéro avec Linux en tête. Avec l'avènement de PowerShell Core, toutefois, tout cela a changé. PowerShell peut être exécuté en tant que shell principal sous Linux contenant toutes les propriétés d'objet pour lesquelles PowerShell est célèbre.
Courbe d'apprentissage des administrateurs pour PowerShell vs. Bash
PowerShell traite beaucoup de scripts. Si vous êtes issu d’un environnement Unix / Linux, cet outil semble familier. Toutefois, pour les adhérents à l’interface utilisateur graphique Windows, la courbe d’apprentissage est abrupte. PowerShell Core, actuellement à la version 6 et proche de la version 7 au moment de la publication de la mise à jour, contient des centaines d'applets de commande, chacune avec une variété de paramètres et la possibilité unique de s'exécuter sur différents systèmes d'exploitation.
Bash sous Windows comprend moins de 40 fonctions internes et environ 100 programmes d’aide. Avec une syntaxe plus fine, Bash est plus rapide, mais PowerShell présente l'avantage d'une structure de syntaxe cohérente. Si vous débutez, il vous faudra un certain temps pour exploiter pleinement la portée de PowerShell. Les utilisateurs familiarisés avec l'outil déploient, gèrent et réparent des centaines de systèmes depuis n'importe quel emplacement distant, automatisent les runbooks et utilisent des fichiers de script PowerShell basés sur C # pour automatiser des tâches répétitives.
Commentaires
Laisser un commentaire