Est-ce que Windows PowerShell aussi puissant et efficace que Linux ' terminal
?
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. Mais je suppose qu’ils ne seront à l’aise que s’il a (ou presque) la même efficacité.
linux
terminal
powershell
kern
la source
la source
People offline tell me ... that Windows Powershell is an attempt to make UNIX administrators feel more comfortable using Windows.
Ces personnes n'ont jamais utilisé Unix ou Powershell.Réponses:
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.
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
etcmd.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'anciencmd.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 - tellesls
dans une fenêtre PowerShell fonctionnera commedir
. 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é.la source
Windows PowerShell et le shell Unix sont deux choses différentes qui présentent des avantages.
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 la commande d'enchaînement vraiment simple et réutiliser le résultat d'une commande par une autre est la puissance du shell Unix.
Avec Windows PowerShell, autant que je sache, tout est un objet. Vous pouvez transmettre le résultat d'une commande à une autre en tant qu'objet. Cela peut être très puissant, mais il n’a pas le concept simple d’Unix.
Je ne pense pas que PowerShell soit aussi efficace qu'un shell Unix, mais d'autres le pensent.
Mais la comparaison est sans objet, car Windows n'est pas un système * nix, les concepts * nix ne s'appliquent donc pas. Par rapport à MS-DOS , PowerShell est une grande amélioration.
la source
|
,<
ou>
.