Melhorando o PowerShell 📟
Lucas Frazao
Posted on November 25, 2024
Olá, me chamo Lucas Frazão. Trabalho como desenvolvedor de software (SWE) há 5 anos.
Nesse artigo quero apresentar uma alternativa para customizar e melhorar o seu terminal PowerShell, mas antes, para quem é esse post?
- Usuários de Windows;
- Usuários de Windows que não têm interesse ou não gostam de WSL (Windows Subsystem for Linux);
- Pessoas que querem conhecer um pouco mais das capacidades do PowerShell.
Vamos lá.
O que é PowerShell?
O PowerShell é uma CLI (command-line interface) cross-plataform, simplificando, é um aplicativo de terminal que roda em qualquer sistema operacional (OS), windows, linux ou macOS. Caso ainda não conheça o PowerShell, tudo bem. Você pode acessar a documentação oficial da microsoft através do link: https://learn.microsoft.com/en-gb/powershell/ ou conferir um vídeo postado no youtube no canal da Microsoft Developer: https://www.youtube.com/watch?v=nahtw_csB5w. O vídeo está em inglês, porém, por se tratar de um vídeo didático, a dinâmica da fala faz a tradução automática do youtube funcionar muito bem.
Toda máquina com sistema operacional Windows já vem com o PowerShell instalado, o qual você pode acessar através do menu do windows e pesquisar por "powershell".
Entretanto, como nosso foco é melhorar a experiência no uso de CLI no windows, vamos dividir em etapas essa melhoria, assim você consegue chegar em um resultado mais próximo do desejado entendendo o que está sendo feito.
Instalando NerdFonts
Em primeiro lugar, vamos instalar uma fonte com glifos porque mais tarde queremos utilizar essa feature.
Glifos referem-se a formas, designs, representações específicas de caracteres em uma fonte ou um caracter codificado. Na prática, são caracteres que conseguem representar letras, números, símbolos e até mesmo ícones.
Acesse nerdfonts.com, selecione uma fonte que te agrade mais e clique em "Download". Logo após finalizar o download, vá até a pasta onde o zip foi baixado, descompacte o mesmo e em seguida instale todas as fontes que foram baixadas.
fonte da imagem: https://support.microsoft.com/en-us/office/add-a-font-b7c5f17c-4426-4b53-967f-455339c564c1
Após baixar e instalar a fonte escolhida, pressione Ctrl + ,
-> perfis -> padrões -> aparência.
Após entrar no menu de aparência basta selecionar a fonte que você acabou de baixar e instalar. Lembre-se que para conseguir atingir os mesmos resultados mostrados ao fim desse artigo é importante que você utilize uma fonte com glifos, no nosso contexto, uma fonte baixada do NerdFont.
Disclaimer: Caso queira utilizar a mesma fonte que eu, escolha por JetBrainsMono Nerd Font.
Preparando CLI
Vamos iniciar baixando o Windows Terminal, que é uma aplicação que permite que você possa executar diferentes terminais em abas diferentes, simplificando bastante, você pode na aba 1 rodar o PowerShell e na aba 2 o windows cmd, por exemplo.
Para baixar, acesse o link Windows Terminal - apps microsoft ou através do menu do windows, pesquisar microsoft store, e então windows terminal. Após isso, basta clicar em download/baixar. Tanto o download quanto a instalação serão realizados.
Para confirmar a instalação, basta acessar o menu do windows e pesquisar por "terminal" e caso tudo tenha ocorrido bem, você verá algo assim:
Agora, vamos baixar uma versão mais atualizada do PowerShell. Você pode se perguntar nesse momento, "mas ele já não é nativo do windows?", sim, mas o PowerShell 7 é a versão mais recente e melhorada do Windows PowerShell. Abaixo, temos um comparativo entre eles e dois links de referência com mais informações.
PowerShell (Desktop Edition) |
PowerShell (Core Edition) |
|
---|---|---|
Iterações | Versões 1.0, 2.0, 3.0, 4.0, 5.0 e 5.1 | Versões 6.0 e 7 |
Compatibilidade | Compativel somente com Windows | Multi plataforma, com suporte para Linux e macOS, distros como Ubuntu, Fedora e CentOS |
Runtime | .Net Framework runtime $PSVersionTable.PSEdition definida para desktop. | .Net Core runtime $PSVersionTable.PSEdition definida como core |
Atualização de políticas | Apenas correções de bugs critícos serão lançados. | Novas features e correções de bugs serão lançadas. |
Pacote | Vem como componente pré instalado no Windows através do WMF. | Aplicação com código aberto, pode ser instalado via MSI, ZIP ou PKG no macOS. |
Ambiente de script suportado | Windows PowerShell Integrated Scription Environment (ISE) | Visual Studio Code (VSCode) com extensão do PowerShell |
Referências: Differences between Windows PowerShell 5.1 and PowerShell 7.x e # Difference Between Windows PowerShell And PowerShell Core.
Para download do PowerShell 7, seguimos as mesmas etapas do download anterior. Além do acesso via windows, é possível acessar a microsoft store via browser: https://apps.microsoft.com/detail/9mz1snwt0n5d.
Um breve disclaimer... a partir de agora sempre que você ler "PowerShell", estaremos falando do PowerShell 7.x.
Após a instalação do PowerShell, finalizamos a primeira etapa e você notará a diferença visual entre os dois.
Windows PowerShell v5.1 - PowerShell 7.x
Definindo CLI Default
Agora vamos alterar as políticas de execução do PowerShell e defini-lo como CLI default. Portanto, alguns comandos serão executados com o terminal aberto como administrador, pois estamos lidando com configurações de "nível elevado", ou seja, configurações que um usuário rotineiro/convencional e não técnico normalmente não faria.
Assim, vamos iniciar verificando como estão as políticas de execução, abra o Windows Terminal como administrador, selecione o Powershell 7, no menu de opções (conforme print) e execute o comando:
Get-ExecutionPolicy
Caso o retorno seja diferente de RemoteSigned
, execute o comando abaixo para definirmos a política como RemoteSigned
:
Set-ExecutionPolicy -ExecutionPolicy RemoteSigned
Link com explicação das políticas de execução: https://learn.microsoft.com/en-us/powershell/module/microsoft.powershell.security/set-executionpolicy?view=powershell-7.4#-executionpolicy
Excelente! Agora, reinicie o Windows Terminal para continuarmos com as configurações. Então, pressione Ctrl + ,
e depois, no canto inferior esquerdo, selecione "Open JSON file".
Feito isso, seu arquivo de configuração do windows terminal será aberto no seu editor de código padrão (ou notepad). Logo em seguida, vamos verificar qual o id do Powershell para definir como perfil padrão.
Para facilitar, você pode clicar Ctrl + F
e pesquisar por Windows.Terminal.PowershellCore
, o resultado esperado é algo próximo à:
Copie o guid do Windows.Terminal.PowershellCore
e vamos procurar por "defaultProfile", esse campo define qual CLI é a padrão do seu terminal.
Substitua o valor defaultProfile
pelo guid que acabamos de copiar do Powershell. Salve o arquivo, reinicie o terminal e será possível ver que o Windows Terminal irá iniciar já com o perfil do PowerShell selecionado.
Instalando o Oh My Posh
Para customização visual do PowerShell utilizaremos o Oh My Posh, que é um prompt customizado para qualquer shell e oferece temas pré "montados".
Execute o comando:
winget install JanDeDobbeleer.OhMyPosh -s winget
Concorde com os termos e esse comando irá instalar e executar o oh-my-posh.exe
e adicionar seu tema mais recente.
Agora execute o comando :
// Para abrir com o notepad
notepad $PROFILE
// Para abrir com o Visual Studio Code (recomendo)
code $PROFILE
Você pode substituir o notepad e code também pelo seu editor. Esse comando irá abrir o seu arquivo de perfil do PowerShell.
==Caso você receba um erro relacionado ao caminho chamado, execute o comando:==
New-Item -Path $PROFILE -Type File -Force
Esse comando irá criar um arquivo vazio com o nome de $PROFILE
.
Após abrir o seu arquivo de perfil, adicione a linha:
oh-my-posh init pwsh --config "$env:POSH_THEMES_PATH\jandedobbeleer.omp.json" | Invoke-Expression
Esse código define que, ao iniciar o PowerShell, o Oh My Posh será automaticamente carregado e o tema da sua linha de comando será configurado como jandedobbeleer
.
==Caso você receba erro de script ao definir a nova regra para as instâncias do PowerShell, abra o terminal como administrador e execute o comando abaixo. Isso irá definir sua execução do PowerShell como irrestrita.==
Set-ExecutionPolicy -ExecutionPolicy Unrestricted
Link com explicação das políticas de execução: https://learn.microsoft.com/en-us/powershell/module/microsoft.powershell.security/set-executionpolicy?view=powershell-7.4#-executionpolicy
Feito isso, reinicie o seu Windows Terminal e ao abri-lo, você já irá sair do visual "padrão" para algo parecido com:
Caso você queria utilizar um tema diferente, você pode acessar o site do Oh My Posh Themes ou executar o comando:
Get-PoshThemes
Esse comando irá listar todos os temas disponíveis. Para alterar, basta acessar o arquivo de perfil, conforme ensinado anteriormente e substituir a palavra jandedobbeleer
pelo nome do tema selecionado.
No exemplo abaixo alteramos o tema de jandedobbeleer
para spaceship
.
Antes:
oh-my-posh init pwsh --config "$env:POSH_THEMES_PATH\jandedobbeleer.omp.json" | Invoke-Expression
Depois:
oh-my-posh init pwsh --config "$env:POSH_THEMES_PATH\spaceship.omp.json" | Invoke-Expression
É possível fazer alterações em níveis mais granulares, mas é altamente recomendado que antes disso leia a documentação oficial https://ohmyposh.dev/docs/installation/customize.
Minha recomendação de customização é testar o background acrílico. Para isso, basta pressionar Ctrl + ,
em seguida Perfis -> Padrões -> Aparência, em seguide habilite a opção "Habilitar material acrílico", conforme abaixo:
Depois:
Adicionando Terminal-Icons
O Terminal-Icons é um módulo do PowerShell que adiciona ícones aos arquivos e pastas ao trafegar pelo terminal.
Para instalar o Terminal-Icon
execute o comando:
Install-Module -Name Terminal-Icons -Repository PSGallery
Adicione ao arquivo de perfil o código abaixo, que é responsável pela importação do módulo.
Import-Module -Name Terminal-Icons
Caso não se lembre como acessar o arquivo de perfil, basta executar code $PROFILE
.
Após fazer isso, reinicie o seu terminal e execute o comando dir
e será possível ver o Terminal-Icons em ação.
Para customizações e alterações mais específicas, acesse o link da documentação: https://github.com/devblackops/Terminal-Icons.
Obs.: Se ao invés dos ícones customizados, semelhantes ao print acima, você estiver visualizando um ícone
, basta alterar a fonte do seu Windows Terminal para uma fonte baixada do nerdfonts.com, conforme citado no início desse artigo.
Bônus - Adicionando o Posh-Git
O Posh-Git é um módulo que integra o Git com o PowerShell, provendo informações e funcionalidades adicionais relacionadas ao git. É interessante que leia a documentação oficial do Posh-Git para entender a melhor forma de aumentar a sua produtividade ao utilizá-lo. Link da documentação: https://github.com/dahlbyk/posh-git#overview.
Lembrando que, para utilizar o Posh-Git, antes é necessário que tenha instalado o git em sua máquina.
Abra o terminal como administrador e execute o comando abaixo para realizar a instalação:
PowerShellGet\Install-Module posh-git -Scope CurrentUser -Force
Adicione o trecho abaixo ao seu arquivo de perfil.
Import-Module posh-git
Por fim, caso queira customizar ainda mais a aparência do seu Windows Terminal, basta utilizar o menu aparência que vimos nesse artigo e deixar sua criatividade te conduzir. Lembre-se que algumas configurações podem afetar negativamente o seu uso da ferramenta.
Bom, passamos por etapas importantes para a customização do PowerShell, atualização e configuração. Agora o seu PowerShell está bem diferente de como ele começou, porém com seu toque. Explore as documentações e referências para customizar os comandos do Posh-Git, criar aliases e explorar mais funcionalidades dos módulos instalados.
Sinta-se livre para deixar um comentário ou me enviar um feedback do artigo.
Posted on November 25, 2024
Join Our Newsletter. No Spam, Only the good stuff.
Sign up to receive the latest update from our blog.