🇯🇵 日本語 | 🇺🇸 English | 🇪🇸 Español | 🇵🇹 Português | 🇹🇭 ไทย | 🇨🇳 中文

O que é o PowerShell? Guia completo do shell definitivo que todo o utilizador de Windows deve conhecer

Na nossa série de introdução ao Bash, focámo-nos no shell Bash, que é padrão no macOS e Linux. No entanto, muitos criadores web devem estar a pensar: "Mas eu uso o Windows no meu dia a dia...". Não se preocupe! O Windows vem de série com um shell superpoderoso que ultrapassa em muito a antiga Linha de Comandos (o ecrã preto). É isso que vamos apresentar hoje: o PowerShell.

O PowerShell é mais do que uma simples ferramenta para executar comandos. É como uma "varinha mágica" que pode automatizar todo o tipo de configurações do Windows e realizar tarefas complexas com apenas algumas linhas de código. O seu poder é especialmente imenso para gerir servidores no desenvolvimento web e para tornar as tarefas diárias mais eficientes.

Neste artigo, vamos responder a perguntas de iniciantes como "O que é o PowerShell?" e "Qual a diferença para a Linha de Comandos?", enquanto explicamos o seu uso básico e o seu encanto com amostras que pode copiar e colar para as ver a funcionar. Se é um utilizador do Windows, já tem esta arma definitiva. Porque não aprender a dominá-la a partir de hoje?


A identidade do PowerShell - O shell definitivo nascido do Windows

O PowerShell é um shell de linha de comandos e uma linguagem de scripting desenvolvida pela Microsoft, especializada na administração e automação do Windows. Se a antiga Linha de Comandos é uma calculadora, então o PowerShell é como o Excel. Ambos podem fazer cálculos, mas os tipos de dados que podem manusear e o alcance do que podem fazer são completamente diferentes.

A maior diferença é manusear "objetos"

A diferença decisiva entre a Linha de Comandos e o PowerShell reside no "formato" da informação devolvida pelos comandos.

Esta propriedade de "manusear objetos" é o que eleva o PowerShell de uma simples ferramenta de linha de comandos a uma poderosa plataforma de automação.


Sinta o poder do PowerShell! Manipulando objetos com o pipeline

A melhor maneira de entender é ver em ação em vez de apenas ler uma explicação. O verdadeiro valor do PowerShell é demonstrado quando se encadeiam comandos com o "pipeline |". Vejamos como os objetos são passados ao longo de uma passadeira rolante para o comando seguinte para serem processados.

Primeiro, vamos usar o comando Get-Process para obter uma lista de todos os processos atualmente em execução no computador. Uma característica dos comandos do PowerShell é o seu formato fácil de entender Verbo-Substantivo.

Get-Process

Muitos processos foram exibidos em formato de tabela, certo? Isto é uma coleção de objetos.


A seguir, vamos passar este resultado através de um pipe para Where-Object para filtrar apenas aqueles em que o "nome do processo (ProcessName) é 'chrome'". O $_ refere-se a cada objeto individual que está a ser passado através do pipe.

Get-Process | Where-Object { $_.ProcessName -eq 'chrome' }

Apenas os processos relacionados com o Chrome foram exibidos. Porque é um objeto, e não texto, pode filtrar facilmente especificando uma propriedade como ProcessName.


Além disso, vamos passar o resultado filtrado para Sort-Object para os ordenar por ordem decrescente de uso de memória (WS).

Get-Process | Where-Object { $_.ProcessName -eq 'chrome' } | Sort-Object -Property WS -Descending

Apenas encadeando comandos como este, pode realizar extração e processamento de dados complexos como se estivesse a manipular uma base de dados. Este é o poder do PowerShell.


Vamos experimentar os comandos básicos (Cmdlets)

Os comandos do PowerShell são oficialmente chamados de Cmdlets. Aqui, vamos apresentar como realizar operações familiares do Bash ou da Linha de Comandos usando cmdlets do PowerShell. Muitos cmdlets têm "aliases" (nomes alternativos) curtos preparados, para que possa continuar a usar comandos familiares como ls e cd.

Mudar de Localização (pwd, cd, sl)

Use Get-Location para verificar a sua localização atual e Set-Location para se mover.

# Exibir a localização atual (alias: pwd)
Get-Location

# Mover para o diretório C:\Users (aliases: cd, sl)
Set-Location C:\Users

Listar Conteúdos (ls, dir, gci)

Use Get-ChildItem para exibir uma lista de ficheiros e pastas.

# Exibir o conteúdo do diretório atual (aliases: ls, dir, gci)
Get-ChildItem

Aproveitando a força dos objetos, também é fácil encontrar recursivamente apenas certos tipos de ficheiros (mesmo dentro de subpastas).

# Procurar todos os ficheiros .css a partir da localização atual para baixo
Get-ChildItem -Recurse -Filter "*.css"

Criar Ficheiros e Pastas (ni)

Use New-Item para criar novos itens (ficheiros ou pastas).

Criar um ficheiro:

New-Item -Path ".\new-file.txt" -ItemType File

Criar uma pasta:

New-Item -Path ".\new-folder" -ItemType Directory

Ler e Escrever Conteúdo de Ficheiros (cat, gc, sc)

Use Get-Content para ler o conteúdo de um ficheiro e Set-Content para escrever nele.

Escrever num ficheiro:

"Hello from PowerShell!" | Set-Content -Path ".\new-file.txt"

Ler o conteúdo de um ficheiro (aliases: cat, gc):

Get-Content -Path ".\new-file.txt"

Apagar Ficheiros e Pastas (rm, del, rmdir)

Use Remove-Item para apagar ficheiros e pastas. Esta operação não pode ser desfeita, por isso, tenha muito cuidado ao executá-la.

Remove-Item -Path ".\new-file.txt"

Para apagar uma pasta juntamente com o seu conteúdo, é necessária a opção -Recurse.

Remove-Item -Path ".\new-folder" -Recurse

Conclusão

Desta vez, apresentámos uma porta de entrada para o mundo do PowerShell, o poderoso shell que vem de série com o Windows. Pode ficar um pouco confuso com os cmdlets desconhecidos no início, mas assim que entender a sua essência, não há ferramenta mais fiável.

No desenvolvimento web, é comum trabalhar num ambiente local Windows e fazer deploy para um servidor de produção Linux. Se conseguir dominar o PowerShell para automatizar e otimizar o seu trabalho no Windows, e também manusear um ambiente Linux sem problemas através do WSL, será imparável.

Esperamos que o artigo de hoje lhe tenha dado uma noção do encanto e do poder do PowerShell. No próximo artigo, vamos explicar como atualizar este PowerShell para a versão mais recente e o procedimento para o instalar no macOS/Linux.

[Para Iniciantes] Como instalar e iniciar o PowerShell (Windows / Mac / Linux)