PowerShell vs Bash : principales différences à connaître
Si vous possédez la moindre familiarité avec les émulateurs de terminaux sur ordinateurs, vous avez probablement entendu parler de Bash de Linux et de PowerShell de Microsoft. Ces deux éléments sont omniprésents dans la vie des professionnels spécialisés dans l’un ou l’autre des systèmes d’exploitation. Cependant, si vous ne vivez pas votre vie quotidienne devant une invite de shell, vous n’avez probablement pas beaucoup réfléchi à la façon dont les deux se compareraient. Dans ce cas, il n’y a jamais eu de meilleur moment pour apprendre !
Qu’est-ce que PowerShell
Microsoft a introduit Powershell en 2006 pour agir comme une interface de ligne de commande qui s’exécute sur un cadre de script polyvalent et puissant. Il a été conçu pour aider les administrateurs Windows à créer de petites applications qui utilisent des « commandlets » (connus officiellement sous le nom de « cmdlets ») pour automatiser une grande partie de leur travail.
Plus important encore, sa structure de commande et sa « scriptibilité » représentent une refonte complète de l’ancien MS-DOS sur lequel Windows a été construit à l’origine. Il a une syntaxe plus uniforme et une manière de présenter les informations faciles à s’habituer et à coder.
Cela ne vise pas à remplacer la ligne de commande Windows que la plupart des gens ont l’habitude d’exécuter, mais la complète plutôt avec ses propres fonctions d’automatisation et de configuration. Par exemple, si vous essayez de gérer un service Microsoft Azure sur le cloud, vous pouvez désormais le faire avec la Connect-AzAccount
commande au lieu d’utiliser une session de bureau à distance.
Comme Bash, PowerShell est entièrement auditable, ce qui permet une utilisation dans des environnements très sensibles où il est essentiel de savoir tout ce qui se passe dans le système.
Qu’est-ce que Bash
Bash est le grand-père de 1989 qui reste pertinent dans les environnements Linux, quels que soient tous les shells plus sophistiqués qui ont tenté de l’éclipser. Tout comme PowerShell, Bash fournit un cadre avec lequel écrire des scripts pour automatiser l’administration beaucoup plus facilement.
Parce que sa structure de commande et sa syntaxe sont omniprésentes parmi diverses distributions Linux, BSD et même macOS, de nombreux développeurs se sont habitués à utiliser Bash comme référence pour organiser leurs projets.
Bien que Bash contienne une suite d’opérations de base qui vous permet d’écrire des scripts et de relayer des informations via le terminal, presque chaque commande que vous tapez dans un terminal avec ce shell est un programme séparé. Par exemple, Bash n’inclut pas les commandes ls
(list files) ou cat
(concatener ou afficher la sortie d’un fichier), mais recherche à la place des exécutables du même nom dans des chemins spécifiés.
Powershell contre Bash : Différences
PowerShell et Bash peuvent sembler similaires lorsque vous apprenez à les utiliser pour la première fois, mais ce sont essentiellement des bêtes complètement différentes avec des philosophies de conception qui se heurtent parfois. Voici quelques éléments très cruciaux qui les distinguent :
1. Contrôle d’accès utilisateur
Si jamais vous voulez faire quelque chose d’administratif avec Bash, tout ce que vous avez à faire est de faire précéder votre commande de sudo . Une fois la commande effectuée, vous êtes immédiatement ramené au shell utilisateur. L’exécution d’une commande root laisse moins de place à l’erreur et vous oblige à revoir ce que vous faites.
PowerShell, en revanche, ne peut s’exécuter qu’en mode administratif ou utilisateur. Si vous souhaitez basculer entre eux, vous devez ouvrir une nouvelle session. Pour ouvrir PowerShell en mode administratif, vous devez cliquer avec le bouton droit sur l’icône du programme et cliquer sur « Exécuter en tant qu’administrateur ». Alternativement, dans une session de terminal, vous pouvez simplement taper Start-Process powershell -verb runAs
et cela ouvrira une deuxième session avec des privilèges administratifs.
2. Sortie
Lorsque vous tapez une commande dans Bash, vous exécutez essentiellement un programme séparé, et cet exécutable vous donnera le résultat souhaité. La façon dont la sortie est formatée dépend de la façon dont le développeur de ce programme particulier voulait qu’elle soit formatée.
Il y a beaucoup de flexibilité ici, ce qui est formidable, mais l’inconvénient est un manque d’uniformité.
La sortie de commande dans PowerShell est généralement formatée sous une seule norme unifiée. Le texte que vous voyez à l’écran est une version lisible par l’homme des données qui peuvent être interprétées par d’autres programmes.
Cela permet aux personnes qui écrivent des scripts et des applications d’utiliser simplement les propres fonctionnalités et commandes de PowerShell pour récupérer toutes les informations dont elles ont besoin.
3. Syntaxe
Bash utilise une syntaxe très unique (par exemple, if [condition]; then code here; fi
) qui n’est généralement pas vue dans d’autres langages de script. Ce n’est pas incroyablement difficile à utiliser, mais cela peut être un peu non conventionnel pour quelqu’un qui commence tout juste à apprendre à écrire des scripts.
En ce qui concerne les commandes utilisateur, il n’y a pas d’uniformité claire. Chaque programme est livré avec sa propre syntaxe de commande. Vous devez savoir les utiliser avant de pouvoir les intégrer dans votre script bash.
La syntaxe de script de PowerShell est similaire à n’importe quelle autre. NET (par exemple, if (condition) {. ..code here... }
). Pour les personnes habituées à développer au sein du propre écosystème de Microsoft, il n’y a presque pas de courbe d’apprentissage impliquée.
Les commandes utilisateur suivent une structure rigide : un verbe, suivi d’un tiret, suivi d’un nom. Par exemple, Get-ChildItem
listera tous les fichiers du répertoire courant. Les commandes qui ne sont pas spécifiques à PowerShell peuvent toujours suivre une structure similaire à Bash. Si vous l’utilisez sous Linux, vous pourrez toujours exécuter toutes les commandes Linux.
4 : Flexibilité
Si vous maîtrisez Bash, vous saurez comment utiliser les environnements de terminaux d’innombrables distributions Linux, l’écosystème BSD et même macOS. C’est de loin le roi de l’universalité. Bien que macOS soit passé à zsh en 2019, il a toujours l’esprit Bash en son cœur.
PowerShell est capable de fonctionner dans pratiquement n’importe quel système d’exploitation, mais il est principalement destiné à fonctionner avec les propres produits de Microsoft. Si vous l’utilisez, vous le faites très probablement dans Windows.
Si tout ce que vous apprenez, ce sont les conventions spécifiques à PowerShell, vous allez essentiellement être coincé sur une île avec les produits Microsoft. Bien que cela ne soit pas nécessairement le cas, il est impossible d’échapper au fait que la coque ne brille vraiment que dans cette situation. En ce qui concerne les inconvénients, cependant, c’est celui qui vient avec une énorme part de la part de marché mondiale des ordinateurs de bureau.
Questions fréquemment posées
Puis-je exécuter bash sous Windows et PowerShell sous Linux ?
Pour exécuter bash dans Windows, installez simplement le sous-système Windows pour Linux en exécutant une invite de commande en tant qu’administrateur et en tapant wsl --install
. Vous aurez un accès instantané aux commandes bash une fois l’installation terminée.
PowerShell dans Linux est un peu plus délicat et dépend de la distribution. Microsoft inclut des instructions sur son site Web pour installer PowerShell sur les distributions les plus populaires. Vous remarquerez peut-être qu’Arch Linux est absent de cette liste, mais il existe en tant que powershell
package dans l’AUR.
Ai-je besoin de Bash sous Windows ?
Pas nécessairement, mais cela vous aidera beaucoup si vous envisagez d’utiliser des éléments plus conçus pour Linux (Python, Git, etc.). L’avoir autour ne pouvait pas faire de mal. L’utilisation du sous-système Windows pour Linux pour installer Bash vous permet également d’expérimenter un shell Linux complet, ce qui est un excellent moyen de vous présenter à l’environnement d’exploitation si vous n’êtes pas familier.
Les commandes Windows DOS fonctionnent-elles dans PowerShell ?
Ils le font généralement. PowerShell ne remplace pas l’invite de commande Windows d’origine. Au lieu de cela, c’est une couche qui fonctionne au-dessus pour fournir de nouvelles fonctionnalités. Vous ne manquerez probablement rien si vous utilisez simplement PowerShell au lieu du cmd.exe éprouvé.
Laisser un commentaire