Desenvolver software é um trabalho delicado. No final do dia, todo o trabalho consiste em escrever instruções em uma linguagem estranha para um intérprete exigente que vai desligar tudo em que você trabalhou. Bem, é hora de instalar o Windows Terminal e descobrir uma maneira melhor.
Neste Guia Definitivo, você vai aprender sobre um dos melhores consoles para desenvolvedores; o Windows Terminal. Você vai obter uma visão completa de quase todas as características do Windows Terminal. Você vai aprender como ele pode ajudá-lo a realizar tarefas no Windows na linha de comando.
O Windows Terminal melhora a experiência do console com recursos modernos de terminal como abas, painéis e até mesmo imagens de fundo. Você pode até ter um shell Linux completo em execução ao lado de Windows PowerShell ou cmd.exe sem precisar alternar entre sessões de console.
Este artigo será um guia sobre muitas capacidades do Windows Terminal. Será um tutorial prático ao longo de todo o caminho, então esteja preparado para começar a trabalhar!
Pré-requisitos
Os requisitos para instalar e usar o próprio Windows Terminal são bastante básicos. Tudo o que você precisa é de um computador com Windows 10 com a versão 1903 (maio de 2019) ou posterior. Se você quiser acompanhar todas as demonstrações neste artigo, precisará de algumas outras ferramentas instaladas também:
- O recurso Windows Subsystem for Linux (WSL) habilitado com uma distribuição Linux instalada (todas as demonstrações mostradas estão usando o Ubuntu 20.04)
- Visual Studio Code (VS Code)
- Python com a biblioteca de texto rica instalada
- Visual Studio 2019 ou posterior com:
- O SDK do Windows 10 1903 instalado
- O Componente de Desenvolvimento de Área de Trabalho com C++ instalado
- O Componente de Desenvolvimento da Plataforma Universal do Windows instalado
- O Componente de Ferramentas da Plataforma Universal do Windows C++ (v142) instalado
Terminal vs. Console vs. Shell
Como abordaremos muitos termos neste artigo, é importante primeiro entender algumas diferenças de terminologia para que você não fique confuso.
Mesmo que os conceitos sejam semelhantes, é importante notar que um terminal não é uma console, e uma console não é uma shell. Cada um tem seu próprio propósito específico. Scott Hanselman tem um ótimo post em blog sobre as definições de cada um, mas aqui está como serão usados neste artigo:
- Terminal: O aplicativo Terminal do Windows.
- Console: Qualquer aplicativo de hospedagem de console que não seja o Terminal do Windows.
- Shell: O programa entre o terminal e o sistema operacional. (pwsh, cmd, zsh, etc.)
Instalar o Terminal do Windows
Existem algumas maneiras diferentes de instalar o Windows Terminal, mas a mais fácil de longe (e a recomendada pela Microsoft) é instalá-lo pela Microsoft Store. Existem duas versões diferentes que você pode baixar; o Windows Terminal padrão e o Windows Terminal Preview.
Para os fins deste artigo, você pode usar qualquer um deles. A instalação é direta, então não a abordaremos neste artigo e assumiremos que você já o instalou.
Ao abrir o Windows Terminal pela primeira vez, ele não parece nem impressionante. Há muitos ajustes que você terá que fazer para chegar lá, mas tudo começa com uma janela como esta abaixo.

Observe que o Windows Terminal tem quatro componentes principais:
- Janela do Terminal – Aqui é onde você fará a maior parte do seu trabalho e onde pode personalizar mais.
- Nome da guia – O Windows Terminal suporta guias, o que significa que você pode ter shells diferentes
- Nova guia – Este botão abrirá uma nova guia do seu perfil padrão
- Lista de perfis – Isso listará os perfis disponíveis para abrir.
O Windows Terminal tem um layout minimalista, mas há muita funcionalidade escondida atrás dele.
Construindo o Terminal a partir do código-fonte
Enquanto este é o Terminal Windows e provém da Microsoft, é também totalmente de código aberto, o que significa que, se desejar, pode contribuir para ele. É um programa em C++ com uma comunidade muito ativa.
Mesmo sendo um produto GA, no momento da escrita, ainda existem alguns bugs menores sendo corrigidos e recursos no roteiro para desenvolvimento futuro. Talvez seja você quem ajudará a contribuir para eles!
Se você é um desenvolvedor e realmente deseja mergulhar no código, pode construir o Windows Terminal a partir do PowerShell, seguindo estes passos:
- Execute
git submodule update --init --recursive
para atualizar todos os submódulos do git - Execute os comandos do PowerShell abaixo:
O arquivo settings.json: Personalizando tudo
Eventualmente, você provavelmente vai querer personalizar o terminal de acordo com suas preferências. Uma das melhores coisas sobre o Windows Terminal é o quão customizável ele é. A maneira mais comum de personalizar o Windows Terminal é editando o arquivo settings.json localizado no diretório %LOCALAPPDATA%\Packages\Microsoft.WindowsTerminal_8wekyb3d8bbwe\LocalState\.
Você também pode acessar o arquivo settings.json clicando na lista de perfis e selecionando Configurações.
O arquivo settings.json é onde você realizará a maioria das personalizações para o Windows Terminal até que uma opção gráfica esteja disponível.
A equipe do Windows Terminal prometeu em uma próxima versão que em breve será lançada uma GUI para gerenciar as configurações!
Além de ter todas as configurações armazenadas em um local conveniente, quando as configurações são armazenadas em um arquivo JSON, você pode colocar suas configurações no controle de origem ou fazer backup delas caso você mude entre máquinas diferentes.
Você até mesmo pode compartilhar as configurações com outras pessoas. Se você quiser dar uma olhada em um exemplo de como o settings.json se parece, confira aqui.
O Esquema settings.json
Se você estiver usando o Visual Studio Code, o terminal inclui um esquema JSON que ajudará a validar qualquer personalização que você fizer dentro do settings.json, incluindo o preenchimento automático de novos itens.
Assim que suas alterações forem salvas (desde que o settings.json ainda seja válido), as novas alterações serão refletidas imediatamente no terminal ou um erro será mostrado sem a necessidade de atualizar o terminal.
Embora o Visual Studio Code não seja obrigatório para editar JSON, é definitivamente recomendado quando se trata de personalizar o Windows Terminal.
Atualmente, existem quatro seções diferentes do arquivo settings.json que controlam a aparência e sensação do Windows Terminal: Globais, Perfis, Esquemas e Vínculos de Teclas. Vamos dar uma olhada em cada seção.
Globais
A seção de globais é responsável por determinar o comportamento do Windows Terminal. Sempre no topo do arquivo, a seção global controla coisas como confirmar ao fechar, tema visual e o perfil padrão. Você pode ver um exemplo no trecho de código a seguir.
Perfis
A profile is a configuration of the Windows Terminal that has its own shell, theme, and settings. When you open up a Windows Terminal profile, it will open a session with the assigned shell, environment, or WSL distribution. This means you can have different shells open at the same time, or different sessions of the same shell, which can be useful when testing code cross-platform or need to run a background process.
O Windows Terminal vem com três perfis por padrão: Windows PowerShell, cmd.exe e Azure Cloud Shell. Se você tiver o WSL instalado, ele também gerará um perfil para cada distribuição WSL que você tiver instalada. Ele também inclui uma seção de padrões que aplicará configurações a cada perfil em settings.json. Este é um ótimo lugar para colocar fontes compatíveis com Unicode, que serão abordadas posteriormente neste artigo.
Podes ver um exemplo de como se parece um perfil no seguinte trecho de código.
Criando um Novo Perfil
Configurar perfis pode ser útil se quiser adicionar variações na mesma shell ou adicionar perfis remotos personalizados ao terminal.
Para criar um novo perfil do Windows Terminal em settings.json, aqui estão os passos que precisarás seguir:
Certifica-te de adicionar uma vírgula após cada perfil, exceto o último, para tornar o JSON válido.
- Copia qualquer perfil da tua secção de perfis. Estes começam em
[
e terminam em]
sob o nó list no ficheiro JSON. Estas são as linhas sete a 14 acima. - Gera um novo GUID executando
[guid]::NewGuid()
a partir de qualquer sessão do PowerShell. Substitui o valor atual paraguid
no teu novo perfil pelo GUID que geraste. Os GUIDs são gerados aleatoriamente quando o terminal configura os perfis padrão. - Adiciona ou altera quaisquer outros parâmetros para personalizar o perfil.
- Copia o conteúdo de settings.json e valida se ainda é válido executando-o através do JSON Lint ou outro validador JSON. Corrige quaisquer problemas.
- Guarda as tuas alterações.
Há muitas opções disponíveis para configurar em um perfil. Tenha em mente que se você tiver uma configuração na seção de padrões em settings.json e tiver essa mesma configuração definida em seu novo perfil, você substituirá o padrão. Para uma análise completa, confira a documentação de Configurações do Windows Terminal.
Esquemas
Esta seção refere-se a esquemas de cores para os perfis do Windows Terminal. Um esquema de cores informa ao terminal qual valor hexadecimal usar para cada cor que aparece no terminal. Como o terminal pode renderizar cores em 24 bits, essas cores podem ser bastante criativas. Cada esquema terá um nome e uma lista de cores que correspondem a um valor hexadecimal, que pode ser facilmente alterado conforme mostrado abaixo.
Essas cores corresponderão às cores de fundo e de texto enquanto você estiver usando esse esquema no Windows Terminal. Se você tiver o settings.json aberto no Visual Studio Code, pode clicar nos valores hexadecimais que têm um controle deslizante gráfico que mostra as cores reais, conforme visto abaixo.

Temas do terminal (referidos como esquemas no Windows Terminal) não são incomuns no mundo dos programas de terminal. Embora não haja uma única maneira de criar um tema (esquema) que funcione em diferentes aplicativos de terminal, você pode encontrar muitas ferramentas por aí para criá-los, não importa qual aplicativo você use. Você pode encontrar um pronto facilmente ou criar o seu próprio!

Atalhos de Teclado
Atalhos de teclado são como o Windows Terminal atribui teclas de atalho para ações como novos painéis, abas ou até mesmo ações básicas como copiar e colar. Existem muitas ações que podem receber teclas de atalho personalizadas, tornando fácil personalizar o terminal de qualquer maneira que seja confortável para você.
Você pode ver no trecho de código a seguir alguns atalhos de teclado padrão.
Neste ponto, o seu terminal pode começar a se comportar da maneira que você deseja, mas ainda não terminou. Agora é hora de aprender como continuar personalizando a aparência e sensação do terminal.
Configurações Visuais
Quando você passa a maior parte da sua vida profissional olhando para textos em uma tela, vale a pena tomar algumas medidas extras para tornar esse texto mais fácil de ler. Seja alterando as fontes, tamanhos ou cores, dedicar um pouco de tempo à aparência do seu novo Terminal do Windows trará grandes benefícios depois de passar o dia inteiro trabalhando nele.
Aprimoramentos de texto
Uma das características mais divulgadas do Terminal do Windows é o suporte a cores de 24 bits e renderização de texto acelerada. Isso pode não parecer impressionante por si só, até que você compare com a forma como o powershell.exe ou cmd.exe renderiza texto e cor. Usando a biblioteca rica do Python para demonstrar, fica bastante claro quão grandes são as diferenças na capacidade de renderização entre os consoles antigos e o Terminal do Windows.

Abrindo a biblioteca rica do Python no Terminal do Windows e no powershell.exe
O Terminal do Windows também tem suporte para caracteres Unicode, o que significa que ele pode ser usado com outros alfabetos e símbolos, incluindo caracteres cirílicos, kanji e qualquer outro caractere que será renderizado sem problemas. Isso se deve à fonte Cascadia Code, que será abordada mais adiante.

Escrevendo em japonês kanji no Terminal do Windows e no powershell.exe
Isso traz benefícios óbvios de internacionalização, mas o suporte a Unicode e UTF-8 também significa que o Terminal do Windows pode suportar…
Emoji ?
Emoji pode não parecer uma coisa útil para incluir em uma ferramenta de linha de comando, mas eles estão se tornando cada vez mais comuns no desenvolvimento. Engenheiros de software os estão usando para rotular commits e problemas, responder rapidamente a mensagens com aplicativos como Slack ou Microsoft Teams, e até mesmo existe uma linguagem de programação de emoji. Embora alguns desses sejam definitivamente mais úteis do que outros, está claro que os emoji não vão a lugar algum.
Abaixo está um exemplo de renderização de emojis no console powershell.exe e o mesmo no Windows Terminal usando a biblioteca rich do python. Observe a linha O Terminal é bonito
e veja a diferença.

Exibindo emoji com a biblioteca de texto rico do python
Fontes Cascadia
Como mencionado anteriormente, a fonte Cascadia Code é o que permite exibir alguns dos caracteres. Mas a fonte também tem algumas outras mudanças sutis que a tornam mais fácil de olhar por horas a fio, como ligaduras.
FYI: A mesma equipe que projetou o Windows Terminal criou a fonte Cascadia Code especificamente para uso no Windows Terminal.
Além dos caracteres especiais, a fonte Cascadia Code também suporta ligaduras. Ligaduras são símbolos que são renderizados de forma um pouco diferente quando exibidos na tela. Você pode ver uma lista daquelas suportadas pela Cascadia Code aqui.

A printout of all the ligatures supported by Cascadia Code. Code here.
Se você preferir não usar ligaduras, mas ainda quiser os outros benefícios da Cascadia Code, o Windows Terminal também vem com uma fonte chamada Cascadia Mono que faz exatamente isso. Cada uma delas também possui uma variante para powerline, (Cascadia Code PL
e Cascadia Mono PL
), que será abordada a seguir.
Powerline
Oowerline é originalmente um plugin do vim que adicionava informações ao shell e está presente no mundo Linux há muito tempo. A ideia era fornecer mais informações no prompt, tornando mais informações disponíveis ao alcance dos dedos ao trabalhar no console.
O Powerline foi portado, clonado e replicado em todos os shells modernos, incluindo o PowerShell, mas devido às limitações dos consoles anteriores, estava faltando algo. O terminal resolve esse problema incluindo símbolos específicos chamados glifos. Glifos são usados no powerline para fornecer ao prompt muito mais informações de relance.
Powerline no PowerShell
Para o PowerShell, você pode configurar um prompt semelhante ao powerline instalando o oh-my-posh usando o código de exemplo abaixo.
Depois de instalado, o seu prompt do PowerShell terá mais informações, incluindo o nome do branch git e os commits entre repositórios remotos e locais. Você pode ver um exemplo abaixo.

Este é o tema Paradox do oh-my-posh com algumas personalizações para exibir o sistema operacional atual e a versão do PowerShell.
Powerline no Bash
Para o Bash, você precisará instalar um shell como zsh ou fishshell. Eles adicionam algumas funcionalidades e destaque personalizado ao terminal, mas podem ser um pouco difíceis de usar sozinhos. É recomendável que você também instale um framework para zsh como o ohmyzsh, que facilitará muito o uso. O ohmyzsh vem com temas e personalização de prompt de bash semelhantes ao oh-my-posh para o prompt do PowerShell.
Depois de instalado, você pode alterar o tema modificando a propriedade ZSH_THEME no arquivo ~/.zshrc. Altere isso usando um editor como o vim ou nano e salve o arquivo. Depois disso, execute source ~/.zshrc
e suas alterações serão aplicadas.

Alterando do tema agnoster para o tema robbyrussell no zsh.
Imagens de Fundo
Uma das características mais comentadas do Windows Terminal em seu lançamento foi a capacidade de usar imagens em cada perfil. Até agora, você provavelmente notou que os fundos eram todos de uma única cor definida no arquivo settings.json com a tag background
.
Algumas pessoas acham que imagens são distrações ao programar, então, se você é uma delas, aqui está um exemplo de como usar um fundo de cor única em settings.json.
Com uma cor única definida, essa cor se tornará o fundo para esse perfil. Se nenhuma tag de fundo estiver definida em seu perfil, o Windows Terminal usará o padrão do seu esquema.

O perfil de exemplo acima mostrará essa cor como fundo.
Para usar uma imagem de fundo, você precisará ter a imagem em seu sistema de arquivos local. No momento da escrita, o Terminal não suporta imagens de fundo de uma URL. Em settings.json, vá para o perfil ao qual deseja atribuir a imagem de fundo. A partir daqui, adicione a tag backgroundImage
e dê a ela o valor do caminho para a imagem. Abaixo está um exemplo que define o fundo do perfil como uma imagem de um gato.

Se decidir personalizar seu próprio fundo, saiba que o terminal não leva em consideração suas cores em relação ao seu fundo. O terminal irá usar as cores padrão do esquema do seu perfil atual. Se não tomar cuidado, pode acabar colocando uma cor de fonte clara em um fundo claro, o que tornaria a leitura muito difícil. Nem todos os fundos são bons para terminais.
O gato do terminal está no seu terminal, ocupando seu fundo.
Desde que settings.json ainda seja um arquivo JSON válido e ainda siga o esquema do terminal, você verá a atualização do fundo imediatamente, sem a necessidade de atualizar manualmente ou fechar e reabrir o terminal. Você pode ver um ótimo exemplo disso na atualização em tempo real abaixo.

O Terminal do Windows será atualizado assim que você fizer alterações em settings.json e salvar.
Posicionamento de Imagens
Você pode pensar que as imagens são muito distrativas em uma janela de terminal, e podem ser. No entanto, elas também podem ser uma referência rápida se você precisar alternar entre guias e perfis com frequência. Abaixo está um exemplo de uso de uma imagem de fundo para destacar o shell em uso.
Para definir uma imagem de fundo, como mostrado acima, são necessários três parâmetros adicionais que começam com backgroundImage
para ajudar a controlar o tamanho, localização e opacidade da imagem na tela. Lembre-se sempre de verificar a documentação para ver quais opções estão disponíveis. Abaixo está um exemplo do perfil mostrado acima.

O Windows Terminal também suporta gifs animados, então se você não achar isso muito distrativo, também pode se divertir com seus perfis.

Comandos Avançados do Windows Terminal
Agora que o seu terminal está configurado e personalizado ao seu gosto, é hora de explorar algumas das capacidades mais avançadas do Windows Terminal.
Dividir Painéis com Kernels Diferentes
O Windows Terminal suporta vários painéis. Isso significa que você pode executar sessões paralelas na mesma janela do terminal. Esse comportamento não é novo. Outras aplicações de console têm suporte para painéis há anos. O Windows Terminal é diferente porque, como suporta perfis (em settings.json), você pode ter cada sessão aberta em seu próprio painel. Mesmo que cada sessão seja um sistema operacional completamente diferente, como ao usar WSL ou um perfil remoto (mais sobre perfis remotos em breve), você pode mostrar um painel para cada SO.
Para criar painéis divididos de diferentes perfis, em settings.json cada perfil deve ter sua própria ligação de tecla splitPane
. Ao especificar o parâmetro profile
com o nome ou o GUID do perfil do Windows Terminal, você pode ter cada um aberto lado a lado.
A propriedade split
pode ser definida como horizontal
, vertical
ou auto
, que escolherá a orientação que fornece mais espaço com base no painel atualmente selecionado. Você pode ver abaixo um exemplo de definição de ligações de teclas para quatro painéis.

Personalizando como o Windows Terminal é aberto
Se você não gosta de atalhos de teclado, ou deseja uma maneira rápida de abrir o terminal com o CLI, então está com sorte. O Windows Terminal inclui um executável de linha de comando chamado wt
que permite automatizar a abertura dele na configuração que desejar.
Abaixo você pode ver um exemplo de passagem de vários argumentos ao abrir o terminal, o que muda o comportamento.

Perfis remotos
Na maioria das vezes, seus perfis estarão executando shells locais. No entanto, o Windows Terminal também pode exibir sessões remotas através de um conceito chamado perfis remotos também!
Se deres uma olhada nos outros perfis de exemplo para o Windows Terminal, podes notar que alguns deles nem sequer usam aplicações .exe. O Windows Terminal é flexível o suficiente para que até mesmo possas usar o comando ssh
ou o comando Enter-PsSession
do PowerShell para criar perfis que mapeiem servidores remotos ou outros shells. Até mesmo podes usar o terraform console
para iniciar uma sessão do Terraform! Podes ver um exemplo disso no perfil abaixo.
Ao usar o parâmetro commandline
na seção de perfil do settings.json, podes abrir quase qualquer coisa como seu próprio Perfil do Windows Terminal que não precisa de fazer login interativamente.

Abrindo o REPL do Python e uma conexão SSH para uma instância AWS EC2 com perfis do Windows Terminal
Resumo
Neste ponto, deves não só estar familiarizado com o Windows Terminal, mas também ter configurado as tuas definições personalizadas e ter uma configuração bastante confortável. Deves ser capaz de personalizar perfis e associações de teclas para controlar a aparência e o funcionamento do terminal, bem como saber como modificar as fontes, glifos e caracteres que podes usar no terminal.
Ferramentas de linha de comando não vão a lado nenhum. Desenvolvedores e engenheiros precisam continuar a usá-las. O novo Windows Terminal não vai impedir que o desenvolvimento de software seja um trabalho onde se olha para texto pequeno numa tela, mas pode torná-lo muito mais fácil de continuar a fazê-lo!
Source:
https://adamtheautomator.com/install-windows-terminal/