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 qui est supposé avoir un utilisateur interactif derrière lui (en d'autres termes, c'est l'application GUI utilisée pour contenir un Shell). L'un des shells les plus courants exécute à l'intérieur Le terminal d'Ubuntu est Le cambriolage mais il y en a d'autres.
Les gens me disent, sans trop expliquer, que Windows PowerShell est une tentative pour que les administrateurs Unix se sentent plus à l'aise avec Windows.
En réalité, ce qu'il faut dire, c'est que PowerShell est Windows et qu'il expose une grande partie de l'infrastructure de l'entreprise. WMI , COM et .NET dans un environnement de ligne de commande interactif et scriptable - et que cet environnement de ligne de commande continue d'emprunter de nombreux concepts - tels que les pipelines et la redirection des E/S - aux shells Unix, tout comme l'ancien DOS (2.0 et plus). command.com
et cmd.exe
a fait. Les pipelines fonctionnent avec des objets dans PowerShell. Vous pouvez faire des choses comme créer du HTML et éventuellement des Excel des feuilles de calcul à la volée si vous en saviez assez. Il s'agit certainement d'une mise à niveau ou d'un remplacement de l'ancien système de gestion des données. cmd.exe
Shell qui n'a pas beaucoup changé par rapport à Windows NT 4.0 .
En ce qui concerne la syntaxe, elle est moins proche des shells Unix (bien que, finalement, aucune des cmdlets n'utilise de /
en tant que commutateur ou indicateur de paramètre), mais il existe de nombreux alias de commandes Unix classiques - comme la saisie de ls
dans une fenêtre PowerShell fonctionnera comme suit dir
. Mais il ne s'agit que d'alias ("Get-Alias" les énumère ?).
En ce qui concerne les capacités de PowerShell, vous disposiez de capacités similaires, sous forme de scripts uniquement, à partir de VBScript et CScript - bien qu'ils soient tous deux antérieurs à .NET.
Une chose que les utilisateurs d'Unix n'ont pas à faire lorsqu'ils utilisent Bash la plupart du temps, c'est d'être intimement familiers avec le modèle d'objet d'un programmeur ou d'un objet, qui peut être très élaboré, ce qui est nécessaire pour de nombreuses tâches PowerShell simples ou avancées. Mais cela n'est possible que parce qu'il existe une convention claire de sortie en texte direct pour de nombreuses tâches standard de PowerShell. POSIX commandes. Windows n'a pas cette tradition - il semble préférer l'utilisation d'une commande mmc
pour les tâches d'administration, 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 certaine étude avant d'être utilisés - rsync
, wget
et bien d'autres. L'efficacité dépend probablement plus de la connaissance que l'on a de l'outil que l'on utilise que de toute autre chose.