![O Windows PowerShell é tão poderoso quanto o terminal do Unix/Linux?](https://rvso.com/image/1395271/O%20Windows%20PowerShell%20%C3%A9%20t%C3%A3o%20poderoso%20quanto%20o%20terminal%20do%20Unix%2FLinux%3F%20.png)
É 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.com
e cmd.exe
fez . 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.exe
shell 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 ls
em 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 mmc
console 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.