52 votes

Windows PowerShell est-il aussi puissant que le terminal d'Unix/Linux ?

Est-ce que Windows PowerShell aussi puissante et efficace que celle de Linux terminal ?

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. Mais je suppose qu'ils ne se sentiront à l'aise que s'ils ont (ou presque) la même efficacité.

63voto

LawrenceC Points 70381

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.

32voto

Biapy Points 1056

Windows PowerShell et Unix Shell sont deux choses différentes avec des avantages dans les deux cas.

Unix (Shell) a pour philosophie que tout est un fichier. L'entrée et la sortie d'une commande Unix sont accessibles comme un fichier. Cela rend l'enchaînement de commandes très simple et la réutilisation de la sortie d'une commande par une autre est la puissance du Shell Unix.

Avec Windows PowerShell, pour autant que je sache, tout est un objet. Vous pouvez passer le résultat d'une commande à une autre en tant qu'objet. Cela peut être très puissant, mais il n'y a pas le concept simple d'Unix.

Je ne pense pas que PowerShell soit aussi efficace qu'un Shell Unix, mais d'autres pensent le contraire.

Mais la comparaison est sans objet, car Windows n'est pas un système *nix, et les concepts *nix ne s'appliquent donc pas. Par rapport à MS-DOS PowerShell est une grande amélioration.

SistemesEz.com

SystemesEZ est une communauté de sysadmins où vous pouvez résoudre vos problèmes et vos doutes. Vous pouvez consulter les questions des autres sysadmins, poser vos propres questions ou résoudre celles des autres.

Powered by:

X