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 haja um usuário interativo (em outras palavras, é o aplicativo GUI usado para conter um shell). Um dos shells mais comuns executados no Terminal do Ubuntu é o Bash , mas existem outros.
As pessoas offline dizem-me, sem explicar muito, que o Windows PowerShell é uma tentativa de fazer com que os administradores do Unix se sintam mais confortáveis usando o Windows.
Realmente, a coisa certa a dizer é que o PowerShell é o Windows que expõe grande parte do modelo de objeto WMI , COM e .NET em um ambiente de linha de comando interativo e com script - e que esse ambiente de linha de comando continua a emprestar muitos dos conceitos - como pipelines e redirecionamento de E / S - dos shells do Unix, exatamente como o antigo DOS (2.0 e superior) command.com
e o cmd.exe
fez. Os pipelines funcionam com objetos no PowerShell. Você pode fazer coisas como criar HTML e, possivelmente, planilhas do Excel em tempo real, se soubesse o suficiente. Certamente é uma atualização / substituição do cmd.exe
shell antigo que não mudou muito em relação ao Windows NT 4.0 .
Em relação à sintaxe, é menos parecido com os shells do Unix (embora, finalmente, nenhum dos cmdlets use /
como um comutador ou indicador de parâmetro), mas existem muitos aliases para os comandos clássicos do Unix - como entrar ls
em uma janela do PowerShell funcionará da mesma forma dir
. Mas esses são apenas aliases ("Get-Alias" lista esses?).
Em relação à capacidade do PowerShell, você realmente possuía capacidade semelhante, somente de script, do VBScript e CScript - 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 é familiarizar-se com o modelo de objeto possivelmente muito elaborado de um programador ou objeto, 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 direto para muitos comandos POSIX padrão . O Windows não tem essa tradição - parece preferir que você use um mmc
console para tarefas de administração, com comandos adicionados aqui e ali ao longo dos anos. Além disso, muitos utilitários Unix conhecidos são complexos e exigem algum estudo antes de usar - 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.