DevOps Mind
Ao longo dos últimos anos, o Windows tem se esforçado para se tornar uma plataforma mais amigável para desenvolvedores, oferecendo cada vez mais suporte a ferramentas e tecnologias usadas no mundo Linux. Um desses recursos é o Windows Subsystem for Linux (WSL), que permite que você execute um ambiente Linux completo diretamente no Windows, sem a necessidade de uma máquina virtual ou um computador dedicado. Neste artigo, você aprenderá como instalar e configurar o Terminal Linux no Windows com WSL 2.
Também irei abordar a instalação de plugins e customizações extras, que vão deixar o teu terminal ainda mais legal, prático e otimizado, parecido com este:
Tópicos
O que é WSL 2?
WSL 2 é a segunda geração do Windows Subsystem for Linux, que fornece um ambiente de tempo de execução do Linux em contêineres leves no Windows. Permitindo executar aplicativos Linux nativamente no Windows, sem as complexidades e o consumo de recursos típicos de uma virtualização completa. Além disso, WSL 2 é baseado em um kernel Linux real, o que significa que ele oferece melhor desempenho e compatibilidade do que a versão anterior.
Requisitos
Antes de instalar o WSL 2, verifique se seu sistema atende aos seguintes requisitos mínimos:
- Windows 10 versão 2004 ou posterior
- Processador de 64 bits
- 4 GB de RAM (recomendado: 8 GB ou mais)
- Virtualização habilitada no BIOS
Instalação do WSL 2 – Linux no windows
Sim, basicamente a instalação do WSL é com 1 único comando wsl --install
, que deve ser executado dentro de um terminal no Prompt de Comando ou no PowerShell do Windows. Ele é utilizado para instalar o Subsistema Windows para Linux (WSL2 Windows) e a distribuição Linux padrão(Ubunto é a padrão) em sistemas Windows que suportam essa funcionalidade:
# Instalar linux no windows
wsl --install
Não irei abordar detalhes adicionais sobre o comando de instalação, qualquer detalhe adicional pode ser conferido no material da Microsoft: https://learn.microsoft.com/pt-br/windows/wsl/basic-commands
Utilizando o comando wsl --list --verbose
, verifico se a instalação foi bem sucedida. Este comando retorna as distribuições que temos instaladas no WSL:
wsl --list --verbose
No meu caso, não constava o Ubuntu ainda, foi necessário reboot no computador para terminar de instalar o Linux no Windows.
Após o reboot e ao abrir o terminal novamente, ele vai concluir a instalação da distribuição do Ubuntu e solicitar algumas informações, como o usuário e senha desejados:
Então vai retornar:
Validando que o terminal com Linux está operacional:
Com o comando wsl --list --online
, podemos listar as distribuições disponíveis, caso queira instalar alguma versão diferente do Ubuntu ou colocar uma outra distro:
wsl --list --online
Definindo WSL 2 como sua versão padrão
Execute o seguinte comando no terminal(Prompt / PowerShell) para definir o WSL 2 como padrão:
wsl --set-default-version 2
Veja que o comando foi executado no terminal do Windows PowerShell com sucesso.
Vantagens
Comparando o WSL 2 com o uso de máquinas virtuais (VMs) Linux tradicionais, há várias vantagens que o WSL 2 oferece:
1. Integração do terminal Linux com o Windows
- Integração Direta: O WSL 2 permite uma integração mais fluida entre o ambiente Linux e o Windows. Você pode acessar arquivos do Windows diretamente do WSL e vice-versa sem precisar configurar compartilhamento de pastas ou redes complexas. Aplicativos Linux podem ser executados e integrados diretamente no ambiente de trabalho do Windows.
2. Desempenho Melhorado
- Menor Sobrecarga de Recursos: O WSL 2 Windows utiliza uma máquina virtual leve, otimizada para desempenho, consumindo menos recursos do sistema do que VMs tradicionais. Isso significa que você pode rodar tarefas Linux intensivas em um sistema Windows sem sobrecarregar o sistema com o uso de RAM ou CPU, típico de uma VM completa.
- Startup Instantâneo: O WSL 2 inicia quase instantaneamente, ao contrário das VMs, que podem demorar para inicializar o sistema operacional.
3. Fácil Configuração e Uso
- Configuração Simplificada: Com o WSL2, não há necessidade de gerenciar configurações complexas de máquinas virtuais, como alocação de recursos ou redes virtuais. A instalação é direta, e você pode começar a usar um ambiente Linux com apenas alguns comandos.
- Sem necessidade de virtualização de terceiros: O WSL2 usa a própria funcionalidade de virtualização do Windows, eliminando a necessidade de softwares adicionais como VMware ou VirtualBox.
4. Acesso a Recursos do Sistema
- Compartilhamento de Hardware: Diferentemente das VMs, que têm recursos dedicados e limitados (como alocação de memória e CPU), o WSL2 compartilha recursos do sistema diretamente, o que permite uma utilização mais eficiente do hardware disponível.
5. Atualizações e Manutenção
- Kernel Linux Atualizável: O kernel do Linux no WSL 2 Windows é atualizado automaticamente pelo Windows Update, o que simplifica a manutenção do sistema. Em uma VM tradicional, você teria que gerenciar manualmente as atualizações do sistema operacional e do kernel.
6. Menos Isolamento
- Acesso Simplificado entre Ambientes: No WSL 2, o acesso entre arquivos e diretórios do Linux e do Windows é mais simples e direto. Em VMs tradicionais, você precisaria configurar compartilhamento de pastas ou sistemas de arquivos em rede para acessar arquivos entre os dois sistemas.
7. Uso de Recursos Avançados
- Suporte a Contêineres: O WSL 2 permite o uso de contêineres Docker de maneira mais eficiente em comparação com VMs tradicionais, sem a sobrecarga de rodar o Docker dentro de uma VM separada.
- Acesso a GPUs e Outros Periféricos: Com atualizações recentes, o WSL 2 Windows também oferece suporte para aceleração de hardware, como acesso direto a GPUs para tarefas que envolvem computação gráfica ou aprendizado de máquina, o que pode ser mais difícil de configurar em VMs.
8. Melhor Experiência de Desenvolvimento
- Integração com Ferramentas de Desenvolvimento: Ferramentas como VS Code podem ser usadas de forma mais eficiente com WSL 2, permitindo a edição de código, depuração e execução diretamente no ambiente Linux, sem as complexidades de configurar uma VM separada.
9. Economia de Espaço em Disco
- Gerenciamento de Imagens Menor: VMs tradicionais geralmente exigem imagens de disco grandes e estáticas. O WSL 2 utiliza um disco virtual dinâmico que pode aumentar ou diminuir conforme necessário, otimizando o uso do espaço em disco.
10. Portabilidade
- Ambientes de Desenvolvimento Leves: O WSL 2 é mais leve para movimentar e recriar em diferentes máquinas. Por exemplo, exportar e importar distribuições WSL é mais simples em comparação à movimentação de uma VM completa.
Essas vantagens tornam o WSL2 uma excelente alternativa ao uso de VMs Linux tradicionais, especialmente para desenvolvedores que precisam de um terminal Linux para Windows funcional sem sacrificar a simplicidade e eficiência.
Instalando o ZSH no WSL 2
Se você está procurando uma alternativa ao Bash no seu Terminal Linux no Windows com WSL 2, o ZSH (Z Shell) pode ser uma ótima opção. O ZSH é um shell de código aberto que oferece recursos avançados e personalização aprimorada em relação ao Bash. Na sequência, vou ensinar como instalar e configurar o ZSH no Terminal Linux para Windows com WSL 2.
Vantagens e Desvantagens do ZSH
Antes de instalar o ZSH, é importante considerar suas vantagens e desvantagens em relação ao Bash. Algumas vantagens do ZSH incluem:
- Melhor completação de comandos e argumentos
- Histórico de comandos avançado
- Personalização aprimorada
- Suporte a plugins e temas
No entanto, algumas desvantagens do ZSH incluem:
- Maior consumo de memória em comparação com o Bash
- Curva de aprendizado mais íngreme devido aos recursos avançados
Comandos para instalar o ZSH
Abra o Terminal Linux no WSL 2.
Atualize os pacotes:
sudo apt update && sudo apt upgrade
Digite o comando sudo apt install zsh
para instalar o ZSH:
sudo apt install zsh
Resultado esperado:
Verifique se o ZSH foi instalado corretamente executando o seguinte comando:
zsh --version
Deve retornar com sucesso a versão do zsh que foi instalada no teu sistema WSL.
Dicas para Usar o ZSH
Aqui estão algumas dicas para usar o ZSH:
- Use o comando
zsh
para abrir o terminal ZSH. - Use o comando
source ~/.zshrc
para carregar as configurações do ZSH. - Use o comando
zsh -c "comando"
para executar um comando no ZSH.
OMZ – Oh My Zsh – Instalação
Se você já instalou o ZSH no seu Terminal Linux com WSL 2 e deseja aproveitar ao máximo suas funcionalidades, o OMZ (Oh My Zsh) é uma ferramenta que pode ajudar. O OMZ é um framework de plugins e temas para o ZSH que facilita a configuração e personalização do seu shell.
Requisitos
Requisitos para instalar e configurar o OMZ – Oh My Zsh no Terminal Linux para Windows com WSL 2:
- Um sistema operacional Windows 10 com a atualização de outubro de 2019 (versão 2004) ou posterior instalada.
- O Windows Subsystem for Linux (WSL) 2 habilitado e configurado no sistema operacional Windows 10.
- Um Terminal Linux instalado e configurado no WSL2 Windows, como Ubuntu, Debian ou Kali Linux.
Além disto, vamos precisar do Git e o Curl instalados no seu sistema para instalar e configurar o OMZ – Oh My Zsh e conseguir fazer todos os passos deste tutorial. O script de instalação do OMZ – Oh My Zsh usa o curl para baixar o arquivo de instalação a partir do repositório do GitHub e o Git para clonar repositórios de plugins e temas adicionais.
Requisitos adicionais
- Git instalado no seu sistema operacional Linux
- Curl instalado no seu sistema operacional Linux
Comandos para instalar o Git e o Curl
sudo apt update && sudo apt upgrade
para atualizar as listas de pacotessudo apt install git
para instalar o Gitsudo apt install curl
para instalar o Curl
Verificar se o Git e o Curl estão instalados
git --version
para verificar a versão do Gitcurl --version
para verificar a versão do Curl
sudo apt update && sudo apt upgrade
sudo apt install git
Instalando o curl:
sudo apt install curl
Para checar se foi instalado corretamente execute o comando:
curl --version
Resultado esperado:
Observação
- Se você já tiver o Git e o Curl instalados no seu sistema, você pode pular esses passos.
- Se você tiver problemas para instalar o Git e o Curl, você pode tentar usar o comando
sudo apt install -y git curl
para instalar os dois pacotes de uma vez.
Efetuando a instalação do OMZ(OhMyZsh)
Execute o seguinte comando para instalar o OMZ:
sh -c "$(curl -fsSL https://raw.githubusercontent.com/ohmyzsh/ohmyzsh/master/tools/install.sh)"
Aguarde a instalação ser concluída.
PowerLevel10k – Instalação e configuração
Se você está procurando por um tema moderno e altamente personalizável para o seu terminal Linux no Windows com WSL 2, o PowerLevel10k é uma ótima opção. Com suporte a ícones, cores e layouts personalizáveis, o PowerLevel10k é um tema de terminal popular entre os usuários do ZSH e do OMZ.
Requisitos
- Ter concluído todos os passos anteriores.
- Fontes: Não é mandatório, mas é interessante ter configurado fontes monoespaçadas que incluem ícones e símbolos adicionais, essenciais para temas de terminal modernos, como o PowerLevel10k.
O Que São Nerd Fonts e Por Que Usá-las?
Nerd Fonts são fontes monoespaçadas que incluem ícones e símbolos adicionais. Esses ícones são usados para exibir informações visuais, como status de branches do Git, indicadores de erro, e muito mais, de forma elegante e compacta. Usar Nerd Fonts permite que você visualize esses símbolos corretamente no seu terminal.
Instalar Nerd Fonts
Para que os ícones do PowerLevel10k sejam exibidos corretamente, você precisa de uma fonte Nerd Font instalada e configurada no seu terminal.
- Baixar e Instalar uma Nerd Font: Visite o repositório de Nerd Fonts e escolha uma fonte. Algumas das fontes mais populares incluem:
- FiraCode Nerd Font
- Hack Nerd Font
- MesloLGS NF (recomendada pelo PowerLevel10k)
Opção de preview, para ter uma noção de como vai ficar aquela fonte no terminal:
https://www.programmingfonts.org/#commit-mono
No meu caso eu escolhi a fonte Courier Prime, mas fique a vontade para escolher a que mais lhe agradar:
https://www.programmingfonts.org/#courier-prime-code
Instalação no Windows:
- Baixe o arquivo de fonte.
- Extraia o conteúdo do arquivo ZIP.
- Clique com o botão direito nos arquivos de fonte e selecione “Instalar”.
Dois cliques no arquivo .ttf e clique em “instalar”:
Agora basta abrir o PowerShell novamente.
Ajustando a fonte para o Ubuntu
Para personalizar a fonte do seu ambiente Ubuntu no terminal Windows, siga estes passos:
- Acesse as opções de configuração do terminal. Você pode fazer isso de duas maneiras:
- Use o atalho de teclado Ctrl + ,
- Ou clique no ícone de seta próximo à aba e selecione “Configurações” no menu
- Na janela de configurações, localize e selecione o perfil “Ubuntu” na lista de perfis disponíveis.
- No painel lateral, procure e clique na seção “Aparência”.
- Dentro das opções de aparência, encontre o campo relacionado às fontes.
- Neste campo, selecione a nova fonte que você previamente instalou no seu sistema.image
- Aplique as mudanças clicando em “Salvar” e feche a janela de configurações.
Após estes passos, seu terminal Ubuntu no Windows exibirá o texto com a nova fonte escolhida.
Instalando o PowerLevel10k
Sua instalação é surpreendentemente fácil. Aqui está como fazer:
- Primeiro, certifique-se de que você tem o git instalado no seu sistema.
- Abra seu terminal.
- Cole e execute o comando de clonagem do PowerLevel10k e adicione a configuração no seu .zshrc:
git clone --depth=1 https://github.com/romkatv/powerlevel10k.git ~/powerlevel10k
echo 'source ~/powerlevel10k/powerlevel10k.zsh-theme' >>~/.zshrc
- Após a conclusão do download, feche o terminal atual.
- Abra uma nova janela do terminal. Surpresa! Você será recebido com o assistente de configuração do PowerLevel10k.
- Siga as instruções na tela para personalizar sua config/experiência.
E pronto! Com esses passos simples, você terá um terminal turbinado com o PowerLevel10k. A beleza deste método é que ele elimina a necessidade de configurações manuais complicadas, tornando todo o processo rápido e descomplicado.
Comandos utilizados:
git clone --depth=1 https://github.com/romkatv/powerlevel10k.git ~/powerlevel10k
echo 'source ~/powerlevel10k/powerlevel10k.zsh-theme' >>~/.zshrc
Assistente de configuração – p10k
Depois de reiniciar o terminal, será exibido um assistente de configuração que permitirá escolher as opções visuais conforme suas preferências. Você pode personalizar a aparência do PowerLevel10k de acordo com seu gosto. Se desejar repetir a configuração mais tarde, basta executar o comando:
p10k configure
p10k configure
Com isto, estará concluída a instalação e configuração do PowerLevel10k no seu WSL.
Erros comuns – Troubleshooting
Caso a sua instalação tenha sido bem sucedida, pode ignorar este tópico.
p10k not found
Caso você encontre o mesmo problema que eu:
Onde o p10k não é encontrado e ocorrem alguns erros ao tentar carregar o .zshrc
:
-bash: builtin: setopt: not a shell builtin
-bash: ((: $+__p9k_root_dir : syntax error: operand expected (error token is "$+__p9k_root_dir ")
-bash: ${${(%):-%x}:A:h}: bad substitution
-bash: ((: $+__p9k_intro : syntax error: operand expected (error token is "$+__p9k_intro ")
-bash: typeset: __p9k_intro_base: readonly variable
-bash: typeset: __p9k_intro_locale: readonly variable
-bash: ${${__p9k_intro_base/ match / match reply }/ MATCH / MATCH REPLY }: bad substitution
zmodload: command not found
-bash: /home/fernando/powerlevel10k/powerlevel10k.zsh-theme: line 47: syntax error near unexpected token `)'
-bash: /home/fernando/powerlevel10k/powerlevel10k.zsh-theme: line 47: `() {'
-bash: local: can only be used in a function
-bash: builtin: setopt: not a shell builtin
-bash: ((: $+__p9k_root_dir : syntax error: operand expected (error token is "$+__p9k_root_dir ")
-bash: ${${(%):-%x}:A:h}: bad substitution
-bash: ((: $+__p9k_intro : syntax error: operand expected (error token is "$+__p9k_intro ")
-bash: typeset: __p9k_intro_base: readonly variable
-bash: typeset: __p9k_intro_locale: readonly variable
-bash: ${${__p9k_intro_base/ match / match reply }/ MATCH / MATCH REPLY }: bad substitution
zmodload: command not found
-bash: /home/fernando/powerlevel10k/powerlevel10k.zsh-theme: line 47: syntax error near unexpected token `)'
-bash: /home/fernando/powerlevel10k/powerlevel10k.zsh-theme: line 47: `() {'
fernando@desktop-xpg:~$
Para resolver, é necessário executar o comando:
exec zsh
Responder a todas as perguntas do assistente de configuração:
Preencher o que é perguntado até o final.
Resultado esperado:
Powerlevel10k não carrega automaticamente
Encontrei outro problema durante as configurações, que foi powerlevel10k não carregar sozinho no WSL 2, sendo necessário executar o comando exec zsh
toda vez que abria o terminal.
Consegui ajustar seguindo estes passos:
Defina o Zsh como shell padrão:
- Verifique se a linha abaixo está presente no final do arquivo
.bashrc
para garantir que o Zsh seja iniciado automaticamente quando você abrir o WSL2 Windows:
exec zsh
Feito isto, ao abrir novamente o WSL o ZSH e o tema do Powerlevel carregam automaticamente:
Plugins no ZSH
Se você está procurando por uma maneira de melhorar sua experiência de terminal no Windows com WSL 2, considerar usar o ZSH (Z Shell) e plugins pode ser uma ótima opção. Com uma variedade de plugins disponíveis, como zsh-syntax-highlighting e zsh-autosuggestions, você pode personalizar e melhorar sua experiência de terminal. Vou ti explicar como instalar e configurar os plugins zsh-syntax-highlighting e zsh-autosuggestions no Terminal Linux com WSL 2.
Instalando os plugins zsh-syntax-highlighting e zsh-autosuggestions
Agora que o ZSH está instalado, é hora de instalar os plugins zsh-syntax-highlighting e zsh-autosuggestions. Siga as etapas abaixo para instalar os plugins:
- Clone o repositório do zsh-syntax-highlighting usando o comando
git clone https://github.com/zsh-users/zsh-autosuggestions.git $ZSH_CUSTOM/plugins/zsh-autosuggestions
. - Clone o repositório do zsh-autosuggestions usando o comando
git clone https://github.com/zsh-users/zsh-syntax-highlighting.git $ZSH_CUSTOM/plugins/zsh-syntax-highlighting
. - Abra o arquivo de configuração do ZSH usando o comando
vi ~/.zshrc
. - Localize a linha que começa com
plugins=
e adicione os nomes dos plugins separados por espaços, por exemplo,plugins=(git zsh-syntax-highlighting zsh-autosuggestions)
. - Salve e feche o arquivo de configuração do ZSH.
- Atualize a configuração do ZSH usando o comando
source ~/.zshrc
.
Comandos utilizados:
git clone https://github.com/zsh-users/zsh-autosuggestions.git $ZSH_CUSTOM/plugins/zsh-autosuggestions
git clone https://github.com/zsh-users/zsh-syntax-highlighting.git $ZSH_CUSTOM/plugins/zsh-syntax-highlighting
vi ~/.zshrc
plugins=(git zsh-autosuggestions zsh-syntax-highlighting)
source ~/.zshrc
Visual Studio Code – vscode
Uma das principais vantagens do WSL2 é sua integração com o VSCode. Com essa configuração, você pode utilizar a IDE para acessar e editar arquivos e diretórios diretamente no ambiente Linux, além de gerenciar pacotes e monitorar o status do Git de seus projetos durante o desenvolvimento, tudo em tempo real.
Pré-requisitos
- Possuir o vscode instalado na sua máquina.
- Instalar a extensão WSL no Visual Studio Code
Utilizando o Vscode + WSL
Após instalados VSCODE + WSL2, acesse o terminal e execute:
code nome-do-arquivo
Ou então code ., que vai abrir a pasta atual no vscode diretamente, basta clicar em “Yes” na mensagem que surge:
code .
Clique em “Yes”:
Com isto, temos nosso código e terminal acessiveis via vscode:
O Ubuntu abrirá o arquivo ou diretório diretamente no VSCode, operando dentro do ambiente Linux. Se tudo estiver funcionando corretamente, você notará no canto inferior esquerdo uma etiqueta azul com o nome semelhante a: WSL: Ubuntu
, indicando que o terminal integrado do VSCode está ativo e operando na instância do WSL.
O WSL 2 é uma ferramenta incrível que pode ser usada para executar um sistema operacional Linux diretamente no Windows. Com o WSL 2, você pode ter acesso a um terminal Linux para Windows, sem precisar instalar um sistema operacional Linux separado. Neste artigo, mostramos como instalar e configurar o WSL2 Windows, ZSH, OMZ e plugins. Se você está procurando por uma ferramenta para executar um sistema operacional Linux no Windows, o WSL 2 é uma ótima opção.
Material extra
Video muito legal sobre a instalação de todos estes itens que foram abordados neste artigo:
Conheça mais sobre o WSL 2