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.