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

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

É WindowsPowerShelltão poderoso e eficiente quanto o Linux' terminal?

Pessoas off-line me dizem, sem muita explicação, que o Windows PowerShell é uma tentativa de fazer com que os administradores Unix se sintam mais confortáveis ​​usando o Windows. Mas acho que eles só ficarão confortáveis ​​​​se tiverem (ou quase) a mesma eficiência.

Responder1

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 presume-se que tenha um usuário interativo por trás dele (em outras palavras, é o aplicativo GUI usado paracontercomo o inferno). Um dos shells mais comuns executadosdentro deO Terminal do Ubuntu éBash, mas existem outros.

Pessoas off-line me dizem, sem muita explicação, que o Windows PowerShell é uma tentativa de fazer com que os administradores Unix se sintam mais confortáveis ​​usando o Windows.

Na verdade, a coisa correta a dizer é que o PowerShell é o Windows expondo grande parte doWMI,COMe.LÍQUIDOmodelo de objeto em um ambiente de linha de comando interativo e programável - e que esse ambiente de linha de comando continua a emprestar muitos dos conceitos - como pipelines e redirecionamento de E/S - de shells Unix, assim como o antigo DOS (2.0 e superior) command.come cmd.exefez . Pipelines funcionam com objetos no PowerShell. Você pode fazer coisas como criar HTML e possivelmenteExcelplanilhas rapidamente, se você soubesse o suficiente. É certamente uma atualização/substituição do antigo cmd.exeshell que não mudou muito desdeWindows NT 4.0.

Em relação à sintaxe, é menos parecido com os shells do Unix (embora, finalmente, nenhum dos cmdlets seja usado /como uma opção ou indicador de parâmetro), mas existem muitos aliases para comandos clássicos do Unix - como entrar lsem uma janela do PowerShell funcionará como dir. Mas estes são apenas aliases ("Get-Alias" lista estes?).

Em relação à capacidade do PowerShell, você realmente tinha capacidade semelhante, apenas com script, deVBScripteCScript- embora ambos sejam anteriores ao .NET.

Uma coisa que as pessoas do Unix não precisam fazer ao usar o Bash na maioria das vezes é estar intimamente familiarizado com o modelo de objeto possivelmente muito elaborado de um programador ou objeto, que é necessário para muitas tarefas simples e avançadas do PowerShell. Mas isso só é possível porque existe uma convenção clara de saída de texto simples para muitos padrõesPOSIXcomandos. O Windows não tem essa tradição - parece preferir usar um mmcconsole para tarefas administrativas, com comandos adicionados aqui e ali ao longo dos anos. Além disso, muitos utilitários Unix bem conhecidos são complexos e requerem algum estudo antes de serem usados ​​-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.

Responder2

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

Unix (shell) tem a 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 encadeamento de comandos 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 do Unix.

Não acredito que o PowerShell seja tão eficiente quanto um shell Unix, mas outros acreditam que sim.

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

informação relacionada