O Windows PowerShell é tão poderoso e eficiente quanto o Linux terminal
?
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. Mas acho que só serão confortáveis se tiver (ou quase) a mesma eficiência.
linux
terminal
powershell
kern
fonte
fonte
People offline tell me ... that Windows Powershell is an attempt to make UNIX administrators feel more comfortable using Windows.
Essas pessoas nem usaram o Unix nem o Powershell.Respostas:
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.
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 ocmd.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 docmd.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 entrarls
em uma janela do PowerShell funcionará da mesma formadir
. 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.fonte
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 saída de um comando Unix pode ser acessada como um arquivo. Isso torna o comando encadeamento realmente simples e reutilizar a saída de um comando por outro é o poder do shell do 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 realmente poderoso, mas não possui o conceito simples de Unix.
Não acredito que o PowerShell seja tão eficiente quanto um shell Unix, mas outros acreditam que seja.
Mas a comparação é discutível, porque o Windows não é um sistema * nix, portanto, os conceitos * nix não se aplicam. Comparado ao MS-DOS , o PowerShell é uma grande melhoria.
fonte
|
,<
ou>
.