<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom" xmlns:dc="http://purl.org/dc/elements/1.1/">
  <channel>
    <title>Forem: Thor Rachaus</title>
    <description>The latest articles on Forem by Thor Rachaus (@thorhexsec).</description>
    <link>https://forem.com/thorhexsec</link>
    <image>
      <url>https://media2.dev.to/dynamic/image/width=90,height=90,fit=cover,gravity=auto,format=auto/https:%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Fuser%2Fprofile_image%2F930390%2F84af6968-1cf2-4355-b0e2-ec6a95f0d8a7.jpg</url>
      <title>Forem: Thor Rachaus</title>
      <link>https://forem.com/thorhexsec</link>
    </image>
    <atom:link rel="self" type="application/rss+xml" href="https://forem.com/feed/thorhexsec"/>
    <language>en</language>
    <item>
      <title>Passo a Passo: Configuração do WSL para DevOps e SRE no Windows</title>
      <dc:creator>Thor Rachaus</dc:creator>
      <pubDate>Sun, 23 Mar 2025 21:01:06 +0000</pubDate>
      <link>https://forem.com/thorhexsec/passo-a-passo-configuracao-do-wsl-para-devops-e-sre-no-windows-48cf</link>
      <guid>https://forem.com/thorhexsec/passo-a-passo-configuracao-do-wsl-para-devops-e-sre-no-windows-48cf</guid>
      <description>&lt;h2&gt;
  
  
  O que é WSL
&lt;/h2&gt;

&lt;p&gt;O texto busca auxiliar usuários na criação de um ambiente de desenvolvimento Windows utilizando o WSL. &lt;/p&gt;

&lt;p&gt;O WSL (Windows Subsystem for Linux) permite ter um ambiente Linux com terminal e interface gráfica dentro do Windows, sem necessidade de dual boot ou mudança de sistema operacional. Assim, é possível usar o Windows para rotinas de programação e softwares/jogos exclusivos, e o Linux para desenvolvimento.&lt;/p&gt;

&lt;h2&gt;
  
  
  Requisitos de Hardware
&lt;/h2&gt;

&lt;p&gt;Antes de iniciar a instalação do WSL no Windows, é preciso garantir que o hardware atenda aos requisitos mínimos:&lt;/p&gt;

&lt;p&gt;Configuração de Hardware Intel:&lt;br&gt;
I5 de 8ª Geração ou superior&lt;br&gt;
16 GB de RAM&lt;br&gt;
Mínimo de 50 GB de disco&lt;br&gt;
Virtualização ativada na BIOS&lt;/p&gt;

&lt;p&gt;Configuração de Hardware AMD:&lt;br&gt;
AMD Ryzen 5 5600 ou superior&lt;br&gt;
16 GB de RAM&lt;br&gt;
Mínimo de 50 GB de disco&lt;br&gt;
Virtualização ativada na BIOS&lt;/p&gt;

&lt;p&gt;O WSL funciona como uma virtualização dentro do Windows, portanto, para uma boa experiência, é necessário ter pelo menos o hardware listado. Para cargas de trabalho mais intensas no Windows, recomenda-se hardware superior às especificações mínimas.&lt;/p&gt;

&lt;p&gt;Como Ativar a Virtualização na BIOS&lt;br&gt;
Antes de começarmos, é fundamental garantir que a virtualização esteja habilitada na BIOS. Para isso, ao ligar o computador, pressione a tecla F2, F10 ou Delete, dependendo do modelo da sua placa-mãe. Você verá uma tela semelhante à mostrada abaixo:&lt;/p&gt;
&lt;h2&gt;
  
  
  Habilitando em Placas AMD:
&lt;/h2&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Favsvkty3lrmugt5a71bt.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Favsvkty3lrmugt5a71bt.png" alt="Placas Mãe AMD" width="800" height="450"&gt;&lt;/a&gt;&lt;/p&gt;
&lt;h2&gt;
  
  
  Habilitando em Placas Intel:
&lt;/h2&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fl1ln1q4k63yhq2gaoaxl.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fl1ln1q4k63yhq2gaoaxl.png" alt="Placa Mãe Intel" width="800" height="450"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Importante: Cada placa-mãe possui um menu de configuração diferente. Consulte o manual da sua placa-mãe e procure pelas opções 'SVM Mode', 'Intel Virtualization Technology' ou o nome correspondente para a virtualização.&lt;/p&gt;

&lt;p&gt;Requisitos de Software&lt;br&gt;
Para garantir a melhor experiência na instalação do WSL, utilize o Windows 11, preferencialmente a última versão 24H2. O suporte da Microsoft para o Windows 10 termina em 14 de outubro de 2025.&lt;/p&gt;

&lt;p&gt;Ao iniciar o Windows, o primeiro passo é garantir que o App Installer esteja na versão mais recente. Abra a Microsoft Store (ícone de sacola com o logotipo do Windows) e clique no ícone de nuvem com seta para baixo, como ilustrado na imagem a seguir.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fq8e7dhdww6kxv1tcy1th.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fq8e7dhdww6kxv1tcy1th.png" alt="Verificando atualizações na Microsoft Store" width="800" height="434"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Precisamos assegurar que o App Installer esteja atualizado. Clique em 'Get Update' ou 'Obter atualização' (a localização é idêntica, independentemente do idioma do seu Windows).&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Ffjrvrbeh62s3km1ukv1o.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Ffjrvrbeh62s3km1ukv1o.png" alt="Obtendo atualizações" width="800" height="434"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;O Processo de atualização pode demorar um pouco devido à quantidade de atualizações disponíveis e à sua velocidade de conexão, basta aguardar e certificar que tudo foi atualizado corretamente.&lt;/p&gt;

&lt;p&gt;Após atualizar o App Installer, é hora de iniciar o PowerShell como administrador para instalarmos a versão mais recente (7.5, na data deste artigo).&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F99k7zwvwyr08ad979io7.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F99k7zwvwyr08ad979io7.png" alt="Executando Powershell como Administrador" width="773" height="721"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fkjv44ebtmh2kxu1q3toq.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fkjv44ebtmh2kxu1q3toq.png" alt="Windows Powershell como administrador" width="800" height="583"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Você verá uma tela como a imagem acima. Nela, executaremos o seguinte comando no PowerShell:&lt;/p&gt;

&lt;p&gt;&lt;code&gt;winget install Microsoft.PowerShel&lt;/code&gt;&lt;/p&gt;

&lt;p&gt;Aguarde o processo de instalação e, em seguida, você pode fechar o PowerShell atual. Vá até o menu Iniciar, pesquise por PowerShell e inicie o PowerShell na cor azul escura como administrador, conforme a imagem a seguir:&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F75z9ppzsxsu58l7qi22t.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F75z9ppzsxsu58l7qi22t.png" alt="Execute o Powershell 7.5 como administrador" width="771" height="724"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Com o PowerShell aberto como administrador, chegou a hora de criar o arquivo de configuração .wslconfig. Ele será responsável por limitar o uso máximo de hardware permitido para o WSL, fazendo com que o WSL não utilize todos os recursos do seu computador. Para isso, execute o comando abaixo:&lt;/p&gt;

&lt;p&gt;&lt;code&gt;notepad "$env:USERPROFILE/.wslconfig"&lt;/code&gt;&lt;/p&gt;

&lt;p&gt;Ao executar o comando, um Bloco de Notas em branco será aberto:&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F8lpl2pe71hdyfs5r2qud.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F8lpl2pe71hdyfs5r2qud.png" alt="Image description" width="800" height="423"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;O comando acima vai criar um arquivo de texto na pasta inicial do seu usuário, que será responsável por aplicar algumas configurações avançadas. O arquivo de configuração possui uma sintaxe bem simples, que pode ser conferida aqui: &lt;a href="https://learn.microsoft.com/pt-br/windows/wsl/wsl-config" rel="noopener noreferrer"&gt;Configuração de definições avançadas no WSL | Microsoft Learn&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Dentro do arquivo, insira as seguintes linhas (as que considero mais importantes):&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;# Configuração avançada do WSL

[wsl2]

# Defina o limite de memória RAM que será utilizado no WSL, ajustando-o conforme a sua carga de trabalho.

memory=8GB 

# Limite a quantidade de processadores disponíveis no WSL, ajustando conforme a sua carga de trabalho.

processors=4

# Crie um espaço de Swap para evitar o esgotamento de memória em altas cargas de trabalho.

swap=8GB

# Habilite a comunicação entre os serviços do WSL e o host do Windows para o funcionamento dos serviços e das portas do Docker.

localhostforwarding=true
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Observação: Vale ressaltar que existem outros padrões que podem atender melhor ao seu caso de uso. Para isso, consulte o link acima e confira todas as opções disponíveis. As opções mencionadas acima, na minha opinião, são as mais importantes para evitar o uso excessivo de hardware no seu sistema.&lt;/p&gt;

&lt;p&gt;Agora, salve o arquivo de configuração pressionando a combinação de teclas Ctrl + s e, em seguida, feche o bloco de notas.&lt;/p&gt;

&lt;h2&gt;
  
  
  Instalando o WSL
&lt;/h2&gt;

&lt;p&gt;Uma vez configurados os pré-requisitos, chegou o momento de instalar as dependências necessárias para o funcionamento do WSL. Para isso, abra novamente o PowerShell 7.5 como administrador e execute o comando wsl --install, pressionando Enter. Você verá uma tela semelhante à abaixo, iniciando a instalação:&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F876a6x7tj2tpmrem5jxy.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F876a6x7tj2tpmrem5jxy.png" alt="Image description" width="800" height="473"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Aguarde a conclusão do processo e, em seguida, reinicie o Windows para que as alterações tenham efeito.&lt;/p&gt;

&lt;p&gt;Escolhendo uma Distribuição Linux&lt;br&gt;
Antes de escolhermos uma distribuição, vamos garantir que as dependências do WSL foram instaladas corretamente. Para isso, basta abrir o menu Iniciar e verificar se os ícones do WSL estão presentes.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fnjnnz49myrovl6jbnopc.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fnjnnz49myrovl6jbnopc.png" alt="Image description" width="773" height="730"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Agora é o momento de escolhermos a distribuição Linux que melhor nos atenda. Podemos instalar a distribuição Linux de nossa preferência pela Microsoft Store ou procurar alguma distribuição comunitária através do GitHub, GitLab ou pela internet. É importante ressaltar que, ao utilizar essas distribuições comunitárias, é necessário ter cautela, pois não sabemos sua procedência. Por isso, recomendo fortemente a instalação de uma distribuição pela Microsoft Store.&lt;/p&gt;

&lt;p&gt;Com a Microsoft Store aberta, vamos buscar na barra de endereços por "Linux" e nos deparar com várias distribuições. Podemos escolher a que melhor nos atenda. Entre as opções, temos:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Alpine&lt;/li&gt;
&lt;li&gt;Debian&lt;/li&gt;
&lt;li&gt;Fedora&lt;/li&gt;
&lt;li&gt;Kali Linux&lt;/li&gt;
&lt;li&gt;Oracle Linux&lt;/li&gt;
&lt;li&gt;Slackware&lt;/li&gt;
&lt;li&gt;Ubuntu&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Entre outras.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fbgygvqfjtsx0jnjobj38.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fbgygvqfjtsx0jnjobj38.png" alt="Image description" width="800" height="434"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Também é possível instalar distribuições que estão fora da Microsoft Store, como é o caso do Manjaro WSL ou do Linux Mint WSL:&lt;/p&gt;

&lt;p&gt;Manjaro Linux O Manjaro Linux pode ser obtido neste repositório do &lt;a href="https://github.com/sileshn/ManjaroWSL2" rel="noopener noreferrer"&gt;GitHub&lt;/a&gt;, por exemplo: &lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Frpy2fx1batm4lgxwga1q.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Frpy2fx1batm4lgxwga1q.png" alt="Image description" width="800" height="427"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Linux Mint O Linux Mint pode ser obtido neste repositório do &lt;a href="https://github.com/sileshn/LinuxmintWSL2" rel="noopener noreferrer"&gt;GitHub&lt;/a&gt;, por exemplo:&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fyhuh3327gqx5czo4crpu.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fyhuh3327gqx5czo4crpu.png" alt="Image description" width="800" height="463"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Observação: É importante ressaltar que é necessário verificar cuidadosamente as distribuições Linux que serão instaladas, pois pode haver o risco de instalar algo que comprometa o sistema Windows.&lt;/p&gt;

&lt;p&gt;Neste artigo, vamos realizar a instalação do Ubuntu 24.04 LTS. Para isso, vamos buscar o termo "Ubuntu 24.04" na Microsoft Store:&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fyqavupl2sgnuusgcqx9j.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fyqavupl2sgnuusgcqx9j.png" alt="Image description" width="800" height="435"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Vamos selecionar a distribuição conforme a imagem acima e instalá-la com a opção "Obter":&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fscnx5vdt0emis95ar1wl.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fscnx5vdt0emis95ar1wl.png" alt="Image description" width="800" height="433"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Após a conclusão da instalação, o usuário deve clicar em "Abrir" para iniciar o processo de configuração. Durante esse processo, será necessário definir um nome de usuário e senha para o usuário root (sudo su).&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fubmo0lppjfezrtv84bi5.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fubmo0lppjfezrtv84bi5.png" alt="Image description" width="800" height="435"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Funf7j1zu7qsbkr3lwwpd.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Funf7j1zu7qsbkr3lwwpd.png" alt="Image description" width="800" height="430"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Feito isso, estaremos com o nosso Ubuntu 24.04 instalado e você estará dentro do terminal bash no Ubuntu, conforme a imagem a seguir:&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Ffh9o4i6qyvg3ambqnire.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Ffh9o4i6qyvg3ambqnire.png" alt="Image description" width="800" height="428"&gt;&lt;/a&gt;&lt;/p&gt;
&lt;h2&gt;
  
  
  Instalação da Fonte MesloLGS e Tema no Windows Terminal
&lt;/h2&gt;

&lt;p&gt;Agora, vamos fechar o terminal do Ubuntu, pois vamos aprimorar a estética do nosso ambiente. Perceba que ele está com o tema roxo (que, embora seja característico do Ubuntu, não é muito agradável visualmente) e a fonte utilizada é simples, não sendo ideal para trabalhar com ícones, o que é necessário para o Powerlevel10k. Para isso, o primeiro passo será baixar o pacote de fontes para o Powerlevel10k diretamente no repositório do &lt;a href="https://github.com/romkatv/powerlevel10k?tab=readme-ov-file#fonts" rel="noopener noreferrer"&gt;GitHub&lt;/a&gt;.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fcsd88ub9vn7c2rhtl1wh.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fcsd88ub9vn7c2rhtl1wh.png" alt="Image description" width="800" height="1128"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Com o download das fontes concluído, é hora de realizarmos a instalação utilizando o método de instalação como administrador. Para isso, vamos clicar com o botão direito do mouse, selecionar a opção "Mostrar mais" e, em seguida, clicar em "Instalar para todos os usuários", com o ícone de escudo, para executar como administrador.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fecdnae5fal8dvxqy2eoa.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fecdnae5fal8dvxqy2eoa.png" alt="Image description" width="692" height="659"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Com as fontes instaladas, é hora de modificar o tema do Windows Terminal a nível global. Para isso, vamos iniciar o Windows Terminal.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fhkfcy4ai4nuy326eoj3o.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fhkfcy4ai4nuy326eoj3o.png" alt="Image description" width="776" height="724"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Vamos abrir o arquivo de configuração do Windows Terminal. Para isso, clique no ícone ▼ e selecione a opção Configurações. Você pode usar o Bloco de Notas, Notepad++ ou o editor de sua preferência; neste caso, usaremos o Visual Studio Code.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Filjyrid5az762xxltyo0.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Filjyrid5az762xxltyo0.png" alt="Image description" width="716" height="418"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Nessa nova tela, vamos criar na última opção a sua esquerda, onde vamos localizar a opção abrir o arquivo Json conforme a imagem a seguir:&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fdvevjmn3dusb88skgam1.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fdvevjmn3dusb88skgam1.png" alt="Image description" width="718" height="418"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Nessa nova tela, vamos criar, na última opção à esquerda, a opção para abrir o arquivo JSON, conforme a imagem a seguir:&lt;/p&gt;

&lt;p&gt;Ao clicar na opção acima, o Windows exibirá uma caixa de diálogo para que possamos escolher o editor de arquivos de nossa preferência. Neste tutorial, utilizaremos o Visual Studio Code:&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fa353hkkxdv5w2e7r5nue.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fa353hkkxdv5w2e7r5nue.png" alt="Image description" width="800" height="434"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Neste trecho, vamos inserir os seguintes valores abaixo:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;{
        "defaults": 
        {
            "colorScheme": "Rapture",
            "font": 
            {
                "face": "MesloLGS NF"
            },
            "opacity": 80,
            "useAcrylic": false
        },
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Agora, vamos habilitar o tema Rapture para o nosso Windows Terminal, o que proporcionará um visual mais agradável, na minha opinião. Para isso, vá até a seção Schemes e cole o código abaixo:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;{
  "name": "Rapture",
  "black": "#000000",
  "red": "#fc644d",
  "green": "#7afde1",
  "yellow": "#fff09b",
  "blue": "#6c9bf5",
  "purple": "#ff4fa1",
  "cyan": "#64e0ff",
  "white": "#c0c9e5",
  "brightBlack": "#304b66",
  "brightRed": "#fc644d",
  "brightGreen": "#7afde1",
  "brightYellow": "#fff09b",
  "brightBlue": "#6c9bf5",
  "brightPurple": "#ff4fa1",
  "brightCyan": "#64e0ff",
  "brightWhite": "#ffffff",
  "background": "#111e2a",
  "foreground": "#c0c9e5",
  "selectionBackground": "#304b66",
  "cursorColor": "#ffffff"
}
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Ficando semelhante à imagem abaixo:&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F59ualmzdobxr0oz0zmks.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F59ualmzdobxr0oz0zmks.png" alt="Image description" width="800" height="434"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Agora, vamos salvar utilizando a combinação de teclas Ctrl + S ou indo em Arquivo e, em seguida, selecionando Salvar.&lt;/p&gt;

&lt;p&gt;Após isso vamos está com essa estética:&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fm25syynq4biccr1xamgf.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fm25syynq4biccr1xamgf.png" alt="Image description" width="800" height="464"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Caso queira outros temas, você pode consultar este &lt;a href="https://windowsterminalthemes.dev/" rel="noopener noreferrer"&gt;link&lt;/a&gt;.&lt;/p&gt;

&lt;p&gt;Por fim, vamos definir o Ubuntu 24.04 como o sistema padrão do nosso Windows Terminal. Para isso, acesse as configurações do Windows Terminal, conforme a imagem abaixo.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fmr7v2e21ggba4gko5fra.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fmr7v2e21ggba4gko5fra.png" alt="Image description" width="800" height="468"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Agora, vamos definir o Ubuntu como o shell padrão do Windows Terminal.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F8qaytar1abbxmmu1uqsn.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F8qaytar1abbxmmu1uqsn.png" alt="Image description" width="800" height="464"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Agora, basta salvar as alterações e, ao iniciar um novo Windows Terminal, ele abrirá automaticamente com o Ubuntu 24.04 como padrão.&lt;/p&gt;

&lt;h2&gt;
  
  
  Configuração do Ubuntu para Desenvolvimento e Operações (DevOps/SRE)
&lt;/h2&gt;

&lt;p&gt;Feitas todas as configurações anteriores, chegou o momento de começarmos a configurar e instalar os pacotes necessários para o nosso fluxo de desenvolvimento utilizando o WSL com o Ubuntu Linux.&lt;/p&gt;

&lt;p&gt;Para isso, vamos abrir o Windows Terminal e nos logar como root utilizando o comando sudo su, seguido da senha que definimos na etapa anterior.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Ff20ys057ikymbog714uh.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Ff20ys057ikymbog714uh.png" alt="Image description" width="800" height="462"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Agora, vamos realizar dois passos que considero essenciais. O primeiro é habilitar o suporte para a arquitetura 32 bits. Em seguida, vamos ativar o Ubuntu Pro para garantir suporte estendido no WSL e obter patches adicionais de segurança.&lt;/p&gt;

&lt;p&gt;Para ativar o suporte à arquitetura 32 bits, execute o comando a seguir como root:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;dpkg --add-architecture i386

&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Agora, vamos habilitar o Ubuntu Pro, uma funcionalidade da Canonical, que oferece suporte estendido para versões Ubuntu LTS, além de patches de segurança, sem custo para uso doméstico. Para isso, acesse este &lt;a href="https://login.ubuntu.com/" rel="noopener noreferrer"&gt;link&lt;/a&gt; e crie uma conta.&lt;/p&gt;

&lt;p&gt;Após criarmos a conta, é o momento de obter a nossa chave do Ubuntu Pro. Para isso, vamos acessar a opção Your Subscription, conforme a imagem a seguir:&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fjcroq5oqhe5ub2yehti8.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fjcroq5oqhe5ub2yehti8.png" alt="Image description" width="800" height="331"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Agora, vamos copiar o comando abaixo, colá-lo no nosso terminal e pressionar Enter.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F669jwp2a9crzx2kw19lb.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F669jwp2a9crzx2kw19lb.png" alt="Image description" width="800" height="402"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Se tudo correr como esperado, você verá uma tela semelhante a esta:&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F1pt9dplgop0tsogkn6x5.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F1pt9dplgop0tsogkn6x5.png" alt="Image description" width="800" height="430"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Agora, vamos atualizar os repositórios e o sistema utilizando o comando a seguir:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;sudo apt update &amp;amp;&amp;amp; sudo apt dist-upgrade -y

&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Com o comando acima, teremos nossa lista de repositórios atualizada, além de garantir que todos os pacotes iniciais do Ubuntu estejam na versão mais recente.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F5u5n43g6u7a36rq0syew.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F5u5n43g6u7a36rq0syew.png" alt="Image description" width="800" height="427"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Instalando ferramentas essenciais&lt;br&gt;
Agora, chegou o momento de realizar a instalação dos pacotes, com o objetivo de garantir um ambiente capaz de suportar adequadamente a carga de trabalho de DevOps e SRE.&lt;/p&gt;

&lt;p&gt;Iniciaremos a instalação dos pacotes abaixo, responsáveis por fornecer ferramentas essenciais para o desenvolvimento, como build-essential, default-jdk, cmake, além de utilitários para análise de rede e vulnerabilidades, como nmap, sqlmap, sslscan, e ainda o git para versionamento de código, o curl para transferência de dados entre domínios e servidores, o poderoso editor de texto via terminal Neovim e um shell mais performático e customizado com o zsh.&lt;/p&gt;

&lt;p&gt;Além dos pacotes mencionados, também instalaremos o suporte a múltiplas linguagens de programação, como Python, Rust, OCaml, Haskell, Lua, R, o navegador de terminal Lynx, ferramentas para SecOps, como nikto, e o john para testes de vulnerabilidades e pentest. Também será instalado o pacote ubuntu-restricted-extras, que inclui codecs e as fontes da Microsoft, caso desejemos utilizar o WSLG, a interface gráfica dentro do WSL.&lt;/p&gt;

&lt;p&gt;Para realizar a instalação dos pacotes acima, basta executar o seguinte comando:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;sudo apt install build-essential default-jdk libssl-dev exuberant-ctags ncurses-term ack-grep silversearcher-ag curl gnupg fontconfig imagemagick libmagickwand-dev software-properties-common git vim-gtk3 neovim emacs micro lyx net-tools nmap sqlmap sslscan traceroute nikto ubuntu-restricted-extras gdebi-core cmake cmake-extras flatpak flatpak-builder python3 python3-pip python3-dev python3-apt python3-venv rust-all elinks links lynx jq bc mc opam ocaml lua5.4 haskell-stack cabal-install ghc john rlwrap gawk sassc r-base zsh neofetch eza bat dialog zenity -y
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Com a instalação acima finalizada, vamos instalar ferramentas essenciais para complementar a instalação anterior, que incluem bibliotecas para gráficos e interfaces gráficas, suporte a OpenGL, manipulação de XML, utilitários para automação, comunicação segura via SSH e acesso a complementos para comunicação de banco de dados.&lt;/p&gt;

&lt;p&gt;Para isso, vamos executar o comando a seguir:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;sudo apt-get -y install autoconf m4 libwxgtk3.2-dev libwxgtk-webview3.2-dev libgl1-mesa-dev libglu1-mesa-dev libpng-dev unixodbc-dev xsltproc fop libxml2-utils
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Com a instalação anterior finalizada, vamos instalar agora pacotes cruciais para automação de builds e configuração de projetos, pacotes para trabalhar com arquivos YAML, bibliotecas para a linguagem C, libtool para gerenciamento de bibliotecas compartilhadas, extrator de arquivos com Unzip e suporte ao SQLite, ideais para bancos de dados pequenos, leves e embarcarados.&lt;/p&gt;

&lt;p&gt;Para isso, executaremos o comando a seguir:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;sudo apt install automake autoconf libreadline-dev libyaml-dev libxslt-dev libffi-dev libtool unzip zlib1g-dev sqlite3 libsqlite3-dev
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Agora, vamos instalar pacotes essenciais para lidarmos tanto com o poderoso framework web em C++ chamado Drogon Framework, compiladores padrão para C e C++ com gcc e g++, cmake para automação de processos de construção de projetos e garantir conexões seguras e criptografadas nas conexões SSH.&lt;/p&gt;

&lt;p&gt;Para isso, vamos executar o trecho a seguir:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;sudo apt install gcc g++ cmake libjsoncpp-dev uuid-dev openssl

&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Agora, vamos instalar os extratores para arquivos compactados em diversas extensões, como RAR, ZIP, TAR, entre outros.&lt;/p&gt;

&lt;p&gt;Basta executar o comando abaixo para realizar a instalação:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;sudo apt install unace unrar p7zip-full sharutils uudeview arj cabextract lzip zlib1g-dev lbzip2 lrzip pbzip2 lzop

&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Por fim, vamos instalar os pacotes necessários para compilar e otimizar códigos tanto na linguagem C quanto na linguagem C++, incluindo o LLVM (nas versões 14 a 17), o compilador Clang, o mingw-w64 para códigos compatíveis com Windows, além do gcc-multilib e g++-multilib para suportar a criação de binários tanto em 32 como em 64 bits.&lt;/p&gt;

&lt;p&gt;Basta executar o comando abaixo para realizar a instalação:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;sudo apt install llvm llvm-14 llvm-15 llvm-16 llvm-17 clang mingw-w64 gcc-multilib g++-multilib

&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Com a instalação dos pacotes acima, vamos ter um ambiente de desenvolvimento capaz de lidar com uma boa gama de aplicações, além de permitir compilações de código para múltiplas plataformas como Linux, Windows e MacOS. Também deixamos o ambiente preparado para trabalhar inicialmente com algumas ações de DevSecOps (que vamos aprimorar a seguir).&lt;/p&gt;

&lt;p&gt;Instalação do Suporte ao .NET (C#)&lt;br&gt;
Com o passo anterior concluído, vamos agora configurar o suporte à linguagem .NET no nosso Ubuntu rodando via WSL. Embora seja possível usar o próprio Windows para essa finalidade, o foco deste artigo é utilizar o WSL como ambiente de desenvolvimento, portanto, é altamente recomendável realizar a instalação do suporte ao .NET diretamente dentro dele.&lt;/p&gt;

&lt;p&gt;Para começar a trabalhar com .NET, precisamos primeiro adicionar o suporte ao PPA da Microsoft com o seguinte comando:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;sudo add-apt-repository ppa:dotnet/backports

&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Com o repositório acima adicionado, vamos realizar a instalação de duas versões do .NET: primeiro a versão 8.0 e, em seguida, a versão 9.0. Para isso, vamos executar os seguintes comandos:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Instalando o SDK 8.0 no Ubuntu:
&lt;/li&gt;
&lt;/ul&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;sudo apt-get update &amp;amp;&amp;amp; \
  sudo apt-get install -y dotnet-sdk-8.0
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;ul&gt;
&lt;li&gt;Instalando o SDK 9.0 no Ubuntu:
&lt;/li&gt;
&lt;/ul&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;sudo apt-get update &amp;amp;&amp;amp; \
  sudo apt-get install -y dotnet-sdk-9.0
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;h2&gt;
  
  
  Instalação do Suporte aos Pacotes Nix (Opcional)
&lt;/h2&gt;

&lt;p&gt;No mundo Linux, encontramos diversas distribuições com particularidades bem interessantes. Temos os pacotes .deb, utilizados na família Debian/Ubuntu, os pacotes .rpm, usados pela família Red Hat e OpenSuse, Snap, que é um pacote próprio do Ubuntu, AppImage e Flatpak, que são pacotes multi-distro, visando oferecer uma aplicação isolada, como uma espécie de "container", sem comprometer as bibliotecas e o sistema raiz, permitindo que seja portável.&lt;/p&gt;

&lt;p&gt;Dentre os exemplos citados acima, encontramos uma distribuição Linux interessante chamada NixOS, cujo grande diferencial é ser uma distribuição imutável e trabalhar com aplicações segregadas da raiz do sistema, em uma espécie de sandbox, utilizando o Nix Shell.&lt;/p&gt;

&lt;p&gt;A grande vantagem dos pacotes Nix é a escrita de uma derivação, muito parecida com a lógica do Ansible ou do Terraform, permitindo que você versionem e compartilhem um arquivo .nix. Dessa forma, outros usuários podem ter o ambiente necessário para realizar manutenções e alterações no projeto, sem a necessidade de "poluir" o seu sistema.&lt;/p&gt;

&lt;p&gt;Para maiores detalhes sobre o NixOS e seu sistema de pacotes, consulte este &lt;a href="https://nix.dev/tutorials/first-steps/" rel="noopener noreferrer"&gt;link&lt;/a&gt;.&lt;/p&gt;

&lt;p&gt;Vamos instalar o suporte ao Nix e NixShell com o seguinte comando como root:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;sudo sh &amp;lt;(curl -L https://nixos.org/nix/install) --daemon

&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;O processo de instalação é bem simples. Ele solicitará algumas confirmações, nas quais devemos pressionar y e seguir até o final. Isso habilitará o suporte aos pacotes Nix.&lt;/p&gt;

&lt;h2&gt;
  
  
  Instalação do Suporte ao CUDA (Somente para Nvidia):
&lt;/h2&gt;

&lt;p&gt;Caso você tenha uma placa Nvidia da série RTX (preferencialmente) e pretenda trabalhar com alta carga de processamento de dados, aplicações em IA ou utilizar a sua GPU no processo de desenvolvimento, como por exemplo com PyTorch ou Anaconda, é fortemente recomendado que instale este pacote.&lt;/p&gt;

&lt;p&gt;Como a Nvidia constantemente atualiza a versão do driver, é recomendado seguir as instruções para a última versão disponível, que pode ser obtida &lt;a href="https://developer.nvidia.com/cuda-downloads?target_os=Linux&amp;amp;target_arch=x86_64&amp;amp;Distribution=WSL-Ubuntu&amp;amp;target_version=2.0&amp;amp;target_type=deb_network" rel="noopener noreferrer"&gt;aqui&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Na data deste arquivo, a última versão disponível é a 12.8. Para isso, vamos executar o seguinte comando:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;cd /tmp
wget https://developer.download.nvidia.com/compute/cuda/repos/wsl-ubuntu/x86_64/cuda-keyring_1.1-1_all.deb
sudo dpkg -i cuda-keyring_1.1-1_all.deb
sudo apt-get update
sudo apt-get -y install cuda-toolkit-12-8
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Após executar o trecho acima, o CUDA estará instalado em nosso Ubuntu 24.04.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Observação:&lt;/strong&gt; Caso tenha optado por outra distribuição durante o processo de instalação do WSL, basta selecionar a sua versão do Linux e seguir as instruções do site, conforme a imagem a seguir:&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fegvfzbwgh31cvkupd69h.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fegvfzbwgh31cvkupd69h.png" alt="Image description" width="800" height="252"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h2&gt;
  
  
  Instalação de Suporte ao Maven, Groovy, Gradle e Outras Linguagens
&lt;/h2&gt;

&lt;p&gt;Agora, vamos instalar o suporte a outras linguagens de programação e frameworks essenciais para termos um ambiente de desenvolvimento abrangente. Habilitaremos o suporte a ferramentas para Java, C, C++, Kotlin, Python, além da linguagem Lua para scripts.&lt;/p&gt;

&lt;p&gt;Para isso, vamos executar o seguinte comando:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;apt install maven groovy valac lua5.4 gradle openjfx jython

&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;h2&gt;
  
  
  Instalação do Suporte ao GStreamer
&lt;/h2&gt;

&lt;p&gt;Nesta etapa, vamos instalar o suporte à reprodução de mídia dentro do WSL, de forma que seja possível utilizar o Google Chrome com um desempenho semelhante ao de uma versão nativa no Windows. Esse cenário é ideal, por exemplo, para testar uma aplicação PHP dentro do WSL.&lt;/p&gt;

&lt;p&gt;Com o comando a seguir, teremos amplo suporte à reprodução de mídia, edição e processamento, streaming, codificação e decodificação. Para isso, basta executar o trecho abaixo no terminal como root:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;apt-get install libgstreamer1.0-dev libgstreamer-plugins-base1.0-dev libgstreamer-plugins-bad1.0-dev gstreamer1.0-plugins-base gstreamer1.0-plugins-good gstreamer1.0-plugins-bad gstreamer1.0-plugins-ugly gstreamer1.0-libav gstreamer1.0-tools gstreamer1.0-x gstreamer1.0-alsa gstreamer1.0-gl gstreamer1.0-gtk3 gstreamer1.0-qt5 gstreamer1.0-pulseaudio
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;h2&gt;
  
  
  Instalando o Google Chrome no WSL (Opcional)
&lt;/h2&gt;

&lt;p&gt;Eu geralmente instalo um navegador web dentro do WSL. Embora as aplicações no WSL funcionem perfeitamente no Windows, graças ao parâmetro localhostForwarding=true que habilitamos no .wslconfig, ter um navegador dentro do WSL é uma boa prática, como uma precaução.&lt;/p&gt;

&lt;p&gt;Para isso, vamos utilizar o wget para realizar o download do arquivo .deb neste &lt;a href="https://www.google.com/chrome/?platform=linux" rel="noopener noreferrer"&gt;link&lt;/a&gt;.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F4113k8jhsxodt12hn3d8.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F4113k8jhsxodt12hn3d8.png" alt="Image description" width="800" height="406"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Após realizar o download do arquivo, vamos copiar o pacote .deb para dentro do nosso WSL utilizando o Windows Explorer.&lt;/p&gt;

&lt;p&gt;Para isso, acesse o diretório onde você salvou o arquivo .deb.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fz4kvsp381i6nka0d0sjx.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fz4kvsp381i6nka0d0sjx.png" alt="Image description" width="800" height="447"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Vamos clicar com o botão direito do mouse e selecionar a opção Copiar.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fvmee77wkgqmlc1vwfwzr.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fvmee77wkgqmlc1vwfwzr.png" alt="Image description" width="800" height="443"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Agora, vamos acessar os diretórios do WSL pelo Windows Explorer.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F7ddu18bt1ice6xswdza6.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F7ddu18bt1ice6xswdza6.png" alt="Image description" width="800" height="446"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Agora, vamos acessar a pasta /tmp dentro do WSL:&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F68tcanq0js2zsvubqrfb.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F68tcanq0js2zsvubqrfb.png" alt="Image description" width="800" height="452"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Agora, vamos colocar o arquivo .deb recém-baixado.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fvcnhvrexkn0pvovjx0h0.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fvcnhvrexkn0pvovjx0h0.png" alt="Image description" width="800" height="451"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Com isso, vamos abrir o Windows Terminal e acessar o diretório /tmp via linha de comando:&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fncooizl7op90aelw14i0.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fncooizl7op90aelw14i0.png" alt="Image description" width="800" height="464"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Se pesquisarmos pelo conteúdo, encontraremos o arquivo .deb recém-copiado, utilizando o comando a seguir:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;ls | grep google-chrome

&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fprvsnc12zh9975g0mjll.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fprvsnc12zh9975g0mjll.png" alt="Image description" width="800" height="466"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Agora, vamos instalar o pacote com o comando a seguir, como root.&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;sudo dpkg -i google-chrome-stable_current_amd64.deb

&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Aguarde o processo de instalação finalizar e, em seguida, você poderá acessar o Google Chrome de duas formas. A primeira é via terminal, com o comando a seguir, como usuário normal (lembrando que ao fechar o terminal, o Google Chrome será encerrado):&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fiw9ner1qh3q13juvdeq3.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fiw9ner1qh3q13juvdeq3.png" alt="Image description" width="800" height="434"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;A segunda opção é pelo Menu Iniciar, filtrando por Google Chrome (aparecerá uma versão com o ícone de um pinguim, junto ao logo). Dessa forma, ele funcionará até que o usuário finalize a sessão:&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fpy9c1uuql2teu15dy9l8.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fpy9c1uuql2teu15dy9l8.png" alt="Image description" width="768" height="726"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Importante: Quando abrir o Google Chrome pela primeira vez, ele perguntará se deseja torná-lo o navegador padrão do WSL. Fica a seu critério decidir. Também é possível instalar outros navegadores, como Firefox, Brave, entre outros, de acordo com a preferência do usuário.&lt;/p&gt;

&lt;h2&gt;
  
  
  Instalação e configuração do Oh-My-Zsh com plugins para terminal no usuário root
&lt;/h2&gt;

&lt;p&gt;No Linux, existem diversos tipos de shell que podemos utilizar para potencializar a nossa produtividade. Entre os mais conhecidos, temos o Bash, presente na grande maioria das distribuições, o Z shell (Zsh) — que será o utilizado nesta configuração — e o FISH (Friendly Interactive Shell), que também é bastante popular. Embora existam muitas outras opções de shells, neste tutorial vamos nos concentrar na configuração do Oh-My-Zsh, uma ferramenta que vai incrementar o desempenho e a performance do Zsh, o shell que já instalamos no passo anterior, Instalando ferramentas essenciais.&lt;/p&gt;

&lt;p&gt;Para saber mais sobre o Oh-My-Zsh, consulte o seguinte &lt;a href="https://ohmyz.sh/" rel="noopener noreferrer"&gt;link&lt;/a&gt;.&lt;/p&gt;

&lt;p&gt;Para instalar o Oh-My-Zsh, vamos rodar os seguintes comandos como root:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;sudo su
zsh
cd
sh -c "$(curl -fsSL https://raw.githubusercontent.com/ohmyzsh/ohmyzsh/master/tools/install.sh)"
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Após rodar o comando acima, você perceberá que a estética do terminal será alterada.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fwlfidsg8bkfuzrlltmit.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fwlfidsg8bkfuzrlltmit.png" alt="Image description" width="800" height="450"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Agora, vamos instalar alguns plugins que irão aumentar a nossa produtividade no terminal. Para isso, instalaremos os seguintes plugins:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;&lt;p&gt;zsh-autosuggestions: Responsável por sugerir comandos de forma inteligente enquanto você digita no terminal.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;zsh-completions: Responsável por expandir as opções de autocompletar no Zsh, oferecendo sugestões para comandos, arquivos e argumentos que não são cobertos nativamente.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;zsh-k: Responsável por melhorar a visualização e listagem de diretórios no Zsh, incluindo informações sobre pastas Git de forma mais legivel ao usuário.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;zsh-fast-syntax-highlighting: Responsável por melhorar a legibilidade e a compreensão de códigos, comandos e scripts no terminal, aplicando destaques de sintaxe em tempo real, o que facilita a identificação de erros e a navegação entre diferentes elementos.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;zsh-powerlevel10k: Um tema moderno, inspirado no Starship, projetado para ser utilizado no Oh-My-Zsh, oferecendo uma aparência limpa e funcional para o terminal.&lt;/p&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Para realizamos a instalação vamos executar os comandos abaixo como usuário root:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Instalando zsh-autosuggestions:
&lt;/li&gt;
&lt;/ul&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;git clone https://github.com/zsh-users/zsh-autosuggestions ${ZSH_CUSTOM:-~/.oh-my-zsh/custom}/plugins/zsh-autosuggestions

&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;ul&gt;
&lt;li&gt;Instalando zsh-completions:
&lt;/li&gt;
&lt;/ul&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;git clone https://github.com/zsh-users/zsh-completions ${ZSH_CUSTOM:-${ZSH:-~/.oh-my-zsh}/custom}/plugins/zsh-completions

&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;ul&gt;
&lt;li&gt;Instalando zsh-k:
&lt;/li&gt;
&lt;/ul&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;git clone https://github.com/supercrabtree/k $ZSH_CUSTOM/plugins/k

&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;ul&gt;
&lt;li&gt;Instalando zsh-fast-syntax-highlighting:
&lt;/li&gt;
&lt;/ul&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;git clone https://github.com/zdharma-continuum/fast-syntax-highlighting.git \  ${ZSH_CUSTOM:-$HOME/.oh-my-zsh/custom}/plugins/fast-syntax-highlighting

&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;ul&gt;
&lt;li&gt;Instalando powerlevel10k:
&lt;/li&gt;
&lt;/ul&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;git clone --depth=1 https://github.com/romkatv/powerlevel10k.git "${ZSH_CUSTOM:-$HOME/.oh-my-zsh/custom}/themes/powerlevel10k"

&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Com os pacotes acima instalados, chegou o momento de configurarmos o arquivo .zshrc para garantir um visual agradável com o Powerlevel10k, além de habilitarmos as extensões recém-instaladas. Para isso, ainda como usuário root, vamos editar o arquivo .zshrc utilizando o editor de sua preferência. Neste tutorial, usaremos o vim.&lt;/p&gt;

&lt;p&gt;Com o arquivo aberto, vamos localizar o trecho a seguir, que está logo no início do documento:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;ZSH_THEME="robbyrussell"

&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Vamos alterar esta linha para o tema powerlevel10k, que instalamos na etapa anterior, deixando-a da seguinte forma:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;ZSH_THEME="powerlevel10k/powerlevel10k"

&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Agora, vamos ativar os plugins que instalamos anteriormente. Para isso, localize o seguinte trecho:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;plugins=(git)

&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;E vamos acrescentar os plugins, deixando-os exatamente igual ao trecho a seguir:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;plugins=(
  fast-syntax-highlighting
  git
  k
  zsh-autosuggestions
  zsh-completions
)
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Realizadas as alterações acima, vamos salvar o nosso arquivo. No caso do vim, vamos apertar a tecla ESC e depois digitar a combinação :wq!.&lt;/p&gt;

&lt;p&gt;Após retornarmos ao terminal, é a hora de carregar o arquivo de configuração que editamos anteriormente. Para isso, vamos executar o comando a seguir:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;source .zshrc

&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Com isso, veremos uma tela para configurarmos o nosso tema do Powerlevel10K, semelhante à tela abaixo:&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fpnw4mi0uj1lclf5t6fnx.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fpnw4mi0uj1lclf5t6fnx.png" alt="Image description" width="800" height="430"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;A seguir, estão os passos que eu utilizo para configurar o meu shell ZSH. Lembre-se de que você pode configurar conforme o seu gosto. Caso queira usar a mesma configuração que eu, basta seguir as opções abaixo:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;1 - y
2-  y
3-  y
4 - 3
5 - y
6 - y
7 - 3
8 - 1
9 - 1
10 - 1
11 - 3
12 - 1
13 - 1
14 - 1
15 - 2
16 - 2
17 - y
18 - 1
19 - y
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Se você seguiu a mesma configuração que eu utilizo, terá um terminal semelhante ao visual abaixo:&lt;/p&gt;

&lt;h2&gt;
  
  
  Instalação e configuração do Oh-My-Zsh com plugins para terminal no usuário comum
&lt;/h2&gt;

&lt;p&gt;Agora, vamos realizar a instalação do Oh-My-Zsh e plugins para o nosso usuário comum, de forma que tenhamos um terminal mais robusto e produtivo para o nosso dia a dia. As etapas, em grande parte, serão semelhantes aos comandos que executamos para o usuário root na etapa anterior, porém teremos algumas particularidades, como a adição de alguns plugins extras, já que este será o usuário que utilizaremos no nosso dia a dia.&lt;/p&gt;

&lt;p&gt;Para iniciar o processo de instalação, vamos executar o seguinte comando no terminal como usuário comum:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;cd
zsh
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Isso mudará o nosso shell de bash para zsh. Agora, vamos iniciar o processo de instalação do Oh-My-Zsh, como realizamos na etapa anterior. O único detalhe é que, ao apertar y para definir o zsh como shell padrão, ele pedirá a nossa senha de root.&lt;/p&gt;

&lt;p&gt;Vamos instalar o Oh-My-Zsh com o comando a seguir:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;sh -c "$(curl -fsSL https://raw.githubusercontent.com/ohmyzsh/ohmyzsh/master/tools/install.sh)"
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Agora, vamos instalar os plugins para termos uma maior produtividade no nosso terminal. A seguir, segue uma breve descrição dos plugins que vamos adicionar no nosso Zsh:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;&lt;p&gt;zsh-autosuggestions: Responsável por sugerir comandos de forma inteligente enquanto você digita no terminal.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;zsh-completions: Responsável por expandir as opções de autocompletar no Zsh, oferecendo sugestões para comandos, arquivos e argumentos que não são cobertos nativamente.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;zsh-k: Responsável por melhorar a visualização e listagem de diretórios no Zsh, incluindo informações sobre pastas Git de forma mais legivel ao usuário.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;zsh-fast-syntax-highlighting: Responsável por melhorar a legibilidade e a compreensão de códigos, comandos e scripts no terminal, aplicando destaques de sintaxe em tempo real, o que facilita a identificação de erros e a navegação entre diferentes elementos.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;zsh-powerlevel10k: Um tema moderno, inspirado no Starship, projetado para ser utilizado no Oh-My-Zsh, oferecendo uma aparência limpa e funcional para o terminal.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;zsh-ask: Este plugin permite configurar uma integração com a API do ChatGPT, aumentando significativamente a produtividade. Para mais detalhes, consulte aqui.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;zsh-histdb: Este plugin busca armazenar seu histórico em um banco de dados SQLite3, melhorando a gestão e o acesso ao histórico de comandos executados no seu terminal. Para mais detalhes, consulte aqui.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;docker: Este plugin é responsável por adicionar alias e autocomplete para comandos, além de fazer o gerenciamento de containers Docker. Para mais detalhes, consulte aqui.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;docker-compose: Este plugin funciona de maneira semelhante ao Docker, porém, desta vez, para o Docker Compose, aumentando a produtividade do usuário. Para mais detalhes, consulte aqui.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;sudo: Este plugin adiciona o prefixo "sudo" ao pressionar "Esc", e, automaticamente, ele colocará o "sudo" no início do comando. Para mais detalhes, consulte aqui.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;web-search: Este plugin adiciona suporte a buscadores como Google, Bing e Wiki para o terminal, permitindo realizar buscas rápidas sem a necessidade de um navegador web. Para mais detalhes, consulte aqui.&lt;/p&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Para realizarmos a instalação dos plugins, vamos executar os comandos abaixo como usuário comum:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Instalando zsh-autosuggestions:
&lt;/li&gt;
&lt;/ul&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;git clone https://github.com/zsh-users/zsh-autosuggestions ${ZSH_CUSTOM:-~/.oh-my-zsh/custom}/plugins/zsh-autosuggestions

&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;ul&gt;
&lt;li&gt;Instalando zsh-completions:
&lt;/li&gt;
&lt;/ul&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;git clone https://github.com/zsh-users/zsh-completions ${ZSH_CUSTOM:-${ZSH:-~/.oh-my-zsh}/custom}/plugins/zsh-completions

&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;ul&gt;
&lt;li&gt;Instalando zsh-k:
&lt;/li&gt;
&lt;/ul&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;git clone https://github.com/supercrabtree/k $ZSH_CUSTOM/plugins/k

&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;ul&gt;
&lt;li&gt;Instalando zsh-fast-syntax-highlighting:
&lt;/li&gt;
&lt;/ul&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;git clone https://github.com/zdharma-continuum/fast-syntax-highlighting.git \  ${ZSH_CUSTOM:-$HOME/.oh-my-zsh/custom}/plugins/fast-syntax-highlighting

&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Instalando powerlevel10k:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;git clone --depth=1 https://github.com/romkatv/powerlevel10k.git "${ZSH_CUSTOM:-$HOME/.oh-my-zsh/custom}/themes/powerlevel10k"

&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;ul&gt;
&lt;li&gt;Instalando zsh-ask:
&lt;/li&gt;
&lt;/ul&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;git clone https://github.com/Licheam/zsh-ask ${ZSH_CUSTOM:-~/.oh-my-zsh/custom}/plugins/zsh-ask

&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;ul&gt;
&lt;li&gt;instalando zsh-histdb
&lt;/li&gt;
&lt;/ul&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;git clone https://github.com/larkery/zsh-histdb $HOME/.oh-my-zsh/custom/plugins/zsh-histdb

&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Agora, com os pacotes acima instalados, chegou a hora de configurarmos o arquivo .zshrc para o nosso usuário comum. Para isso, vamos abrir o arquivo .zshrc com o seu editor de texto preferido. Neste tutorial, usaremos o Vim.&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;cd
vim .zshrc
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Com o arquivo .zshrc aberto, chegou o momento de alterar o tema do nosso oh-my-zsh. Para isso, vamos localizar o trecho abaixo:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;ZSH_THEME="robbyrussell"

&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Vamos alterar esta linha para o tema powerlevel10k, que instalamos na etapa anterior, deixando-a da seguinte forma:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;ZSH_THEME="powerlevel10k/powerlevel10k"

&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Agora, vamos ativar os plugins que instalamos anteriormente. Para isso, localize o seguinte trecho:&lt;/p&gt;

&lt;p&gt;&lt;code&gt;plugins=(git)&lt;br&gt;
&lt;/code&gt;&lt;br&gt;
E vamos acrescentar os plugins, deixando-os exatamente igual ao trecho a seguir:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;plugins=(
  asdf
  copyfile
  dirhistory
  docker
  docker-compose
  fast-syntax-highlighting
  git
  jsontools
  kubectl
  k
  zsh-ask
  zsh-autosuggestions
  zsh-completions
  zsh-histdb
  sudo
  web-search
)
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Realizadas as alterações acima, vamos salvar o nosso arquivo. No caso do vim, vamos apertar a tecla ESC e depois digitar a combinação :wq!.&lt;/p&gt;

&lt;p&gt;Após retornarmos ao terminal, é a hora de carregar o arquivo de configuração que editamos anteriormente. Para isso, vamos executar o comando a seguir:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;source .zshrc

&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Com isso, veremos uma tela para configurarmos o nosso tema do Powerlevel10K, semelhante à tela abaixo:&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fpvaryqvuwwcvdt7j7pr3.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fpvaryqvuwwcvdt7j7pr3.png" alt="Image description" width="743" height="400"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;A seguir, estão os passos que eu utilizo para configurar o meu shell ZSH. Lembre-se de que você pode configurar conforme o seu gosto. Caso queira usar a mesma configuração que eu, basta seguir as opções abaixo:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;1 - y
2-  y
3-  y
4 - 3
5 - y
6 - y
7 - 3
8 - 1
9 - 1
10 - 1
11 - 3
12 - 1
13 - 1
14 - 1
15 - 2
16 - 2
17 - y
18 - 1
19 - y
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Se você seguiu a mesma configuração que eu utilizo, terá um terminal semelhante ao visual abaixo:&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F3dbopgioxohg1kexw509.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F3dbopgioxohg1kexw509.png" alt="Image description" width="800" height="463"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Com isso, vamos ter o nosso oh-my-zsh configurado e pronto para trabalharmos com maior produtividade.&lt;/p&gt;

&lt;h2&gt;
  
  
  Criando estrutura de pasta do linux na home do usuario:
&lt;/h2&gt;

&lt;p&gt;Como você pode ter notado, dentro do WSL não temos a árvore de diretórios padrão do Linux, ficando a cargo do usuário criar as pastas conforme a sua necessidade. Visando manter um ambiente semelhante ao do Linux, vamos criar a estrutura de arquivos de uma distribuição Linux na home do nosso usuário. Para isso, vamos executar o comando abaixo:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;cd
xdg-user-dirs-update
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Com isso, o seu diretório /home estará conforme a imagem abaixo:&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fvyuxijgndwy6it5cw7if.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fvyuxijgndwy6it5cw7if.png" alt="Image description" width="800" height="425"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h2&gt;
  
  
  Instalando o Webserver LAMP (Apache, MySQL e PHP)
&lt;/h2&gt;

&lt;p&gt;Agora vamos instalar o LAMP, que é um acrônimo para Linux, Apache, MySQL e PHP, disponibilizando um ambiente completo dentro do WSL. Nessa etapa, vamos instalar:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;&lt;p&gt;Apache: Poderoso servidor web para hospedagem de aplicações.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;MySQL: Banco de dados relacional bastante utilizado em ambientes produtivos.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;PHP: Linguagem de programação fortemente utilizada para desenvolvimento web.&lt;/p&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Importante: Caso queira seguir com um ambiente mais limpo, recomendo que pule para a etapa de instalar o Docker e Docker Compose e, após instalar o Docker, suba as stacks conforme o seu caso de uso.&lt;/p&gt;

&lt;p&gt;Vamos seguir com a instalação dos pacotes para isso vamos rodar os comandos abaixo como root.&lt;/p&gt;

&lt;p&gt;Instalando Apache: Para instalarmos o Apache, vamos executar os comandos abaixo:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;sudo apt install apache2 ufw -y

&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Agora vamos liberar o acesso de entrada no Apache no nosso firewall UFW:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;sudo ufw allow in "Apache Full"

&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Instalando o MySQL: Agora vamos iniciar o processo de instalação do banco de dados:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;sudo apt install mysql-server -y

&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Após a instalação do mysql-server no Ubuntu, temos um bug em que o comando mysql_secure_installation não funciona corretamente. Para evitarmos esse tipo de problema, vamos primeiro alterar a senha do usuário root para que possamos prosseguir com a instalação:&lt;/p&gt;

&lt;p&gt;Como root, execute o comando abaixo:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;sudo mysql

&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Depois, rode a query a seguir para mudar a senha do usuário root do MySQL:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;ALTER USER 'root'@'localhost' IDENTIFIED WITH mysql_native_password BY 'sua-senha-aqui';

&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Após definir a senha do usuário root, vamos seguir o processo de instalação normal do MySQL. Para isso, vamos rodar o comando a seguir:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;sudo mysql_secure_installation

&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Ao executar o comando, vamos ser direcionados para a tela de configuração do MySQL. Para isso, vamos realizar a configuração a seguir&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Nessa primeira etapa, vamos apertar y para validar o componente de password:&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fwul814kk48ns6j4np3pv.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fwul814kk48ns6j4np3pv.png" alt="Image description" width="800" height="426"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Agora vamos selecionar a exigência mínima para a senha. Podemos selecionar a força da senha:&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fu9qzsfh2akcl1tcgpv4i.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fu9qzsfh2akcl1tcgpv4i.png" alt="Image description" width="800" height="427"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;&lt;p&gt;Agora, ele vai perguntar. Responda y para definir a senha do root (pode ser a mesma) ou coloque uma senha baseada nos critérios definidos anteriormente.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Após definir a senha, ele vai perguntar se você deseja seguir com a configuração do método de autenticação. Vamos responder y.&lt;/p&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fwharls1h8krh2va7rtd9.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fwharls1h8krh2va7rtd9.png" alt="Image description" width="800" height="428"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Vamos remover os usuários anônimos:&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F96des7p38uifpeqmt2ad.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F96des7p38uifpeqmt2ad.png" alt="Image description" width="800" height="427"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Vamos desativar o acesso remoto ao usuário root:&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fl4ftyd4pjj2keni8unv6.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fl4ftyd4pjj2keni8unv6.png" alt="Image description" width="800" height="426"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Vamos remover os bancos de dados de teste:&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F995nbjpcy8kvg6un8wrw.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F995nbjpcy8kvg6un8wrw.png" alt="Image description" width="800" height="427"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Por fim, vamos recarregar os privilégios:&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F0g2up07zp1tmg8hq6hc1.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F0g2up07zp1tmg8hq6hc1.png" alt="Image description" width="800" height="429"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Feita toda a configuração acima, chegou o momento de criarmos um usuário comum com permissão de root, evitando que fiquemos utilizando o usuário root para o nosso acesso no MySQL. Para isso, vamos rodar o comando abaixo para nos autenticar como root, o que será necessário para criar o nosso usuário local:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;mysql -u root -p

&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Ele solicitará a sua senha de usuário root. Vamos informar a senha definida nos passos anteriores e rodar as instruções abaixo para criar um novo usuário, atentando-se para mudar os campos newuser e password.&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Criando um novo usuário no MySQL:
&lt;/li&gt;
&lt;/ul&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;CREATE USER 'newuser'@'localhost' IDENTIFIED BY 'password';

&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;ul&gt;
&lt;li&gt;Concedendo permissão para todos os privilégios no usuário recém-criado.
&lt;/li&gt;
&lt;/ul&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;GRANT ALL PRIVILEGES ON  *.*  TO 'newuser'@'localhost';

&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;ul&gt;
&lt;li&gt;Agora, vamos recarregar todos os privilégios.
&lt;/li&gt;
&lt;/ul&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;FLUSH PRIVILEGES;

&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Com o MySQL configurado, vamos realizar a instalação do PHP e do Composer no WSL. O primeiro passo é adicionar o repositório da versão mais recente do PHP. Nesse tutorial, vamos utilizar a versão 8.3.&lt;/p&gt;

&lt;p&gt;Para isso, vamos seguir os passos abaixo:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Adicionando o repositório do PHP mais recente:
&lt;/li&gt;
&lt;/ul&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;LC_ALL=C.UTF-8 sudo add-apt-repository ppa:ondrej/php 

&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;ul&gt;
&lt;li&gt;Vamos atualizar nossa lista de repositórios:
&lt;/li&gt;
&lt;/ul&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;sudo apt update

&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;ul&gt;
&lt;li&gt;Agora, vamos instalar as dependências para o PHP funcionar corretamente:
&lt;/li&gt;
&lt;/ul&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;sudo apt install software-properties-common ca-certificates lsb-release apt-transport-https
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;ul&gt;
&lt;li&gt;Instalando o PHP 8.3 e todas as suas dependências
&lt;/li&gt;
&lt;/ul&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;sudo apt-get install php8.3 php8.3-bcmath php8.3-bz2 php8.3-cgi php8.3-cli php8.3-common php8.3-curl php8.3-dba php8.3-dev php8.3-enchant php8.3-fpm php8.3-gd php8.3-gmp php8.3-imap php8.3-interbase php8.3-intl php8.3-ldap php8.3-mbstring php8.3-mysql php8.3-odbc php8.3-opcache php8.3-pgsql php8.3-phpdbg php8.3-pspell php8.3-readline php8.3-snmp php8.3-soap php8.3-sqlite3 php8.3-sybase php8.3-tidy php8.3-xml php8.3-xmlrpc php8.3-xsl php8.3-zip
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;ul&gt;
&lt;li&gt;Instalando dependências para o funcionamento do Compose:
&lt;/li&gt;
&lt;/ul&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;sudo apt install php-cli unzip

&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;ul&gt;
&lt;li&gt;Adicionando permissões para o PHP funcionar corretamente no Apache:
&lt;/li&gt;
&lt;/ul&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;a2enmod proxy_fcgi setenvif
a2enconf php8.3-fpm

&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;ul&gt;
&lt;li&gt;Reiniciando o serviço do Apache para refletir as alterações que realizamos:
&lt;/li&gt;
&lt;/ul&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;systemctl restart apache2

&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;ul&gt;
&lt;li&gt;Instalando o PHP Compose
&lt;/li&gt;
&lt;/ul&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;cd /tmp
curl -sS https://getcomposer.org/installer -o /tmp/composer-setup.php
HASH=`curl -sS https://composer.github.io/installer.sig`
echo $HASH
php -r "if (hash_file('SHA384', '/tmp/composer-setup.php') === '$HASH') { echo 'Installer verified'; } else { echo 'Installer corrupt'; unlink('composer-setup.php'); } echo PHP_EOL;"
sudo php /tmp/composer-setup.php --install-dir=/usr/local/bin --filename=composer
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Se tudo ocorreu bem, você verá uma tela semelhante à tela abaixo:&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fkxj37egaxh54x23539fb.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fkxj37egaxh54x23539fb.png" alt="Image description" width="800" height="430"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h2&gt;
  
  
  Instalando o NodeJS NPM e Yarn
&lt;/h2&gt;

&lt;p&gt;Agora, vamos instalar os pacotes do NodeJS, NPM e Yarn. Apesar disso, mais à frente, vamos utilizar o ASDF (entraremos em mais detalhes em tópico futuro neste artigo) como uma garantia de ter o ambiente NodeJS, NPM e Yarn, pois já enfrentei problemas com o ASDF. No pior cenário, isso não impacta meu trabalho.&lt;/p&gt;

&lt;p&gt;Importante: Esta etapa é opcional. Você pode utilizar somente o ASDF. Caso deseje, pode pular esta seção para Instalando o ASDF.&lt;/p&gt;

&lt;p&gt;Para instalarmos os pacotes acima, vamos executar o comando a seguir:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;sudo apt install nodejs npm yarn -y

&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Aguarde a instalação finalizar e, pronto, temos um ambiente para desenvolvimento Web usando NodeJS, NPM e Yarn.&lt;/p&gt;

&lt;h2&gt;
  
  
  Instalando o Ansible:
&lt;/h2&gt;

&lt;p&gt;Agora, vamos instalar o Ansible, que é uma ferramenta de automação para gerenciar sistemas pessoais e servidores, onde, através de um arquivo .yaml, conseguimos passar um playbook que automatizará a instalação de pacotes e a configuração do nosso ambiente. É ideal para automatizar e padronizar servidores remotos.&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Instalando o Ansible no Ubuntu:
&lt;/li&gt;
&lt;/ul&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;sudo apt update
sudo add-apt-repository --yes --update ppa:ansible/ansible
sudo apt install ansible -y
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Com o comando acima, vamos atualizar nossa lista de pacotes, adicionar o repositório oficial do Ansible e realizar a instalação do Ansible.&lt;/p&gt;

&lt;h2&gt;
  
  
  Instalando o Terraform Vault e Vagrant:
&lt;/h2&gt;

&lt;p&gt;Agora, vamos instalar dois pacotes para gerenciar nossa infraestrutura. O primeiro deles é o Terraform, uma poderosíssima ferramenta de Infrastructure as Code (IaC) para provisionamento de ambientes em cloud, como AWS, Microsoft Azure, Google Cloud, entre outras. O segundo é o Vagrant, uma poderosíssima ferramenta para gerenciamento de ambientes virtualizados de desenvolvimento. Por fim, temos o Vault, que é um pacote para gerenciamento de secrets e criptografia baseada em identidade.&lt;/p&gt;

&lt;p&gt;Para realizarmos a instalação, vamos executar os seguintes comandos como usuário root:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Fazendo o download da chave GPG do repositório da HashiCorp:
&lt;/li&gt;
&lt;/ul&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;wget -O- https://apt.releases.hashicorp.com/gpg | \
gpg --dearmor | \
sudo tee /usr/share/keyrings/hashicorp-archive-keyring.gpg &amp;gt; /dev/null
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;ul&gt;
&lt;li&gt;Adicionando o repositório da HashiCorp:
&lt;/li&gt;
&lt;/ul&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;echo "deb [signed-by=/usr/share/keyrings/hashicorp-archive-keyring.gpg] \
https://apt.releases.hashicorp.com $(lsb_release -cs) main" | \
sudo tee /etc/apt/sources.list.d/hashicorp.list
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;ul&gt;
&lt;li&gt;Atualizando a lista de repositórios:
&lt;/li&gt;
&lt;/ul&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;sudo apt update

&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;ul&gt;
&lt;li&gt;Instalando Terraform, Vagrant e Vault:
&lt;/li&gt;
&lt;/ul&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;sudo apt install terraform vagrant vault -y

&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Executados os comandos acima, teremos instalados os pacotes do Terraform, Vagrant e Vault, permitindo assim que tenhamos um leque maior de ferramentas de automação.&lt;/p&gt;

&lt;h2&gt;
  
  
  Instalando Banco de Dados Firebird, PostgreSQL, Memcached e Redis:
&lt;/h2&gt;

&lt;p&gt;Agora, vamos instalar alguns outros bancos de dados adicionais, onde vamos instalar dois bancos de dados relacionais: o Firebird e o PostgreSQL; o Memcached, que é um sistema para armazenamento de chave-valor baseado em memória distribuída; e o Redis, que é um sistema de armazenamento chave-valor ideal para armazenamento de dados, muito utilizado para o armazenamento de tokens de sessão.&lt;/p&gt;

&lt;p&gt;Importante: Não é necessário instalar esses pacotes como root. Caso prefira, ou tenha um hardware mais limitado, é recomendado utilizar o Docker para subir os serviços, somente quando for necessário.&lt;/p&gt;

&lt;p&gt;Para isso, como usuário root, vamos rodar o comando a seguir:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;sudo apt install postgresql postgresql-contrib postgresql-server-dev-16 redis-server libhiredis-dev memcached libmemcached-dev firebird-server
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Caso queira habilitar os serviços como daemon do systemd, ou seja, sempre que abrir o WSL os bancos de dados iniciarem automaticamente, podemos rodar os comandos a seguir para habilitar cada serviço:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Habilitando o Firebird no systemd:
&lt;/li&gt;
&lt;/ul&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;systemctl enable firebird-3.0

&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;ul&gt;
&lt;li&gt;Habilitando o PostgreSQL no systemd:
&lt;/li&gt;
&lt;/ul&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;systemctl enable postgresql

&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;ul&gt;
&lt;li&gt;Habilitando o Memcached no systemd:
&lt;/li&gt;
&lt;/ul&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;systemctl enable memcached

&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;ul&gt;
&lt;li&gt;Habilitando o Redis no systemd:
&lt;/li&gt;
&lt;/ul&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;systemctl enable redis-server

&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Com os comandos acima executados, ao iniciar o nosso WSL, automaticamente os serviços do Firebird, PostgreSQL, Memcached e Redis estarão em execução.&lt;/p&gt;

&lt;h2&gt;
  
  
  Instalando MongoDB Community:
&lt;/h2&gt;

&lt;p&gt;Agora, vamos realizar a instalação de um poderosíssimo banco de dados NoSQL baseado em chave-valor e organizado por collections, que é o MongoDB. Esse banco é muito utilizado no ambiente corporativo, principalmente em cenários serverless.&lt;/p&gt;

&lt;p&gt;Importante: Assim como os demais bancos de dados, você pode optar por subir o MongoDB como Docker, caso prefira ou seu hardware seja mais limitado.&lt;/p&gt;

&lt;p&gt;Para instalarmos o MongoDB, vamos executar os comandos abaixo como usuário root:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Mudando para a pasta temporária e baixando a chave GPG do repositório do MongoDB 8.0 (última versão na data deste artigo):
&lt;/li&gt;
&lt;/ul&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;curl -fsSL https://www.mongodb.org/static/pgp/server-8.0.asc | \
   sudo gpg -o /usr/share/keyrings/mongodb-server-8.0.gpg \
   --dearmor
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;ul&gt;
&lt;li&gt;Adicionando o repositório e definindo o caminho da chave GPG que baixamos anteriormente:
&lt;/li&gt;
&lt;/ul&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;echo "deb [arch=amd64 signed-by=/usr/share/keyrings/mongodb-server-8.0.gpg ] http://repo.mongodb.org/apt/debian bookworm/mongodb-org/8.0 main" | sudo tee /etc/apt/sources.list.d/mongodb-org-8.0.list
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;ul&gt;
&lt;li&gt;Recarregando a lista de repositórios para obter os pacotes do MongoDB:
&lt;/li&gt;
&lt;/ul&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;sudo apt-get update

&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;ul&gt;
&lt;li&gt;Instalando o pacote do MongoDB Community Server:
&lt;/li&gt;
&lt;/ul&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;sudo apt-get install -y mongodb-org 

&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Com os comandos acima, teremos o MongoDB instalado e configurado no nosso WSL. Caso queira e tenha hardware disponível, você também pode habilitá-lo no systemd, de forma que, ao iniciar o WSL, o MongoDB Community Server já esteja em execução.&lt;/p&gt;

&lt;p&gt;Para isso, vamos rodar o comando a seguir como usuário root:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;systemctl enable mongod
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;h2&gt;
  
  
  Instalando MySQL Shell
&lt;/h2&gt;

&lt;p&gt;Quando pensamos em ambiente de DevOps/SRE, uma ferramenta poderosíssima que precisamos ter em nosso ambiente é o MySQL Shell.&lt;/p&gt;

&lt;p&gt;Essa ferramenta é responsável por disponibilizar um shell para o MySQL, de forma que consigamos, além de rodar queries, rodar scripts usando algumas linguagens de programação que nos auxiliem na validação de dados de tabelas, colunas, collations, além de nos trazer insights de pré-check para atualizações de versões do MySQL, o que acaba nos auxiliando no processo de atualizações em ambiente de cloud ou on-premises.&lt;/p&gt;

&lt;p&gt;Para instalarmos, vamos executar o comando a seguir como root:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;sudo apt install -y mysql-shell 

&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;h2&gt;
  
  
  Instalando Atlas Cli:
&lt;/h2&gt;

&lt;p&gt;Agora, vamos realizar a instalação da ferramenta Atlas CLI, uma ferramenta destinada ao gerenciamento do serviço SaaS do MongoDB, conhecido como &lt;a href="https://www.mongodb.com/products/platform/atlas-database" rel="noopener noreferrer"&gt;Mongo Atlas&lt;/a&gt;. O Mongo Atlas oferece uma interface web por meio da qual é possível criar projetos e clusters MongoDB, com a gestão compartilhada entre a equipe e o time do Atlas. A principal proposta do Atlas é fornecer um ambiente MongoDB que seja escalável e resiliente.&lt;/p&gt;

&lt;p&gt;Vamos executar o comando abaixo com privilégios de usuário root:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;sudo apt-get install -y mongodb-atlas

&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;h2&gt;
  
  
  Instalando Docker:
&lt;/h2&gt;

&lt;p&gt;Agora, vamos proceder com a instalação do Docker e Docker Compose, ferramentas essenciais para permitir a criação de ambientes containerizados com aplicações isoladas. Dessa forma, poderemos validar as aplicações que estamos desenvolvendo ou testar serviços disponíveis no Docker Hub.&lt;/p&gt;

&lt;p&gt;Vamos executar o trecho abaixo para instalar o Docker com privilégios de usuário root para adicionar a chave do repositório do Docker:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;sudo apt-get update
sudo apt-get install ca-certificates curl
sudo install -m 0755 -d /etc/apt/keyrings
sudo curl -fsSL https://download.docker.com/linux/debian/gpg -o /etc/apt/keyrings/docker.asc
sudo chmod a+r /etc/apt/keyrings/docker.asc
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Agora, vamos executar o comando abaixo para adicionar o repositório do Docker, referenciando a chave previamente adicionada, ainda com privilégios de usuário root:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;echo \
  "deb [arch=$(dpkg --print-architecture) signed-by=/etc/apt/keyrings/docker.asc] https://download.docker.com/linux/ubuntu \
  $(. /etc/os-release &amp;amp;&amp;amp; echo "${UBUNTU_CODENAME:-$VERSION_CODENAME}") stable" | \
  sudo tee /etc/apt/sources.list.d/docker.list &amp;gt; /dev/null
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Vamos atualizar nossa lista de repositórios para obter os pacotes do Docker, com privilégios de usuário root:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;sudo apt-get update

&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Agora vamos instalar o Docker e o Docker Compose com o comando a seguir, , com privilégios de usuário root:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;sudo apt-get install docker-ce docker-ce-cli containerd.io docker-buildx-plugin docker-compose-plugin docker-compose

&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Com os comandos acima, o Docker foi instalado em nosso sistema. No entanto, ao executar os comandos docker run ou docker-compose up, provavelmente receberemos um erro de "permission denied". Isso ocorre porque o grupo docker está atribuído apenas ao usuário root. Para resolver esse problema, vamos adicionar nosso usuário comum ao grupo docker, permitindo que os comandos do Docker sejam executados sem a necessidade de prefixar com sudo. Para isso, devemos executar o comando abaixo:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;sudo usermod -aG docker $SEU-USUARIO

&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Caso possua um hardware mais robusto, recomendo fortemente habilitar o Docker como um serviço do systemd. Caso contrário, sempre que for utilizar o Docker, será necessário iniciar o serviço manualmente com o comando abaixo:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;sudo systemctl start docker.service

&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Para configurar o Docker para iniciar automaticamente sempre que o WSL for iniciado, basta executar o comando a seguir com privilégios de root:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;systemctl enable docker.service

&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Pronto! Com todos os comandos acima, teremos um ambiente com Docker totalmente configurado e pronto para criar ou rodar aplicações containerizadas.&lt;/p&gt;

&lt;h2&gt;
  
  
  Instalando o RustUP para Rust:
&lt;/h2&gt;

&lt;p&gt;Agora, vamos instalar o RustUp para manter a versão do Rust e seus pacotes sempre atualizados para a última versão. Isso será fundamental mais à frente, quando formos instalar algumas extensões de terminal para o nosso ZSH.&lt;/p&gt;

&lt;p&gt;Para isso como usuário normal vamos executar o comandos a seguir:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;cd /tmp

curl --proto '=https' --tlsv1.2 -sSf https://sh.rustup.rs | sh
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Vamos confirmar a instalação pressionando a letra y e, em seguida, selecionar a opção 1 para instalar e configurar o RustUp.&lt;/p&gt;

&lt;p&gt;Após a instalação do RustUP, vamos adicionar a entrada do Rust no nosso terminal, para isso vamos editar o arquivo .zshrc com o vim e colar o trecho a seguir:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;# Rust default settings
 export PATH=~/.cargo/bin:~/.local/bin:$PATH
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;h2&gt;
  
  
  Instalação de extensões de terminal com Cargo (Opcional):
&lt;/h2&gt;

&lt;p&gt;Agora que temos o Cargo, Rust e RustUp configurados, chegou o momento de instalar algumas extensões para melhorar a estética e a usabilidade do nosso terminal. Para isso, vamos executar os comandos abaixo com o nosso usuário:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;cargo install bat exa procs dust tokei ytop tealdeer grex rmesg zoxide delta

&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Ao executar o comando acima, nos depararemos com uma tela semelhante à seguinte:&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Frufyalfpl5o6neeuevef.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Frufyalfpl5o6neeuevef.png" alt="Image description" width="800" height="425"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Uma vez instaladas as ferramentas, precisaremos criar aliases para alguns pacotes que instalamos. Pessoalmente, gosto de usar três pacotes: bat, que é uma versão mais estética do cat; exa, que é uma versão do ls com suporte a ícones e visualmente mais atrativa; e ytop, uma alternativa mais bonita ao htop.&lt;/p&gt;

&lt;p&gt;Para isso, vamos editar o nosso arquivo .zshrc com o editor de sua preferência. Neste tutorial, usaremos o vim. Para começar, execute o comando abaixo como usuário comum:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;vim .zshrc

&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Em seguida, vamos localizar o trecho abaixo:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;# Example aliases
# alias zshconfig="mate ~/.zshrc"
# alias ohmyzsh="mate ~/.oh-my-zsh"
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;e vamos adicionar as linhas abaixo:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;alias ls="exa --icons"
alias cat="bat"
alias htop="ytop"
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Pronto! Feito isso, você terá o seguinte resultado:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;# Example aliases
# alias zshconfig="mate ~/.zshrc"
# alias ohmyzsh="mate ~/.oh-my-zsh"
alias ls="exa --icons"
alias cat="bat"
alias htop="ytop"
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Agora, vamos explorar um pouco das ferramentas que instalamos com o Cargo:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Bat:&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fptsf1p87b3xt3qqjh23v.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fptsf1p87b3xt3qqjh23v.png" alt="Image description" width="800" height="463"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Exa:&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Flkobrsourpzjkbu7ctul.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Flkobrsourpzjkbu7ctul.png" alt="Image description" width="800" height="466"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;ytop:&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fu9wt8ob2nm86uryb5yxa.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fu9wt8ob2nm86uryb5yxa.png" alt="Image description" width="800" height="460"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h2&gt;
  
  
  Instalando o ASDF
&lt;/h2&gt;

&lt;p&gt;Agora, vamos instalar o pacote ASDF, um gestor de linguagens de programação que nos permitirá trabalhar com diversas linguagens de forma eficiente. Para isso, vamos fazer login como usuário root e executar os comandos abaixo.&lt;/p&gt;

&lt;p&gt;O ASDF nos permite ter múltiplas versões de uma linguagem de programação instalada no sistema. Por exemplo, no caso do Node.js, podemos ter as versões 12, 14, 16 e 18. Isso facilita bastante, pois, ao invés de "poluirmos" o sistema com várias versões do Node.js, podemos instalar as versões conforme a necessidade, ou seja, de acordo com o projeto em que estamos trabalhando. E, caso não precise mais de uma versão, podemos removê-la sem comprometer o sistema.&lt;/p&gt;

&lt;p&gt;Além disso, o ASDF possibilita a instalação de uma infinidade de linguagens de programação de maneira simplificada &lt;a href="https://github.com/asdf-vm/asdf-plugins" rel="noopener noreferrer"&gt;(consulte as linguagens suportadas aqui)&lt;/a&gt;, tornando o ambiente multi-linguagens e mais robusto para estudos ou projetos nos quais vamos atuar.&lt;/p&gt;

&lt;p&gt;Pessoalmente, gosto de instalar pacotes que não estão disponíveis nos repositórios do Ubuntu (ou seja, pacotes externos) em /opt. No entanto, você pode instalar onde preferir; a lógica é a mesma, bastando ajustar os caminhos e atribuir as permissões, se necessário.&lt;/p&gt;

&lt;p&gt;Para instalar o ASDF em /opt, vamos seguir os comandos abaixo como usuário root:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Criando o diretório /opt/asdf para o binário do asdf e o diretório /opt/asdf/asdf-data para as linguagens de programação que vamos instalar.
&lt;/li&gt;
&lt;/ul&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;cd /opt
sudo mkdir asdf
sudo mkdir -p /opt/asdf-data 
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;ul&gt;
&lt;li&gt;Agora, vamos baixar o binário da última versão do ASDF disponível na data deste artigo:
&lt;/li&gt;
&lt;/ul&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;cd /tmp
https://github.com/asdf-vm/asdf/releases/download/v0.16.5/asdf-v0.16.5-linux-amd64.tar.gz
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;ul&gt;
&lt;li&gt;Vamos extrair o arquivo tar.gz recém-baixado:
&lt;/li&gt;
&lt;/ul&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;tar -xvzf asdf-v0.16.5-linux-amd64.tar.gz

&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;ul&gt;
&lt;li&gt;Agora, teremos um arquivo binário chamado asdf. Vamos movê-lo para a pasta /opt/asdf com o comando abaixo:
&lt;/li&gt;
&lt;/ul&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;sudo mv asdf /opt/asdf

&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;ul&gt;
&lt;li&gt;Torne o binário executável com o comando a seguir:
&lt;/li&gt;
&lt;/ul&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;sudo chmod +x /opt/asdf/asdf

&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;ul&gt;
&lt;li&gt;Vamos alterar a propriedade da pasta e seus arquivos, definindo o nosso usuário como o proprietário.
&lt;/li&gt;
&lt;/ul&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;sudo chown -R usuario:usuario /opt/asdf-data 

&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Agora, vamos adicionar no .zshrc os caminhos para o binário do asdf e para a pasta onde vamos instalar as linguagens que utilizaremos. Para isso, vamos voltar para o diretório /home/usuario e editar o arquivo .zshrc com o editor de nossa preferência. Neste caso, utilizarei o vim.&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;vim .zshrc

&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;E vamos adicionar o trecho abaixo:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;# Asdf default settings
export PATH="/opt/asdf:$PATH"
export ASDF_DATA_DIR="/opt/asdf/asdf-data"
export PATH="${ASDF_DATA_DIR:-$HOME/.asdf}/shims:$PATH"
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Feito isso, vamos recarregar a configuração do nosso .zshrc para que as alterações acima tenham efeito.&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;source .zshrc

&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Feito isso estamos com o ASDF configurado em nosso ambiente.&lt;/p&gt;

&lt;h2&gt;
  
  
  Instalando Linguagens de Programação no ASDF:
&lt;/h2&gt;

&lt;p&gt;Como mencionado anteriormente, o ASDF suporta uma infinidade de linguagens de programação, que podem ser consultadas neste &lt;a href="https://github.com/asdf-vm/asdf-plugins" rel="noopener noreferrer"&gt;[link]&lt;/a&gt;. Como podemos ver abaixo, temos à disposição uma grande variedade de linguagens com as quais podemos trabalhar:&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fkyor0gykral3k64kg9xi.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fkyor0gykral3k64kg9xi.png" alt="Image description" width="800" height="1102"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;A seguir, vamos instalar o Node.js LTS para demonstrar como o processo de instalação com o ASDF é simples. Para isso, vamos executar os comandos abaixo como nosso usuário:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Adicionando o NodeJS:
&lt;/li&gt;
&lt;/ul&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;asdf plugin add nodejs

&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;ul&gt;
&lt;li&gt;Listando todas as versões do NodeJS:
&lt;/li&gt;
&lt;/ul&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;asdf list all nodejs 

&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;ul&gt;
&lt;li&gt;Instalando o NodeJS 22.14.0:
&lt;/li&gt;
&lt;/ul&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;asdf install nodejs 22.14.0

&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;ul&gt;
&lt;li&gt;Setando o NodeJS 22.14.0 como versão padrão:
&lt;/li&gt;
&lt;/ul&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;asdf set nodejs 22.14.0

&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Ao executarmos os comandos acima, será criado um arquivo chamado .tool-versions, que pode ser utilizado em dois cenários distintos:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;&lt;p&gt;.tool-versions em /home/usuario: Esta será a versão padrão assumida pelo ASDF, sendo usada em todo o sistema.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;.tool-versions dentro de um projeto: Esta versão será aplicada apenas no escopo do projeto em que você está trabalhando. Por exemplo, se estiver atuando em um projeto legado em Node.js na versão 12, é possível limitar o uso dessa versão apenas dentro do projeto. Para isso, basta seguir o processo de instalação acima para a linguagem desejada ou seguir as instruções específicas para a linguagem com a qual você está trabalhando.&lt;/p&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Para demais linguagens, basta seguir as recomendações dos mantenedores conforme a tecnologia necessária. Para verificar a lista de tecnologias compatíveis, basta &lt;a href="https://github.com/asdf-vm/asdf-plugins" rel="noopener noreferrer"&gt;clicar aqui&lt;/a&gt;.&lt;/p&gt;

&lt;h2&gt;
  
  
  Para criar um novo usuário no PostgreSQL, siga os passos abaixo como usuário root:
&lt;/h2&gt;

&lt;ul&gt;
&lt;li&gt;Acesse o banco de dados como superusuário com o usuário postgres, executando o seguinte comando:
&lt;/li&gt;
&lt;/ul&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;sudo -u postgres psql

&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;ul&gt;
&lt;li&gt;Agora, vamos criar o usuário e definir a senha para ele:
&lt;/li&gt;
&lt;/ul&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;CREATE USER nome_do_usuario WITH PASSWORD 'senha';

&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;ul&gt;
&lt;li&gt;Agora, vamos conceder permissões de superusuário ao usuário recém-criado:
&lt;/li&gt;
&lt;/ul&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;ALTER USER nome_do_usuario WITH SUPERUSER CREATEDB CREATEROLE;
ALTER USER nome_do_usuario WITH REPLICATION BYPASSRLS;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;ul&gt;
&lt;li&gt;Agora, vamos definir uma senha para o usuário postgres:
&lt;/li&gt;
&lt;/ul&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;ALTER USER postgres WITH PASSWORD 'senha';

&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;ul&gt;
&lt;li&gt;Vamos verificar se os usuários estão com as permissões corretas:
&lt;/li&gt;
&lt;/ul&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;\du

&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Você verá uma tela semelhante à mostrada abaixo:&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F9pafvlqw0ezu3ickrqdn.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F9pafvlqw0ezu3ickrqdn.png" alt="Image description" width="800" height="426"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Agora, vamos sair do shell do postgres com o seguinte comando:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;\q

&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Com os comandos acima executados, teremos criado um novo usuário com permissões de administrador, evitando assim a necessidade de utilizar o usuário postgres para gerenciar o banco de dados. Além disso, estaremos protegendo o usuário postgres com uma senha.&lt;/p&gt;

&lt;h2&gt;
  
  
  Instalando o Pulumi, outra ferramenta para IaC:
&lt;/h2&gt;

&lt;p&gt;O Pulumi funciona de maneira semelhante ao Terraform para o provisionamento de infraestrutura em nuvem. No entanto, em vez de utilizar a linguagem HCL (usada no Terraform), o Pulumi permite que você utilize linguagens de programação como Go, Node.js e Python. Isso proporciona maior assertividade para aqueles que já estão familiarizados com essas linguagens, facilitando a criação de recursos em provedores de nuvem como AWS, Microsoft Azure, Google Cloud, entre outros (verifique a compatibilidade antes de utilizar).&lt;/p&gt;

&lt;p&gt;Para realizar a instalação, execute o comando abaixo:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;cd /tmp
curl -fsSL https://get.pulumi.com | sh
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;O comando acima realizará a instalação do Pulumi e adicionará seu binário automaticamente ao PATH no arquivo .zshrc.&lt;/p&gt;

&lt;h2&gt;
  
  
  Instalando a ferramenta de teste de estresse k6
&lt;/h2&gt;

&lt;p&gt;Agora, vamos instalar o k6, uma ferramenta de teste de estresse amplamente utilizada em cenários corporativos. Essa ferramenta utiliza uma sintaxe simples baseada em JavaScript e permite a realização de testes de carga, além de integração com sistemas de observabilidade como Grafana, Datadog e New Relic. Com o k6, conseguimos verificar a escalabilidade e a resiliência das nossas aplicações.&lt;/p&gt;

&lt;p&gt;Para instalar, vamos executar o seguinte comando:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;sudo gpg -k
sudo gpg --no-default-keyring --keyring /usr/share/keyrings/k6-archive-keyring.gpg --keyserver hkp://keyserver.ubuntu.com:80 --recv-keys C5AD17C747E3415A3642D57D77C6C491D6AC1D69
sudo echo "deb [signed-by=/usr/share/keyrings/k6-archive-keyring.gpg] https://dl.k6.io/deb stable main" | sudo tee /etc/apt/sources.list.d/k6.list
sudo apt-get update
sudo apt-get install k6
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Com o comando acima, o k6 será instalado no nosso ambiente. Para entender mais sobre o k6, é recomendado consultar a &lt;a href="https://grafana.com/docs/k6/latest/" rel="noopener noreferrer"&gt;documentação oficial&lt;/a&gt;.&lt;/p&gt;

&lt;h2&gt;
  
  
  Instalando o Apache JMeter CLI
&lt;/h2&gt;

&lt;p&gt;Semelhante ao k6, que instalamos na etapa anterior, o Apache JMeter também é uma ferramenta utilizada para realizar testes de carga e estresse em aplicações web. Ela é amplamente usada em ambientes corporativos. Pessoalmente, prefiro instalar ambas as ferramentas, pois haverá cenários em que o time de QA e desenvolvimento utilizará o JMeter em vez do k6. Ter um ambiente preparado para lidar com ambas as tecnologias é o ideal para um profissional de DevOps/SRE.&lt;/p&gt;

&lt;p&gt;Vamos instalar o Apache JMeter 5.6.3 (última versão disponível na data deste artigo) executando os comandos abaixo:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Baixando o Apache Jmeter como usuário comum:
&lt;/li&gt;
&lt;/ul&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;cd /tmp
wget https://dlcdn.apache.org//jmeter/binaries/apache-jmeter-5.6.3.zip
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;ul&gt;
&lt;li&gt;Agora, vamos extrair o arquivo ZIP que baixamos recentemente:
&lt;/li&gt;
&lt;/ul&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;unzip apache-jmeter-5.6.3.zip
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;ul&gt;
&lt;li&gt;Agora, vamos mover a pasta recém-extraída para o diretório /opt, semelhante ao que fizemos com o asdf:
&lt;/li&gt;
&lt;/ul&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;sudo mv apache-jmeter-5.6.3 /opt/

&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;ul&gt;
&lt;li&gt;Agora, vamos alterar o proprietário da pasta JMeter para o nosso usuário:
&lt;/li&gt;
&lt;/ul&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;sudo chown -R nome_do_usuario:nome_do_usuario /opt/apache-jmeter-5.6.3

&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;ul&gt;
&lt;li&gt;Agora, vamos editar o nosso arquivo .zshrc com o editor de nossa preferência (usaremos o vim neste tutorial), adicionando o binário do Apache JMeter.
&lt;/li&gt;
&lt;/ul&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;vim ~/.zshrc

&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Vamos adicionar o seguinte trecho:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;# Jmeter default CLI
export PATH="/opt/apache-jmeter-5.6.3/bin:$PATH"
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Com os comandos acima, teremos o JMeter configurado no nosso ambiente Ubuntu sob WSL.&lt;/p&gt;

&lt;h2&gt;
  
  
  Instalando o SDL 2 no Ubuntu
&lt;/h2&gt;

&lt;p&gt;Agora, vamos instalar a biblioteca multimídia open-source no WSL, permitindo uma maior integração com as novas aplicações. Para isso, execute o comando abaixo como usuário root:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;sudo apt install libsdl2-2.0-0 libsdl2-dev libsdl2-mixer-2.0-0 libsdl2-mixer-dev libsdl2-image-2.0-0 libsdl2-image-dev

&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;h2&gt;
  
  
  Instalando lvim (Opcional)
&lt;/h2&gt;

&lt;p&gt;Agora, vamos instalar a distribuição do Neovim chamada LunarVim. Ela transforma o nosso Neovim em uma IDE, semelhante ao VSCode. Para aqueles adeptos do terminal, isso proporciona uma maior produtividade no Vim.&lt;/p&gt;

&lt;p&gt;Para realizar a instalação do LunarVim, precisaremos executar os comandos abaixo com o nosso usuário:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Vamos adicionar o repositório do Neovim (instável), uma exigência para o LunarVim:
&lt;/li&gt;
&lt;/ul&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;sudo add-apt-repository ppa:neovim-ppa/unstable

&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;ul&gt;
&lt;li&gt;Vamos atualizar a nossa lista de pacotes executando o comando abaixo:
&lt;/li&gt;
&lt;/ul&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;sudo apt update &amp;amp;&amp;amp; sudo apt dist-upgrade

&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;ul&gt;
&lt;li&gt;Instalando as dependências necessárias para o LunarVim:
&lt;/li&gt;
&lt;/ul&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;sudo apt install ripgrep fzf

&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;ul&gt;
&lt;li&gt;Agora vamos fazer a instalação do tree-sitter, para isso vamos baixar o pacote do Github e compilar.
&lt;/li&gt;
&lt;/ul&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;git clone https://github.com/tree-sitter/tree-sitter.git
cd tree-sitter
make
sudo make install
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;ul&gt;
&lt;li&gt;Após instalarmos todas as dependências necessárias, vamos instalar o LunarVim com o comando abaixo:
&lt;/li&gt;
&lt;/ul&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;zsh &amp;lt;(curl -s https://raw.githubusercontent.com/lunarvim/lunarvim/master/utils/installer/install.sh)
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;ul&gt;
&lt;li&gt;Uma tela de instalação será exibida, conforme mostrado abaixo:&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fjqwu4x7zwy5n8jsp9zg3.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fjqwu4x7zwy5n8jsp9zg3.png" alt="Image description" width="800" height="427"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Com o processo de instalação concluído, vamos editar o nosso arquivo .zshrc com o editor de nossa preferência e adicionar o trecho abaixo na seção de aliases:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;alias vim='lvim'

&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Ao executar o comando vim no terminal, nos depararemos com um Vim semelhante a uma IDE, com a estética abaixo. Caso queira personalizar o seu LunarVim, basta acessar a documentação oficial &lt;a href="https://www.lunarvim.org/docs/beginners-guide" rel="noopener noreferrer"&gt;clicando aqui&lt;/a&gt;.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fzdvhjo6nf7mqgux2rgug.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fzdvhjo6nf7mqgux2rgug.png" alt="Image description" width="800" height="427"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h2&gt;
  
  
  Instalando AWS CLI
&lt;/h2&gt;

&lt;p&gt;Agora, vamos instalar o AWS CLI, que nos permitirá gerenciar ambientes AWS via linha de comando. Com ele, podemos utilizar ferramentas como Terraform, scripts ou até mesmo o CloudFormation, graças à integração que nos permite configurar nossas chaves pública e privada para realizar alterações, com base nas permissões configuradas.&lt;/p&gt;

&lt;p&gt;Para instalar, vamos executar o comando abaixo:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;cd /tmp
curl "https://awscli.amazonaws.com/awscli-exe-linux-x86_64.zip" -o "awscliv2.zip"
unzip awscliv2.zip
sudo ./aws/install
aws configure
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;h2&gt;
  
  
  Instalando Azure CLI
&lt;/h2&gt;

&lt;p&gt;Semelhante ao AWS CLI, que configura o nosso ambiente WSL para gerenciar recursos na AWS, temos o Azure CLI. Ele instala as ferramentas necessárias para que possamos gerenciar nossos recursos na Microsoft Azure.&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Para isso, vamos executar o comando abaixo como usuário root:
&lt;/li&gt;
&lt;/ul&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;cd /tmp
sudo apt-get instal lsb-release
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;ul&gt;
&lt;li&gt;Vamos criar um diretório para armazenar a chave:
&lt;/li&gt;
&lt;/ul&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;sudo mkdir -p /etc/apt/keyrings

&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;ul&gt;
&lt;li&gt;Vamos baixar a chave do repositório do Microsoft Azure:
&lt;/li&gt;
&lt;/ul&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;curl -sLS https://packages.microsoft.com/keys/microsoft.asc |
  gpg --dearmor | sudo tee /etc/apt/keyrings/microsoft.gpg &amp;gt; /dev/null
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;ul&gt;
&lt;li&gt;Agora, vamos alterar a permissão da chave da Microsoft que baixamos no comando anterior:
&lt;/li&gt;
&lt;/ul&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;sudo chmod go+r /etc/apt/keyrings/microsoft.gpg

&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;ul&gt;
&lt;li&gt;Agora, vamos adicionar o repositório do Microsoft Azure no Ubuntu com o comando abaixo:
&lt;/li&gt;
&lt;/ul&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;AZ_DIST=$(lsb_release -cs)
echo "Types: deb
URIs: https://packages.microsoft.com/repos/azure-cli/
Suites: ${AZ_DIST}
Components: main
Architectures: $(dpkg --print-architecture)
Signed-by: /etc/apt/keyrings/microsoft.gpg" | sudo tee /etc/apt/sources.list.d/azure-cli.source
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;ul&gt;
&lt;li&gt;Agora, vamos atualizar nossa lista de repositórios:
&lt;/li&gt;
&lt;/ul&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;sudo apt-get update

&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Agora, vamos instalar o azure-cli com o comando abaixo:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;sudo apt-get install azure-cli

&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Após executarmos os comandos acima, estaremos aptos a trabalhar com o ambiente da Microsoft Azure.&lt;/p&gt;

&lt;h2&gt;
  
  
  Instalando Google CLI
&lt;/h2&gt;

&lt;p&gt;Agora, vamos instalar o Google Cloud CLI, que nos permitirá gerenciar nossa infraestrutura e recursos no ambiente do Google Cloud. Para isso, vamos executar os comandos abaixo como usuário root:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Vamos baixar a chave do repositório do Google Cloud:
&lt;/li&gt;
&lt;/ul&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;curl https://packages.cloud.google.com/apt/doc/apt-key.gpg | sudo gpg --dearmor -o /usr/share/keyrings/cloud.google.gpg
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;ul&gt;
&lt;li&gt;Agora, vamos adicionar o repositório do Google Cloud e referenciar a chave que baixamos anteriormente:
&lt;/li&gt;
&lt;/ul&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;echo "deb [signed-by=/usr/share/keyrings/cloud.google.gpg] https://packages.cloud.google.com/apt cloud-sdk main" | sudo tee -a /etc/apt/sources.list.d/google-cloud-sdk.list
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;ul&gt;
&lt;li&gt;Agora, vamos instalar o google-cloud-cli com o comando abaixo:
&lt;/li&gt;
&lt;/ul&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;sudo apt-get update &amp;amp;&amp;amp; sudo apt-get install google-cloud-cli

&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;h2&gt;
  
  
  Instalando Minikube
&lt;/h2&gt;

&lt;p&gt;Agora, vamos instalar a distribuição Kubernetes chamada de Minikube. Essa distribuição Kubernetes tem a facilidade de ser uma versão pequena, leve e customizada, de forma que consigamos validar nossos aplicativos em um único nó, sem a necessidade de ter uma instalação completa de um cluster Kubernetes e rodando sob um container Docker.&lt;/p&gt;

&lt;p&gt;Observação: Para saber mais sobre o Minikube, basta &lt;a href="https://minikube.sigs.k8s.io/docs/handbook/" rel="noopener noreferrer"&gt;clicar aqui&lt;/a&gt;.&lt;/p&gt;

&lt;p&gt;Importante: A instalação do Minikube é opcional. Temos diversas distribuições Kubernetes e você pode optar por outras distribuições que melhor lhe atendam, como k3s, microk8s, rke, entre outras.&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Para realizar a instalação, vamos primeiro baixar o arquivo .deb com o comando abaixo com o nosso usuário:
&lt;/li&gt;
&lt;/ul&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;cd /tmp
curl -LO https://storage.googleapis.com/minikube/releases/latest/minikube_latest_amd64.deb
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;ul&gt;
&lt;li&gt;Agora vamos realizar a instalação do Minikube com o comando a seguir:
&lt;/li&gt;
&lt;/ul&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;sudo dpkg -i minikube_latest_amd64.deb

&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;ul&gt;
&lt;li&gt;Agora, vamos limitar a quantidade de memória que vamos utilizar no Minikube com o comando a seguir:
&lt;/li&gt;
&lt;/ul&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;minikube config set memory valor

&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;ul&gt;
&lt;li&gt;Agora, vamos limitar a quantidade de cpu que vamos utilizar no Minikube com o comando a seguir:
&lt;/li&gt;
&lt;/ul&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;minikube config set cpus valor

&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;ul&gt;
&lt;li&gt;Agora, vamos iniciar o serviço do Minikube com o comando a seguir:
&lt;/li&gt;
&lt;/ul&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;minikube start
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;h2&gt;
  
  
  Colococando Minikube no SystemD (Opcional)
&lt;/h2&gt;

&lt;p&gt;Se você tem um hardware mais potente, pode levar em consideração colocar o Minikube para iniciar juntamente com o SystemD. A principal vantagem dessa abordagem é que, ao iniciar o WSL, o Minikube já estará em execução, dispensando o usuário de ter que iniciar o Minikube toda vez que for trabalhar com Kubernetes.&lt;/p&gt;

&lt;p&gt;Para habilitarmos o Minikube no SystemD, vamos executar os comandos abaixo como usuário root:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Vamos criar um arquivo service para o Minikube usando o editor de nossa preferência. Nesse tutorial, vamos usar o vim.
&lt;/li&gt;
&lt;/ul&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;sudo vim /etc/systemd/system/minikube.service

&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;ul&gt;
&lt;li&gt;Agora, vamos colar o trecho abaixo, atentando-se para mudar o nome de usuário e o grupo para o nome do seu usuário:
&lt;/li&gt;
&lt;/ul&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;[Unit]
Description=Minikube Cluster
After=docker.service

[Service]
Type=oneshot
ExecStart=/usr/bin/minikube start
RemainAfterExit=true
ExecStop=/usr/bin/minikube stop
StandardOutput=journal
User=seu_usuario
Group=seu_usuario

[Install]
WantedBy=multi-user.target
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;ul&gt;
&lt;li&gt;Agora, será necessário recarregar o daemon do SystemD com o comando a seguir:
&lt;/li&gt;
&lt;/ul&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;sudo systemctl daemon-reload

&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;ul&gt;
&lt;li&gt;Agora, vamos habilitar o serviço do Minikube para iniciar sempre que abrirmos o WSL:
&lt;/li&gt;
&lt;/ul&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;sudo systemctl enable minikube

&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;h2&gt;
  
  
  Instalando o Kubectl
&lt;/h2&gt;

&lt;p&gt;Agora vamos instalar o Kubectl que é uma ferramenta de linha de comando para gerenciamos cluster Kubernetes locais ou remotos crucial para profissionais de DevOps e SRE gerenciar cluster Kubernetes,&lt;/p&gt;

&lt;p&gt;Observação: Para saber mais sobre o Kubectl, basta &lt;a href="https://kubernetes.io/docs/reference/generated/kubectl/kubectl-commands" rel="noopener noreferrer"&gt;clicar aqui&lt;/a&gt;.&lt;/p&gt;

&lt;p&gt;Para realizamos a instalação vamos executar o comando a seguir:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Baixando a chave GPG do repositório do kubectl:
&lt;/li&gt;
&lt;/ul&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;curl -fsSL https://pkgs.k8s.io/core:/stable:/v1.32/deb/Release.key | sudo gpg --dearmor -o /etc/apt/keyrings/kubernetes-apt-keyring.gpg
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;ul&gt;
&lt;li&gt;Vamos alterar a permissão para a chave recém-baixada com o comando a seguir:
&lt;/li&gt;
&lt;/ul&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;sudo chmod 644 /etc/apt/keyrings/kubernetes-apt-keyring.gpg

&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;ul&gt;
&lt;li&gt;Agora, vamos adicionar o repositório do kubectl e referenciar o caminho da chave baixada anteriormente:
&lt;/li&gt;
&lt;/ul&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;echo 'deb [signed-by=/etc/apt/keyrings/kubernetes-apt-keyring.gpg] https://pkgs.k8s.io/core:/stable:/v1.32/deb/ /' | sudo tee /etc/apt/sources.list.d/kubernetes.list
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;ul&gt;
&lt;li&gt;Agora, vamos alterar a permissão do repositório do kubectl com o comando a seguir:
&lt;/li&gt;
&lt;/ul&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;sudo chmod 644 /etc/apt/sources.list.d/kubernetes.list

&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;ul&gt;
&lt;li&gt;Agora, vamos atualizar a lista de pacotes para pegar o repositório e obter os arquivos do repositório do Kubernetes:
&lt;/li&gt;
&lt;/ul&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;sudo apt-get update

&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;ul&gt;
&lt;li&gt;E, por fim, vamos baixar e instalar o pacote do kubectl com o comando a seguir:
&lt;/li&gt;
&lt;/ul&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;sudo apt-get install -y kubectl

&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;h2&gt;
  
  
  Instalando o Helm
&lt;/h2&gt;

&lt;p&gt;Agora, vamos instalar o Helm, um gerenciador de pacotes que visa automatizar e facilitar a implementação e manutenção dos nossos clusters Kubernetes, muito utilizado em cenários produtivos.&lt;/p&gt;

&lt;p&gt;Observação: Para saber mais sobre o Helm, basta &lt;a href="https://helm.sh/docs/" rel="noopener noreferrer"&gt;clicar aqui&lt;/a&gt;.&lt;/p&gt;

&lt;p&gt;Para iniciar a instalação do Helm, vamos executar os comandos abaixo:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Baixando a chave do repositório do Helm:
&lt;/li&gt;
&lt;/ul&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;curl https://baltocdn.com/helm/signing.asc | gpg --dearmor | sudo tee /usr/share/keyrings/helm.gpg &amp;gt; /dev/null

&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;ul&gt;
&lt;li&gt;Agora, vamos adicionar o repositório do Helm e referenciar o caminho da chave baixada anteriormente:
&lt;/li&gt;
&lt;/ul&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;echo "deb [arch=$(dpkg --print-architecture) signed-by=/usr/share/keyrings/helm.gpg] https://baltocdn.com/helm/stable/debian/ all main" | sudo tee /etc/apt/sources.list.d/helm-stable-debian.list
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;`Agora, vamos atualizar a lista de pacotes para pegar o repositório e obter os arquivos do repositório do Helm:&lt;/p&gt;

&lt;p&gt;&lt;code&gt;&lt;/code&gt;`&lt;br&gt;
sudo apt-get update&lt;/p&gt;

&lt;p&gt;`&lt;code&gt;&lt;/code&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Agora, vamos realizar a instalação do Helm com o comando abaixo:&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;code&gt;&lt;/code&gt;`&lt;br&gt;
sudo apt-get install -y helm&lt;/p&gt;

&lt;p&gt;`&lt;code&gt;&lt;/code&gt;&lt;/p&gt;

&lt;h2&gt;
  
  
  Bônus: Gerando Backup do WSL
&lt;/h2&gt;

&lt;p&gt;Caso deseje, você pode gerar um backup da configuração que realizamos no WSL, o que criará um backup compactado. Isso permitirá tanto replicar a nossa instalação em outros computadores, caso deseje, quanto armazená-lo em uma unidade de armazenamento, permitindo importar a instalação novamente sem a necessidade de configurar tudo do zero.&lt;/p&gt;

&lt;p&gt;Para isso, vamos usar o PowerShell 7.5 como administrador:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Gerando Backup do WSL:&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;code&gt;&lt;/code&gt;`&lt;br&gt;
wsl --export {NomeDaDistribuição} backup.tar.gz&lt;/p&gt;

&lt;p&gt;`&lt;code&gt;&lt;/code&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Importando Backup do WSL:&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;code&gt;&lt;/code&gt;`&lt;br&gt;
wsl --import {NomeDaDistribuição} {LocalDeInstalação} backup.tar.gz&lt;/p&gt;

&lt;p&gt;`&lt;code&gt;&lt;/code&gt;&lt;/p&gt;

&lt;h2&gt;
  
  
  Instalando o VScode e Integrando com o WSL:
&lt;/h2&gt;

&lt;p&gt;Agora, vamos instalar o Visual Studio Code no nosso sistema Windows e realizar a integração do Visual Studio Code com o WSL, trazendo mais produtividade para o nosso fluxo de desenvolvimento.&lt;/p&gt;

&lt;p&gt;Para isso, basta baixar o Visual Studio Code através deste &lt;a href="https://code.visualstudio.com/download" rel="noopener noreferrer"&gt;link&lt;/a&gt; ou usar o comando abaixo no PowerShell como administrador com o comando a seguir:&lt;/p&gt;

&lt;p&gt;&lt;code&gt;&lt;/code&gt;`&lt;br&gt;
winget install -e --id Microsoft.VisualStudioCode&lt;/p&gt;

&lt;p&gt;`&lt;code&gt;&lt;/code&gt;&lt;/p&gt;

&lt;p&gt;Com o Visual Studio Code, vamos iniciar o aplicativo e instalar a extensão chamada Remote - WSL, conforme a imagem abaixo:&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fk6pu9urezk7eg6kusx6p.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fk6pu9urezk7eg6kusx6p.png" alt="Image description" width="800" height="436"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Com a extensão acima instalada, vamos fechar o Visual Studio Code e abrir o WSL com o usuário normal. Em seguida, execute o comando abaixo:&lt;/p&gt;

&lt;p&gt;&lt;code&gt;&lt;/code&gt;`&lt;br&gt;
code .&lt;/p&gt;

&lt;p&gt;`&lt;code&gt;&lt;/code&gt;&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fp61cmgytkshhb032nlpd.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fp61cmgytkshhb032nlpd.png" alt="Image description" width="800" height="425"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Após concluir a instalação, você notará que estará utilizando o Visual Studio Code dentro do WSL. Basta observar no canto inferior esquerdo, onde aparecerá o nome da sua distribuição Linux.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fjlsripw1uhil190kfiaa.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fjlsripw1uhil190kfiaa.png" alt="Image description" width="800" height="440"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h2&gt;
  
  
  Conclusão e Resultado Final
&lt;/h2&gt;

&lt;p&gt;Se você seguiu os passos acima, terá um ambiente robusto e completo para aprender e também trabalhar com DevOps/SRE, pois instalamos diversos serviços que facilitam o nosso dia a dia, com ferramentas para desenvolvimento, automações, criação de scripts e gerenciamento de Kubernetes.&lt;/p&gt;

&lt;p&gt;O seu WSL terá um terminal semelhante a este:&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fwjtmpndi6c08fezl01mr.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fwjtmpndi6c08fezl01mr.png" alt="Image description" width="800" height="462"&gt;&lt;/a&gt;&lt;/p&gt;

</description>
      <category>devops</category>
      <category>sre</category>
      <category>ubuntu</category>
      <category>microsoft</category>
    </item>
    <item>
      <title>[PT-BR] - Turbinando o Powershell no Windows 11 com Oh-My-Posh e Chocolatey</title>
      <dc:creator>Thor Rachaus</dc:creator>
      <pubDate>Tue, 07 Feb 2023 11:14:43 +0000</pubDate>
      <link>https://forem.com/thorhexsec/pt-br-turbinando-o-powershell-no-windows-11-com-oh-my-posh-e-chocolatey-122e</link>
      <guid>https://forem.com/thorhexsec/pt-br-turbinando-o-powershell-no-windows-11-com-oh-my-posh-e-chocolatey-122e</guid>
      <description>&lt;p&gt;O intuito deste artigo é instruir o usuário a realizar a instalação e configuração do &lt;strong&gt;Powershell&lt;/strong&gt; com &lt;strong&gt;Oh-My-Posh no Windows 10/11&lt;/strong&gt;, tornando esse &lt;strong&gt;Shell&lt;/strong&gt; poderoso e responsivo, facilitando a sua produtividade no dia a dia para desenvolvimento de software.&lt;/p&gt;

&lt;p&gt;Após as alterações e extensões instaladas o resultado final será semelhante ao exemplo da imagem abaixo:&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F69k9i0ksgeody34zyn0u.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F69k9i0ksgeody34zyn0u.png" alt="Image description" width="722" height="420"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Analisando a imagem acima, podemos perceber alguns detalhes curiosos nesse &lt;strong&gt;Powershell&lt;/strong&gt;, primeiro contando com o privilégios a nível de execução através do comando &lt;strong&gt;sudo&lt;/strong&gt;, seguido do gerenciador de pacotes &lt;strong&gt;chocolatey&lt;/strong&gt;, na sequencia os nomes dos programas e por fim o verificador para ignoramos confirmações manuais &lt;strong&gt;-y&lt;/strong&gt;.&lt;/p&gt;

&lt;p&gt;Fora os detalhes mencionado anteriormente, conseguimos facilmente dizer que esse &lt;strong&gt;Powershell **tá com cara de um terminal **ZSH **ou **Fish **e até mesmo dizer que se trata de um **KDE **com o tema do **Windows 11&lt;/strong&gt;, mas isso meus caros colegas se trata de &lt;strong&gt;Windows&lt;/strong&gt;.&lt;/p&gt;

&lt;p&gt;Para que essa mágica aconteça, temos que instalar uma série de programas que rodarão no &lt;strong&gt;backend&lt;/strong&gt; do nosso **Powershell **propiciando assim uma maior produtividade para o usuário.&lt;/p&gt;

&lt;h2&gt;
  
  
  Instalando o Powershell 7.3.2 — A versão estável mais recente (no momento desse artigo):
&lt;/h2&gt;

&lt;p&gt;Antes de mais nada, o primeiro passo que devemos realizar é acessar o site da microsoft clicando no endereço abaixo:&lt;/p&gt;

&lt;p&gt;&lt;a href="https://learn.microsoft.com/pt-br/powershell/scripting/install/installing-powershell-on-windows?view=powershell-7.3" rel="noopener noreferrer"&gt;Instalar o PowerShell no Windows&lt;br&gt;
&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;No momento de construção desse artigo a versão mais recente e estável disponível é o &lt;strong&gt;Powershell 7.3.2&lt;/strong&gt; que pode ser baixado no link acima, para plataformas &lt;strong&gt;x86&lt;/strong&gt; (processadores de 32 bits) e *&lt;em&gt;x64 *&lt;/em&gt;(processadores de 64 bits).&lt;/p&gt;

&lt;p&gt;Basta selecionar a opção que melhor atenda sua plataforma e realizar o download do pacote &lt;strong&gt;msi&lt;/strong&gt;:&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fsynuqcq3de6wp006eyxl.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fsynuqcq3de6wp006eyxl.png" alt="Image description" width="800" height="372"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Para quem os mais puristas e gosta de usar o terminal, também é possível instala-lo através do &lt;strong&gt;gerenciador de pacotes nativo do Windows 11 chamado de Winget&lt;/strong&gt;, para isso vamos iniciar o nosso **Powershell **como administrador e rodar o comando abaixo:&lt;/p&gt;

&lt;p&gt;&lt;code&gt;winget Install Microsoft.PowerShell&lt;br&gt;
&lt;/code&gt;&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Importante:&lt;/strong&gt; Caso tenha realizado a instalação pelo método padrão do Windows lembre-se de habilitar as atualizações via Windows Update.&lt;/p&gt;

&lt;p&gt;Feito isso vamos instalar um gerenciador de pacotes &lt;strong&gt;competente **para **Windows **que é o **Chocolatey&lt;/strong&gt;.&lt;/p&gt;

&lt;h2&gt;
  
  
  Instalando o Chocolatey, um gerenciador de pacotes poderoso e competente para o Windows
&lt;/h2&gt;

&lt;p&gt;Quando decidi utilizar o &lt;strong&gt;Windows **em conjunto com o meu **Linux **via **Dual Boot&lt;/strong&gt; para trabalhar com &lt;strong&gt;Programação **e **DevSecOps&lt;/strong&gt;, senti falta de um gerenciador de **pacotes **que visasse facilitar o meu dia a dia, sem ter que ficar indo de site em site através dos programas especifico para baixa-lo manualmente e o pior manter vários pacotes **desatualizados **no meu sistema, seja por falta de tempo ou esquecimento de verificar pacote por pacote para saber quando atualizar.&lt;/p&gt;

&lt;p&gt;É nítido os esforços da &lt;strong&gt;Microsoft **em desenvolver um gerenciador de pacote "a lá Linux" para o **Windows&lt;/strong&gt;, onde no &lt;strong&gt;Windows 11&lt;/strong&gt; contamos com o &lt;strong&gt;Winget&lt;/strong&gt; mas ele ainda está muito "&lt;strong&gt;prematuro&lt;/strong&gt;" para garantir uma experiência satisfatória no dia a dia, diante esse impasse entra um projeto já antigo para &lt;strong&gt;Windows **chamado de **Chocolatey&lt;/strong&gt;, que busca na sua essência trazer uma experiência "a lá Linux" para o &lt;strong&gt;Windows **sem a necessidade do usuário ter que acessar o **Google&lt;/strong&gt; e buscar programa por programa de forma manual.&lt;/p&gt;

&lt;p&gt;O &lt;strong&gt;Chocolatey **é um gerenciador de pacote assim como o **Apt (Debian e Ubuntu)&lt;/strong&gt;, &lt;strong&gt;Dnf e Yum (CentOS e Fedora)&lt;/strong&gt;, &lt;strong&gt;Pacman (Arch Linux e Manjaro)&lt;/strong&gt; ou &lt;strong&gt;Zypper (Opensuse)&lt;/strong&gt;, que conta com uma infinidade de pacotes em seu repositório que facilitará muito a administração e manutenção do nosso &lt;strong&gt;Windows&lt;/strong&gt;.&lt;/p&gt;

&lt;p&gt;O Site do **Chocolatey **pode ser consultado no endereço abaixo:&lt;/p&gt;

&lt;p&gt;&lt;a href="https://community.chocolatey.org/" rel="noopener noreferrer"&gt;Chocolatey Community Repository&lt;br&gt;
&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Para instalar o &lt;strong&gt;Chocolatey **no seu **Windows **vamos executar dois comandos no **Powershell **recém instalado como **Administrador&lt;/strong&gt;:&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Observação&lt;/strong&gt;: Ao clicar no menu iniciar e pesquisar por &lt;strong&gt;Powershell&lt;/strong&gt; será exibido &lt;strong&gt;dois Powershell&lt;/strong&gt; um que a versão desatualizada que vem na instalação do &lt;strong&gt;Windows 11&lt;/strong&gt; e o outro que foi o que instalamos no passo acima (atualizado). Vamos selecionar o **Powershell **abaixo conforme a imagem:&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F879q8hmkiih8j3nkhjo7.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F879q8hmkiih8j3nkhjo7.png" alt="Image description" width="720" height="676"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Selecionado o **Powershell **vamos executa-lo como administrador e executar os comandos a seguir:&lt;/p&gt;

&lt;p&gt;&lt;code&gt;Set-ExecutionPolicy AllSigned&lt;br&gt;
Set-ExecutionPolicy Bypass -Scope Process -Force; [System.Net.ServicePointManager]::SecurityProtocol = [System.Net.ServicePointManager]::SecurityProtocol -bor 3072; iex ((New-Object System.Net.WebClient).DownloadString('https://community.chocolatey.org/install.ps1'))&lt;/code&gt;&lt;/p&gt;

&lt;p&gt;Com o **Chocolatey **instalado vamos reiniciar o **Windows **apenas para garantir que não ocorra nenhum erro na instalação dos pacotes.&lt;/p&gt;

&lt;p&gt;Com o computador reiniciado, chegou a hora de por a "mão na massa" e instalar as extensões e programas necessários para turbinamos nosso &lt;strong&gt;Powershell&lt;/strong&gt;.&lt;/p&gt;

&lt;h2&gt;
  
  
  Instalando o GOW, um programa para entender comandos Linux no Windows
&lt;/h2&gt;

&lt;p&gt;Se você assim como eu sente a falta de comandos &lt;strong&gt;Linux **ao utilizar o **Powershell **como o **ls, cat, grep&lt;/strong&gt; entre outros, saiba que tem um pacote que resolve os nossos problemas.&lt;/p&gt;

&lt;p&gt;Existe um projeto comunitário chamado &lt;strong&gt;Gow **que trás alguns comandos populares **Unix-Like&lt;/strong&gt; para o &lt;strong&gt;Windows **visando trazer uma melhor experiência para o usuário que assim como eu tem familiaridade com o **Terminal&lt;/strong&gt;.&lt;/p&gt;

&lt;p&gt;A página oficial do projeto pode ser acessada no **Github **a seguir:&lt;/p&gt;

&lt;p&gt;&lt;a href="https://github.com/bmatzelle/gow" rel="noopener noreferrer"&gt;Gow - The lightweight alternative to Cygwin&lt;br&gt;
&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Podemos realizar a instalação do **Gow **de duas formas, a tradicional "a lá Windows" e através do gerenciador de pacote **Chocolatey **que instalamos anteriormente. No nosso caso vamos usar o **Chocolatey **para vermos o quão poderoso e facilitador é esse gerenciador.&lt;/p&gt;

&lt;p&gt;O primeiro passo é abrir o **Powershell **mais recente como **administrador **e executar o comando a seguir:&lt;/p&gt;

&lt;p&gt;&lt;code&gt;choco install gow -y &lt;br&gt;
&lt;/code&gt;&lt;/p&gt;

&lt;p&gt;Feito isso basta aguardar, pois o &lt;strong&gt;Chocolatey&lt;/strong&gt; realizará o &lt;strong&gt;Download **e adicionará o programa ao **Path&lt;/strong&gt;(Variáveis de ambiente do &lt;strong&gt;Windows&lt;/strong&gt;).&lt;/p&gt;

&lt;p&gt;Concluída a instalação, basta fechar e abrir novamente o seu &lt;strong&gt;Powershell&lt;/strong&gt; que o &lt;strong&gt;Gow **já estará funcionando perfeitamente no **backend&lt;/strong&gt;.&lt;/p&gt;

&lt;h2&gt;
  
  
  Instalando pacote de fontes MesloLGS, deixando nosso terminal mais agradável
&lt;/h2&gt;

&lt;p&gt;Uma grande novidade que surgiu nas versões mais recente do &lt;strong&gt;Windows 10&lt;/strong&gt; nos últimos anos, foi a implementação do &lt;strong&gt;Windows Terminal&lt;/strong&gt; que é um emulador completo de &lt;strong&gt;Terminais&lt;/strong&gt;, onde com um simples clique podemos executar o &lt;strong&gt;Cmder, Cygwin, Cmd, Git, Powershell, WSL2&lt;/strong&gt; (farei um outro artigo sobre &lt;strong&gt;WSL2&lt;/strong&gt;) ou outro **Terminal **a gosto do usuário.&lt;/p&gt;

&lt;p&gt;Essa solução foi um "boom" para aqueles usuários que assim como eu, gostam de utilizar a sua &lt;strong&gt;workstation&lt;/strong&gt;(computador), para as mais diversas atividades, no meu caso usar a internet, jogar, trabalhar com edição de imagens e vídeos e programar.&lt;/p&gt;

&lt;p&gt;Apesar dos esforços promovidos pela &lt;strong&gt;Valve **e pela comunidade **Open-Source&lt;/strong&gt; em trazer jogos para o &lt;strong&gt;Linux *&lt;em&gt;terem avançado muito nos últimos anos com a adição do **Proton **e do **Lutris *&lt;/em&gt;é inegável que no quesito de jogos o Windows se sobressai, sem a necessidade de "&lt;/strong&gt;hackear*&lt;em&gt;" e "&lt;/em&gt;&lt;em&gt;perder tempo&lt;/em&gt;&lt;em&gt;" tentando fazer um jogo funcionar onde em alguns casos terá o desempenho "&lt;/em&gt;&lt;em&gt;capado&lt;/em&gt;&lt;em&gt;" devido a camada de compatibilidade do **Wine&lt;/em&gt;*, o que é inviável para quem utiliza o computador para **games **como eu.&lt;/p&gt;

&lt;p&gt;Diante isso, procurei uma forma de juntar o útil ao agradável e o &lt;strong&gt;Windows Terminal&lt;/strong&gt; me trouxe essa possibilidade, porém a estética original desse terminal não me agradava por ser muito "&lt;strong&gt;simplista&lt;/strong&gt;" queria algo customizado como faço nos meus ambientes **Linux **e nisso vi que dava para melhorar mais.&lt;/p&gt;

&lt;p&gt;Tem um pacote de fontes, que costumo utilizar quando estou usando o &lt;strong&gt;Linux **no **Emulador de Terminal Tilix&lt;/strong&gt; que são as fontes &lt;strong&gt;MesloLGS **que dão um visual diferenciado para o meu **ZSH **com **Powerlevel10k&lt;/strong&gt;.&lt;/p&gt;

&lt;p&gt;Para isso eu baixo as fontes do repositório do **Powerlevel10k **que pode ser acessada abaixo:&lt;/p&gt;

&lt;p&gt;&lt;a href="https://github.com/romkatv/powerlevel10k" rel="noopener noreferrer"&gt;Powerlevel10k&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;No Repositório do **Powerlevel **eu procuro baixar as fontes a seguir:&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fovpz6bymzqmxos0ea0im.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fovpz6bymzqmxos0ea0im.png" alt="Image description" width="800" height="371"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Com o **Download **realizado, basta acessamos a pasta onde as fontes foram salvas, clicar com o mouse direito e mandar instalar como administrador, conforme a imagem a seguir:&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fnisk96u01tz6mdm9fs6i.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fnisk96u01tz6mdm9fs6i.png" alt="Image description" width="551" height="603"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Após instalamos as fontes acima é hora de configurar o nosso &lt;strong&gt;Windows Terminal&lt;/strong&gt; para utilizar esse pacote recém instalado. Para isso vamos abrir o &lt;strong&gt;Windows Terminal&lt;/strong&gt; e vamos clicar no ícone de da &lt;strong&gt;▼&lt;/strong&gt; e na sequência clicar em configurações:&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fnq014x0ahfkxtwhw9qe2.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fnq014x0ahfkxtwhw9qe2.png" alt="Image description" width="723" height="423"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Na nova tela, vamos selecionar &lt;strong&gt;padrões → aparência → tipo de fonte&lt;/strong&gt; e vamos definir a fonte como **MesloLGS **NF e depois salvar como o exemplo a seguir:&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fevwsa8s8bx62iv46d3v6.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fevwsa8s8bx62iv46d3v6.png" alt="Image description" width="722" height="412"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h2&gt;
  
  
  Instalando pacotes Unix-Like via Chocolatey
&lt;/h2&gt;

&lt;p&gt;Se você assim como eu é um assíduo usuário de &lt;strong&gt;Terminal&lt;/strong&gt;, vai sentir a falta de alguns pacotes que fazem parte do dia a dia de um usuário &lt;strong&gt;Linux **como **Awk, Curl, Git, Nano, Neovim, Nmap e Vim&lt;/strong&gt;, que não vem por padrão no &lt;strong&gt;Powershell&lt;/strong&gt;.&lt;/p&gt;

&lt;p&gt;O lado bom é que com o &lt;strong&gt;Chocolatey&lt;/strong&gt; conseguimos reverter esse cenário facilmente, instalando os pacotes essenciais (para meu uso) no nosso &lt;strong&gt;Powershell **para isso vamos rodar o comando a seguir como **administrador&lt;/strong&gt;:&lt;/p&gt;

&lt;p&gt;&lt;code&gt;choco install awk curl git nano neovim nmap vim -y &lt;br&gt;
&lt;/code&gt;&lt;/p&gt;

&lt;p&gt;Feito isso nosso **Powershell **estará apto para executar os pacotes acima via linha de comando.&lt;/p&gt;

&lt;h2&gt;
  
  
  Instalando o Scoop e configurando-o nas variáveis de ambiente do Windows
&lt;/h2&gt;

&lt;p&gt;Apesar do &lt;strong&gt;Chocolatey **ser um ótimo gestor de pacotes, o **Scoop **será capaz de nos proporcionar alguns pacotes extras que fornecerá uma experiência totalmente **Linux-Like&lt;/strong&gt; no nosso &lt;strong&gt;Powershell&lt;/strong&gt;, com o uso do **sudo **por exemplo.&lt;/p&gt;

&lt;p&gt;Para realizar a instalação vamos executar o comando abaixo:&lt;/p&gt;

&lt;p&gt;&lt;code&gt;iwr -useb get.scoop.sh | iex&lt;br&gt;
&lt;/code&gt;&lt;/p&gt;

&lt;p&gt;Concluída a instalação acima é hora de configuramos o &lt;strong&gt;Scoop **como uma variável de ambiente do **Windows&lt;/strong&gt; para que possamos utiliza-lo via &lt;strong&gt;CLI&lt;/strong&gt;.&lt;/p&gt;

&lt;p&gt;Para isso vamos digitar &lt;strong&gt;variáveis de ambiente&lt;/strong&gt; no menu iniciar conforme a imagem abaixo:&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fea40pseeocgq9ckemtva.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fea40pseeocgq9ckemtva.png" alt="Image description" width="719" height="676"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Depois vamos clicar em &lt;strong&gt;variáveis de ambiente&lt;/strong&gt;:&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fwjrovbfmjvmzv7zgo6wm.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fwjrovbfmjvmzv7zgo6wm.png" alt="Image description" width="411" height="474"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Selecionando a opção acima, vamos nos deparar com dois blocos de opções, a primeira parte diz respeito a configurações do usuário, já a outra são configurações do sistema. No segundo bloco de opções vamos localizar a opção **Path **e vamos edita-la:&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F7lkan6ibiv9a8taw252c.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F7lkan6ibiv9a8taw252c.png" alt="Image description" width="615" height="589"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Agora no canto direito vamos clicar em **novo **e adicionar uma nova entrada conforme a imagem abaixo:&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fjxf7tjsn5tgcsrxedteb.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fjxf7tjsn5tgcsrxedteb.png" alt="Image description" width="530" height="497"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Agora no campo recém criado vamos colar o conteúdo a seguir:&lt;/p&gt;

&lt;p&gt;&lt;code&gt;~\scoop\shims&lt;br&gt;
&lt;/code&gt;&lt;/p&gt;

&lt;p&gt;Feito isso basta clicar em em ok (salvar), fechar o nosso &lt;strong&gt;Powershell **e vamos usar o **Windows Terminal&lt;/strong&gt;.&lt;/p&gt;

&lt;p&gt;Vamos iniciar o &lt;strong&gt;Windows Terminal&lt;/strong&gt; como usuário comum e instalar mais alguns pacotes essenciais para o nosso uso do &lt;strong&gt;Powershell&lt;/strong&gt; incluindo o comando &lt;strong&gt;sudo&lt;/strong&gt; que auxiliará muito os próximos passos.&lt;/p&gt;

&lt;p&gt;Para isso vamos rodar o comando a seguir:&lt;/p&gt;

&lt;p&gt;&lt;code&gt;scoop install sudo jq gcc fzf&lt;br&gt;
&lt;/code&gt;&lt;/p&gt;

&lt;p&gt;Feito isso já conseguimos usar o comando &lt;strong&gt;sudo **para controlar o nosso gestor de pacotes **Chocolatey&lt;/strong&gt;.&lt;/p&gt;

&lt;h2&gt;
  
  
  Configurando e instalando o Oh-My-Posh
&lt;/h2&gt;

&lt;p&gt;Se você já utilizou **Linux **deve saber que temos diversos **shells **para cada gosto pessoal que podemos utilizar, dentre os mais famosos temos o **bash **padrão na maioria das distribuições linux, **zsh **um shell customizado com temas e extensões voltadas a produtividade e o **fish **que é similar ao **zsh **com um painel via web para configurações.&lt;/p&gt;

&lt;p&gt;O &lt;strong&gt;Oh-My-Posh&lt;/strong&gt; podemos dizer que é o **Zsh **para o **Powershell **de uma forma simplista, ele vai tornar o nosso **Powershell **elegante, além de adicionar várias funcionalidades que auxiliarão e muito a nossa produtividade.&lt;/p&gt;

&lt;p&gt;Para instalamos o &lt;strong&gt;Oh-My-Posh&lt;/strong&gt; devemos executar os comandos abaixo no **Powershell **como administrador:&lt;/p&gt;

&lt;p&gt;&lt;code&gt;Set-ExecutionPolicy RemoteSigned -Scope CurrentUser&lt;br&gt;
sudo choco install oh-my-posh -y&lt;br&gt;
Install-Module oh-my-posh -Scope CurrentUser&lt;/code&gt;&lt;/p&gt;

&lt;p&gt;Vamos entender um pouco os comandos acima:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;O primeiro comando é responsável por aplicar as políticas de assinatura remota para o &lt;strong&gt;usuário atual&lt;/strong&gt; permitindo a execução de &lt;strong&gt;comandos remotos&lt;/strong&gt;.&lt;/li&gt;
&lt;li&gt;O segundo comando é responsável por instalar o &lt;strong&gt;Oh-My-Posh&lt;/strong&gt; no **Windows **e adiciona-lo as variáveis de ambiente.&lt;/li&gt;
&lt;li&gt;O terceiro comando é responsável por habilitar o &lt;strong&gt;Oh-My-Posh&lt;/strong&gt; para o usuário atual (sua conta), semelhante ao comando &lt;strong&gt;chsh -s $(which zsh)&lt;/strong&gt; do &lt;strong&gt;Linux&lt;/strong&gt;.&lt;/li&gt;
&lt;/ul&gt;

&lt;h2&gt;
  
  
  Habilitando o Git no Powershell via Oh-My-Posh
&lt;/h2&gt;

&lt;p&gt;Agora vamos habilitar a sintaxe de comandos do &lt;strong&gt;git **no nosso **Powershell&lt;/strong&gt; para ser utilizado no &lt;strong&gt;Oh-My-Posh&lt;/strong&gt; para isso vamos executar o comando a seguir:&lt;/p&gt;

&lt;p&gt;Install-Module posh-git -Scope CurrentUser&lt;/p&gt;

&lt;p&gt;Após executar o comando acima seremos capaz de executar os comandos &lt;strong&gt;Git (Init, Push, Pull Revert, Rebase, Cherry-pick).&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;PowershellGet um Wget para o Windows&lt;/p&gt;

&lt;p&gt;Um comando frequentemente utilizado por usuários do &lt;strong&gt;Linux **é o **wget **que é responsável por realizar **Download **de pacotes, páginas e conteúdo via **CLI&lt;/strong&gt;. Vamos instalar um &lt;strong&gt;wget **que funcionará perfeitamente no **Windows&lt;/strong&gt; com o comando a seguir:&lt;/p&gt;

&lt;p&gt;&lt;code&gt;Install-Module -Name PowerShellGet -Force&lt;br&gt;
&lt;/code&gt;&lt;/p&gt;

&lt;h2&gt;
  
  
  PSReadline turbinando nossa linha de comando
&lt;/h2&gt;

&lt;p&gt;Quem utiliza o &lt;strong&gt;Zsh **já deve estar familiarizado com algumas extensões que auxiliam na produtividade como o **zsh-autosuggestions zsh-completions e fast-syntax-highlighting&lt;/strong&gt;. O &lt;strong&gt;PSReadline **é responsável não só por adicionar essas extensões, pois adiciona uma séries de beneficies como **cores **para os comandos (dissociando **cores dos comandos corretos e errados&lt;/strong&gt;), experiência multilinhas, intellisense preditivo e ajudas para os comandos &lt;strong&gt;(help)&lt;/strong&gt;.&lt;/p&gt;

&lt;p&gt;Vamos instala-lo executando o comando a seguir:&lt;/p&gt;

&lt;p&gt;&lt;code&gt;Install-Module -Name PSReadline -AllowPrerelease -Scope CurrentUser -Force -SkipPublisherCheck&lt;/code&gt;&lt;/p&gt;

&lt;h2&gt;
  
  
  Alternativa ao Exa para Powershell
&lt;/h2&gt;

&lt;p&gt;Para quem gosta de customização estilo "&lt;strong&gt;Unix-Porn&lt;/strong&gt;" já deve ter utilizado o &lt;strong&gt;Exa **que acaba por trazer ícones no terminal para dissociar arquivos e pastas. Para **Windows **temos uma alternativa que deixa o comando **ls&lt;/strong&gt; tão agradável como **Exa **conforme a imagem abaixo:&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F2qak3l5tf4j4try2dxr7.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F2qak3l5tf4j4try2dxr7.png" alt="Image description" width="720" height="419"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Como podemos observar na imagem acima, o visual do nosso terminal ficou totalmente personalizado e agradável isso se dar ao pacote &lt;strong&gt;Terminal-Icons&lt;/strong&gt;.&lt;/p&gt;

&lt;p&gt;Vamos instalar executando o comando abaixo:&lt;/p&gt;

&lt;p&gt;&lt;code&gt;Install-Module -Name Terminal-Icons -Repository PSGallery&lt;br&gt;
&lt;/code&gt;&lt;/p&gt;

&lt;p&gt;PSFzf uma poderosa ferramente de pesquisa no seu Powershell&lt;/p&gt;

&lt;p&gt;O &lt;strong&gt;PSFzf&lt;/strong&gt; é uma poderosíssima ferramenta de pesquisa para o &lt;strong&gt;Powershell&lt;/strong&gt;, que permite busca em pesquisa dentro do terminal com a combinação da tecla &lt;strong&gt;ctrl + r&lt;/strong&gt;.&lt;/p&gt;

&lt;p&gt;Para instalamos vamos executar o comando a seguir:&lt;/p&gt;

&lt;p&gt;&lt;code&gt;Install-Module PSFzf -Scope CurrentUser&lt;br&gt;
&lt;/code&gt;&lt;/p&gt;

&lt;h2&gt;
  
  
  Z o famoso Change Directory(CD) para Powershell
&lt;/h2&gt;

&lt;p&gt;Um comando simples porém muito útil presente nos **BSD **e **Linux **para alternamos entre diretórios é o **CD **apesar do **Powershell **reconhecer o comando **CD **nativamente, em alguns casos ele não responde conforme o esperado. Para isso vamos garantir que tudo funcione corretamente como o uso de um **Linux **nativo instalando o pacote abaixo:&lt;/p&gt;

&lt;p&gt;&lt;code&gt;Install-Module -Name Z -Force&lt;br&gt;
&lt;/code&gt;&lt;/p&gt;

&lt;h2&gt;
  
  
  Módulos Azure Cloud (etapa opcional)
&lt;/h2&gt;

&lt;p&gt;Caso você trabalhe com soluções &lt;strong&gt;Azure Cloud&lt;/strong&gt; ou esteja estudando a respeito, saiba que o &lt;strong&gt;Powershell&lt;/strong&gt; permite a instalação do pacotes necessários via CLI.&lt;/p&gt;

&lt;p&gt;Para isso basta executar os comandos a seguir:&lt;/p&gt;

&lt;p&gt;&lt;code&gt;Install-Module Az.Accounts -Scope CurrentUser&lt;br&gt;
Install-Module Az.Tools.predictor -Scope CurrentUser&lt;/code&gt;&lt;/p&gt;

&lt;h2&gt;
  
  
  Instalando o Tema Pwsh10k, tema semelhante ao Powerlevel10k para Windows.
&lt;/h2&gt;

&lt;p&gt;Um dos temas que gosto de sempre ter em meus terminais quando estou utilizando o &lt;strong&gt;Linux&lt;/strong&gt; é o &lt;strong&gt;Powerlevel10k&lt;/strong&gt;, que além de ser um tema elegante trás algumas informações que auxiliam em muito na navegação entre diretórios.&lt;/p&gt;

&lt;p&gt;Procurando uma alternativa similar ao &lt;strong&gt;Powerlevel10k **para o **Powershell&lt;/strong&gt; encontrei um projeto chamado Pwsh10k que é basicamente o &lt;strong&gt;Powerlevel10k **para **Powershell&lt;/strong&gt;.&lt;/p&gt;

&lt;p&gt;Podemos conferir o projeto clicando no link abaixo:&lt;/p&gt;

&lt;p&gt;&lt;a href="https://github.com/Kudostoy0u/pwsh10k" rel="noopener noreferrer"&gt;Pwsh10k - A powershell theme based off of Powerlevel10k&lt;br&gt;
&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Para realizar a instalação de tema vamos executar os seguintes comandos:&lt;/p&gt;

&lt;p&gt;&lt;code&gt;curl https://raw.githubusercontent.com/Kudostoy0u/pwsh10k/master/pwsh10k.omp.json --output pwsh10k.omp.json&lt;br&gt;
Copy-Item -Path pwsh10k.omp.json -Destination $HOME&lt;/code&gt;&lt;/p&gt;

&lt;h2&gt;
  
  
  Hora de criar um arquivo de perfil para o Powershell
&lt;/h2&gt;

&lt;p&gt;Uma vez com todos os pacotes acima instalado é o momento de criamos um arquivo de perfil para chamar todas essas extensões sempre que inicializamos o nosso &lt;strong&gt;Powershell *&lt;em&gt;semelhante a um arquivo *&lt;/em&gt;.bashrc&lt;/strong&gt; ou &lt;strong&gt;.zshrc&lt;/strong&gt; que temos no Linux.&lt;/p&gt;

&lt;p&gt;Para isso vamos criar o arquivo manualmente executando o comando a seguir:&lt;/p&gt;

&lt;p&gt;&lt;code&gt;New-item -type file -force $profile&lt;br&gt;
&lt;/code&gt;&lt;br&gt;
O comando acima é responsável por realizar a criação de um arquivo de configuração possuindo o seu perfil (usuário do Windows) passado para a variável &lt;strong&gt;$profile&lt;/strong&gt;. Esse arquivo será responsável por toda e quaisquer alterações que queremos realizar para inicialização do nosso &lt;strong&gt;Powershell&lt;/strong&gt;.&lt;/p&gt;

&lt;p&gt;Agora vamos editar esse arquivo em &lt;strong&gt;branco **recém criado com o **notepad&lt;/strong&gt;:&lt;/p&gt;

&lt;p&gt;&lt;code&gt;notepad $profile&lt;br&gt;
&lt;/code&gt;&lt;/p&gt;

&lt;p&gt;Agora basta colar o conteúdo a seguir no &lt;strong&gt;Bloco de Notas&lt;/strong&gt;:&lt;/p&gt;

&lt;p&gt;`# Powershell default profile for Poweruser&lt;br&gt;
Import-Module posh-git&lt;br&gt;
Import-Module oh-my-posh&lt;/p&gt;

&lt;h3&gt;
  
  
  Optional Step For Azure DevOps
&lt;/h3&gt;

&lt;h1&gt;
  
  
  Import-Module Az.Tools.Predictor
&lt;/h1&gt;

&lt;p&gt;Set-PoshPrompt -Theme  ~/pwsh10k.omp.json&lt;/p&gt;

&lt;h1&gt;
  
  
  Autocomplete, keybinds and history
&lt;/h1&gt;

&lt;p&gt;Set-PSReadlineKeyHandler -Key Tab -Function MenuComplete&lt;br&gt;
Set-PSReadLineKeyHandler -Key UpArrow -Function HistorySearchBackward&lt;br&gt;
Set-PSReadLineKeyHandler -Key DownArrow -Function HistorySearchForward&lt;br&gt;
Set-PSReadlineOption -HistorySearchCursorMovesToEnd&lt;/p&gt;

&lt;h1&gt;
  
  
  Autosuggestions for PSReadline
&lt;/h1&gt;

&lt;p&gt;Set-PSReadlineOption -ShowToolTips&lt;br&gt;
Set-PSReadlineOption -PredictionSource History&lt;/p&gt;

&lt;h1&gt;
  
  
  Terminal-Icons
&lt;/h1&gt;

&lt;p&gt;Import-Module Terminal-Icons&lt;/p&gt;

&lt;h1&gt;
  
  
  Fzf
&lt;/h1&gt;

&lt;p&gt;Import-Module PSFzf&lt;br&gt;
Set-PsFzfOption -PSReadLineChordProvider 'Ctrl+f' -PSReadLineChordReverseHistory 'Ctrl+r'&lt;/p&gt;

&lt;h1&gt;
  
  
  Alias (Optional)
&lt;/h1&gt;

&lt;p&gt;Set-Alias vim nvim&lt;br&gt;
Set-Alias g git&lt;br&gt;
Set-Alias ll ls&lt;br&gt;
Set-Alias grep findstr&lt;br&gt;
Set-Alias tig 'C:\Program Files\Git\usr\bin\tig.exe'&lt;br&gt;
Set-Alias less 'C:\Program Files\Git\usr\bin\less.exe'&lt;/p&gt;

&lt;h1&gt;
  
  
  Ultilities (Optional)
&lt;/h1&gt;

&lt;p&gt;function which ($command) {&lt;br&gt;
Get-Command -Name $command -ErrorAction SilentlyContinue |&lt;br&gt;
Select-Object -ExpandProperty Path -ErrorAction SilentlyContinue&lt;br&gt;
}&lt;br&gt;
clear`&lt;/p&gt;

&lt;p&gt;Feito isso basta salvar esse arquivo com &lt;strong&gt;ctrl + s&lt;/strong&gt;, fechar o &lt;strong&gt;Bloco de Notas&lt;/strong&gt;, fechar o &lt;strong&gt;Powershell **e abrir o **Windows Terminal&lt;/strong&gt;, para ver as alterações na prática.&lt;/p&gt;

&lt;h2&gt;
  
  
  Adicionando transparência no Windows Terminal
&lt;/h2&gt;

&lt;p&gt;Ao abrir o seu &lt;strong&gt;Windows Terminal&lt;/strong&gt; você notará que o fundo não estar transparente, vamos resolver essa questão.&lt;/p&gt;

&lt;p&gt;Antes de editamos o arquivo de configuração do &lt;strong&gt;Windows Terminal&lt;/strong&gt; vamos instalar o &lt;strong&gt;Visual Studio Code&lt;/strong&gt; para facilitar a edição do arquivo &lt;strong&gt;json&lt;/strong&gt; de configurações do &lt;strong&gt;Windows Terminal&lt;/strong&gt;, para isso vamos executar o comando abaixo:&lt;/p&gt;

&lt;p&gt;sudo choco install -y&lt;/p&gt;

&lt;p&gt;Será exibida uma janela se deseja executar o programa, basta selecionamos &lt;strong&gt;sim&lt;/strong&gt;.&lt;/p&gt;

&lt;p&gt;Uma vez com o &lt;strong&gt;Visual Studio Code instalado&lt;/strong&gt;, vamos abrir o arquivo de configuração do &lt;strong&gt;Windows Terminal&lt;/strong&gt;, para isso vamos clicar no ícone &lt;strong&gt;▼&lt;/strong&gt; e na opção configurações:&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F8rvufxrwg4zwu1346h5t.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F8rvufxrwg4zwu1346h5t.png" alt="Image description" width="716" height="418"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Nessa nova tela, vamos criar na última opção a sua esquerda, onde vamos localizar a opção &lt;strong&gt;abrir o arquivo Json&lt;/strong&gt; conforme a imagem a seguir:&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F3b95r7b3gk74ybaiwwn5.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F3b95r7b3gk74ybaiwwn5.png" alt="Image description" width="718" height="418"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Ao clicar na opção acima o &lt;strong&gt;Windows **vai exibir uma caixa de dialogo para escolhemos o editor de arquivo da nossa preferência, agora basta escolher o **Visual Studio Code&lt;/strong&gt; recém instalado.&lt;/p&gt;

&lt;p&gt;Logo ao abrir o &lt;strong&gt;Visual Studio Code&lt;/strong&gt; temos que dar permissão de edição no arquivo e para isso vamos clicar na opção que permitirá editar o arquivo:&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F8yrmf0pyq97utaucfi3v.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F8yrmf0pyq97utaucfi3v.png" alt="Image description" width="722" height="389"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Clicando em &lt;strong&gt;Gerenciar o Visual Studio Code&lt;/strong&gt; exibirá uma nova página se desejamos confiar no &lt;strong&gt;diretório&lt;/strong&gt;, basta selecionar a opção **confiar **conforme a imagem:&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fwdhq4tl0gejksv68cdct.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fwdhq4tl0gejksv68cdct.png" alt="Image description" width="800" height="346"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Após os passos acima seremos capaz de editar e salvar o arquivo &lt;strong&gt;settings.json&lt;/strong&gt;, agora vamos localizar a seção **default **e colar o conteúdo a seguir:&lt;/p&gt;

&lt;p&gt;&lt;code&gt;"opacity": 75,&lt;br&gt;
"useAcrylic": false&lt;/code&gt;&lt;/p&gt;

&lt;p&gt;O seu arquivo deve ficar conforme a imagem a seguir:&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fm798oz4zl4n58klcm5dk.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fm798oz4zl4n58klcm5dk.png" alt="Image description" width="800" height="431"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Adicionando Temas no Windows Terminal (Bônus)&lt;/p&gt;

&lt;p&gt;O &lt;strong&gt;Windows Terminal&lt;/strong&gt; além de transparência, permite que o usuário customize os temas de cores conforme a sua preferência, onde ele pode configurar um tema totalmente customizado no arquivo &lt;strong&gt;settings.json&lt;/strong&gt; ou utilizar um tema já configurado.&lt;/p&gt;

&lt;p&gt;Caso você queira consultar os temas disponíveis, temos o site abaixo com alguns &lt;strong&gt;temas **que basta copiar e colar no seu arquivo **settings.json&lt;/strong&gt;:&lt;/p&gt;

&lt;p&gt;&lt;a href="https://windowsterminalthemes.dev/" rel="noopener noreferrer"&gt;Windows Terminal Themes&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Esse site é bastante útil pois temos uma seleção de &lt;strong&gt;Temas **disponíveis além de uma exibição de como ficará o seu terminal, um dos temas que gosto bastante de utilizar é o **Blue Matrix&lt;/strong&gt; conforme a imagem abaixo:&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fn4zhki3wrz546rkoje9w.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fn4zhki3wrz546rkoje9w.png" alt="Image description" width="800" height="392"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Uma vez selecionado o &lt;strong&gt;tema **desejado, basta clicamos na opção **Get theme&lt;/strong&gt; destacada em **azul **para copia-lo.&lt;/p&gt;

&lt;p&gt;Com o tema copiado, vamos adicioná-lo no nosso arquivo de configuração na seção &lt;strong&gt;schemes&lt;/strong&gt;, no final do arquivo conforme a imagem abaixo:&lt;/p&gt;

&lt;p&gt;Antes de colar o tema é necessário adicionar uma &lt;strong&gt;virgula(,)&lt;/strong&gt; logo após a &lt;strong&gt;chave(})&lt;/strong&gt; conforme o exemplo abaixo:&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fuctap9x1c5m975n0yx6f.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fuctap9x1c5m975n0yx6f.png" alt="Image description" width="800" height="408"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Agora vamos colar nosso tema na linha abaixo da &lt;strong&gt;Virgula(,)&lt;/strong&gt;:&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F44yr7iyezlyie5xt64k8.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F44yr7iyezlyie5xt64k8.png" alt="Image description" width="800" height="429"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Alterado o arquivo, vamos salvar com a combinação de teclas &lt;strong&gt;ctrl +s&lt;/strong&gt; ou clicando em &lt;strong&gt;arquivo → salvar&lt;/strong&gt;.&lt;/p&gt;

&lt;p&gt;Pronto agora basta fechar e abrir novamente o &lt;strong&gt;Windows Terminal&lt;/strong&gt; que ele estará configurado e teremos o visual a seguir:&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Ft9rvdkc6upfu6sh5w03b.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Ft9rvdkc6upfu6sh5w03b.png" alt="Image description" width="800" height="467"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Bônus - para quem gosta de vídeos segue o tutorial detalhado&lt;/p&gt;

&lt;p&gt;&lt;a href="https://www.youtube.com/watch?v=EmMclbkcnFU" rel="noopener noreferrer"&gt;&lt;/a&gt;&lt;/p&gt;

</description>
      <category>powershell</category>
      <category>devops</category>
      <category>windows</category>
      <category>productivity</category>
    </item>
  </channel>
</rss>
