Eh bien, votre premier problème est que vous comparez un shell (PowerShell) à un terminal. Sous Linux, un terminal est quelque chose qui envoie et reçoit des E / S basées sur des caractères et est supposé avoir un utilisateur interactif derrière lui (en d’autres termes, c’est l’application GUI utilisée pour contenir une coquille). Un des coquillages les plus courants dans Le terminal d'Ubuntu est Frapper , mais il y en a d'autres.
Les gens hors ligne me disent, sans trop en dire, que Windows PowerShell est une tentative pour rendre les administrateurs Unix plus à l'aise avec Windows.
En réalité, la chose correcte à dire est que PowerShell est Windows exposant une grande partie de la WMI , COM et .NET modèle d'objet dans un environnement de ligne de commande interactif et scriptable - et que cet environnement de ligne de commande continue à emprunter de nombreux concepts - tels que les pipelines et la redirection d'E / S - à des shells Unix, tout comme l'ancien DOS (2.0 et versions ultérieures) command.com
et cmd.exe
fait. Les pipelines fonctionnent avec des objets dans PowerShell. Vous pouvez faire des choses comme créer du HTML et éventuellement Exceller feuilles de calcul à la volée si vous en savez assez. C'est certainement une mise à niveau / remplacement de l'ancien cmd.exe
shell qui n'a pas beaucoup changé de Windows NT 4.0 .
En ce qui concerne la syntaxe, cela ressemble moins aux shells Unix (bien que finalement aucune applet de commande /
comme commutateur ou indicateur de paramètre), mais il existe de nombreux alias pour les commandes Unix classiques - telles ls
dans une fenêtre PowerShell fonctionnera comme dir
. Mais ce ne sont que des alias ("Get-Alias" les énumère?).
En ce qui concerne les capacités de PowerShell, vous disposiez réellement de fonctionnalités similaires, en mode script uniquement, de VBScript et CScript - bien que ces deux éléments soient antérieurs à .NET.
Une chose que les gens d’Unix n’ont pas à faire lors de l’utilisation de Bash consiste le plus souvent à se familiariser avec le modèle objet éventuellement très élaboré d’un programmeur ou d’un objet, qui est requis pour de nombreuses tâches PowerShell simples et avancées. Mais ceci n’est possible que parce qu’il existe une convention claire de sortie de texte simple pour de nombreux logiciels standard. POSIX commandes. Windows n'a pas eu cette tradition - il a semblé préférer utiliser un mmc
console pour les tâches administratives, avec des commandes ajoutées ici et là au fil des ans. En outre, de nombreux utilitaires Unix bien connus sont complexes et nécessitent une étude avant d’être utilisés - rsync
, wget
, et plein d'autres. L'efficacité dépend probablement du degré de connaissance de l'outil utilisé.