O Windows PowerShell é tão poderoso quanto o terminal do Unix / Linux? [fechadas]

39

O PowerShell do Windows é tão poderoso e eficiente quanto o Linux ' terminal ?

As pessoas off-line me dizem, sem explicar muito, que o Windows PowerShell é uma tentativa de deixar os administradores do Unix mais confortáveis usando o Windows. Mas eu acho que eles ficarão confortáveis apenas se tiverem (ou quase) a mesma eficiência.

    
por kern 26.01.2014 / 17:51

2 respostas

51

Bem, seu primeiro problema é que você está comparando um shell (PowerShell) a um terminal. No Linux, um terminal é algo que envia e recebe E / S baseada em caracteres e supõe-se que tenha um usuário interativo por trás (em outras palavras, é o aplicativo GUI usado para conter um shell). Um dos shells mais comuns executados dentro do Terminal do Ubuntu é Bash , mas há são outros.

People offline tell me, without explaining much, that Windows PowerShell is an attempt to make Unix administrators feel more comfortable using Windows.

Realmente, a coisa correta a dizer é que o PowerShell é o Windows expondo grande parte do WMI , COM e .NET modelo de objeto em um ambiente de linha de comando interativo e programável - e esse ambiente de linha de comando continua tomando emprestado muitos dos conceitos - como pipelines e redirecionamento de E / S - de shells Unix, assim como o antigo DOS (2.0 e superior) command.com e cmd.exe fez. Pipelines funcionam com objetos no PowerShell. Você pode fazer coisas como criar HTML e, possivelmente, planilhas Excel rapidamente, se você soubesse o suficiente. É certamente uma atualização / substituição do antigo shell cmd.exe que não mudou muito do Windows NT 4.0 .

Com relação à sintaxe, ela é menos parecida com os shells Unix (embora nenhum dos cmdlets use / como um parâmetro ou parâmetro), mas há muitos aliases para comandos clássicos do Unix - como inserir ls em um A janela do PowerShell funcionará como dir . Mas estes são apenas aliases ("Get-Alias" lista estes?).

Com relação à capacidade do PowerShell, você realmente tinha capacidade semelhante, de forma apenas com scripts, do VBScript e < href="http://en.wikipedia.org/wiki/Windows_Script_Host#Available_scripting_engines"> CScript - embora ambos sejam anteriores ao .NET.

Uma coisa que as pessoas do Unix não precisam fazer quando usam o Bash na maioria das vezes é estarem intimamente familiarizadas com o modelo de objeto possivelmente muito elaborado de um programador ou objeto, que é necessário para muitas tarefas avançadas e simples do PowerShell. Mas isso só é possível porque há uma clara convenção de saída de texto direto para muitos comandos padrão POSIX . O Windows não tem essa tradição - parece que você prefere usar um console mmc para tarefas de administração, com comandos adicionados aqui e ali ao longo dos anos. Além disso, muitos utilitários Unix bem conhecidos são complexos e exigem algum estudo antes do uso - rsync , wget e muitos outros. A eficiência é provavelmente uma função de quão bem alguém conhece a ferramenta que está usando mais do que qualquer outra coisa.

    
por 26.01.2014 / 18:51
24

O Windows PowerShell e o shell Unix são duas coisas diferentes com vantagens em ambos.

O Unix (shell) tem uma filosofia de que tudo é um arquivo. A entrada e a saída de um comando Unix podem ser acessadas como um arquivo. Isso torna o comando de encadeamento realmente simples e reutilizar a saída de um comando por outro é o poder do shell Unix.

Com o Windows PowerShell, até onde eu sei, tudo é um objeto. Você pode passar o resultado de um comando para outro como um objeto. Isso pode ser muito poderoso, mas não possui o conceito simples de Unix.

Eu não acredito que o PowerShell seja tão eficiente quanto um shell Unix, mas outros acreditam que é.

Mas a comparação é discutível, porque o Windows não é um sistema * nix, portanto conceitos * nix não se aplicam. Comparado ao MS-DOS , o PowerShell é uma grande melhoria.

    
por 26.01.2014 / 18:03