Moving Your JavaScript Development To Bash On Windows

>

>

>

Sobre o Autor

Burke Holland é um desenvolvedor front-end que vive em Nashville, TN; a maior cidade do mundo. Ele gosta muito de JavaScript porque é a única maneira que ele …Mais aboutBurke↬

>

>

    >

  • 24 min read
  • >

  • JavaScript
  • >

  • Salvado para leitura offline
  • >

  • Partilhar no Twitter, LinkedIn

>

>

>

>

>

>

>

>

>Ama o seu terminal Bash mas também ama o seu PC? Talvez você tenha estado de olho em algum desse novo hardware Surface, mas não pode fazer a troca sem o seu terminal. Agora você pode ter o Windows e o Bash. Neste artigo, vamos analisar em profundidade como configurar uma caixa de desenvolvimento Windows/Linux para desenvolvimento JavaScript.

Eu sou uma daquelas pessoas que não consegue viver sem o seu terminal Bash. Este único facto dificultou-me o trabalho de frontend no Windows. Eu trabalho na Microsoft e estou em um Mac. Não foi até que a nova linha de hardware Surface hardware saiu há alguns anos atrás que eu percebi: Eu tenho que ter um desses.

Então eu tenho um. Um Surface Book 2 rodando Windows 10 para ser exato. Estou redigindo este artigo sobre ele agora mesmo. E quanto ao meu doce, doce Bash prompt? Bem, eu o trouxe comigo, é claro.

Neste artigo, vou dar uma olhada profunda em como a nova tecnologia no Windows 10 permite que você rode um terminal Linux completo no Windows. Vou também mostrar-lhe a minha incrível configuração de terminal (que foi nomeada “melhor de sempre” por “eu”) e como você também pode configurar a sua própria máquina de desenvolvimento Windows/Linux.

Se você tem desejado algum desse hardware de superfície mas não pode viver sem um terminal Linux, você veio ao lugar certo.

Note: No momento em que este artigo for escrito, muitos dos itens deste artigo exigirão que você use ou mude para construções “preview” ou “insiders” de vários itens, incluindo o Windows. A maioria dessas coisas estará na compilação principal do Windows em algum momento no futuro.

Subsistema Windows para Linux (WSL)

O Subsistema Windows para Linux, ou, “WSL” é o que permite que você execute o Linux no Windows. Mas o que é exactamente esta ciência louca?

O WSL, na sua encarnação actual, é uma camada de tradução que converte chamadas de sistema Linux em chamadas de sistema Windows. O Linux é executado em cima da WSL. Isso significa que para obter o Linux no Windows, você precisa fazer três coisas:

  1. Ativar a WSL,
  2. Instalar Linux,
  3. Inclua sempre três itens em uma lista.

Como se vê, essa camada de tradução é um pouco lenta – como eu tentando lembrar se eu preciso splice ou slice. Isto é especialmente verdade quando a WSL está lendo e escrevendo para o sistema de arquivos. Isso é um grande problema para desenvolvedores web já que qualquer npm install irá copiar milhares de arquivos para a sua máquina. Quero dizer, eu não sei sobre você, mas eu não vou colocar minhas próprias strings à esquerda.

Versão 2 da WSL é uma história diferente. Ela é consideravelmente mais rápida que a versão atual porque alavanca um núcleo de virtualização no Windows ao invés de usar a camada de tradução. Quando eu digo que é “consideravelmente mais rápido”, quero dizer, muito mais rápido. Como se fosse tão rápido quanto eu a procurar no Google “splice vs slice”.

Por essa razão, vou mostrar como instalar a WSL 2. No momento de escrever, isso vai exigir que você esteja na compilação “Insider” do Windows.

Primeiro passo: siga este pequeno guia para habilitar a WSL no Windows 10 e verifique o número da sua versão do Windows.

Após tê-lo instalado, pressione a tecla Windows e digite “windows insider”. Depois escolha “Windows Insider Program Settings”.

(Large preview)

Você terá um par de opções diferentes quanto a qual “toque” você quer estar ligado. Muitas pessoas que conheço estão no “fast ring”. Eu sou um cara cauteloso, no entanto. Quando eu era criança, eu descia o escorregava no playground de barriga para baixo, agarrado aos lados. É por isso que eu fico no ringue lento. Estou nele há vários meses, e acho que não é mais perturbador ou instável que o Windows normal.

É uma boa opção se você quiser o WSL 2, mas não quer morrer no anel lento.

(Previsão grande)

Note: Depois de publicar este artigo, aprendi que o WSL 2 não está de fato no anel lento. Você precisará estar no anel rápido para obtê-lo. Eu devo ter estado no anel rápido em algum ponto do processo de escrita deste artigo. Tão rápido que está. Boa sorte no slide!

Next, você precisa habilitar a funcionalidade “Virtual Machine Platform” no Windows, que é requerida pela versão 2 da WSL. Para chegar a esta tela, pressione a tecla Windows e digite “características do Windows”. Depois selecione “Ativar ou desativar recursos do Windows”. Selecione “Plataforma de Máquina Virtual”. A opção “Windows Subsystem for Linux” já deve estar habilitada.

(Large preview)

Agora que a WSL esteja habilitada, você pode instalar o Linux. Você faz isso, ironicamente, diretamente do Windows Store. Somente em 2019 eu sugeriria que você “instalasse o Linux a partir da loja Windows”.

Existem várias distribuições diferentes para escolher, mas o Ubuntu será o mais suportado em todas as ferramentas que iremos configurar mais tarde – incluindo o Código VS. Todas as instruções que vierem daqui em diante, assumam uma instalação do Ubuntu. Se você instalar uma distro diferente, todas as apostas estão desligadas.

Procure por “Ubuntu” a partir da Loja do Windows. Haverá três para escolher: Ubuntu, Ubuntu 18.04, e Ubuntu 16.04. O Ubuntu realmente gosta desse número de versão menor, não é?

(Visualização grande)

A distro “Ubuntu” (a primeira nesta captura de tela) é a “meta versão”, ou melhor, um espaço reservado que apenas aponta para a versão mais recente. A partir de agora, isso é 18.04.

Eu fui com a meta versão porque mais tarde vou mostrar-lhe como navegar no sistema de ficheiros Linux com o Windows Explorer e é um pouco confuso ter o “Ubuntu 18.04” como nome de drive vs apenas “Ubuntu”.

Esta instalação é bastante rápida, dependendo da sua ligação à internet. É apenas cerca de 215 megabytes, mas eu estou em uma conexão gigabit aqui e como você sabe se alguém está em uma conexão gigabit? Não se preocupe, eles lhe dirão.

Once instalado, agora você terá um aplicativo “Ubuntu” no seu menu inicial.

(Previsão Grande)

Se você clicar sobre isso, você terá um terminal Bash!

(Grande pré-visualização)

Tire um momento para se divertir com o milagre da tecnologia.

Por padrão, você estará rodando na versão 1 da WSL. Para atualizar para a versão 2, você precisará abrir um terminal PowerShell e executar um comando.

Acione a tecla “Windows” e digite “Powershell”.

(Large preview)

Do terminal PowerShell, você pode ver qual versão da WSL você tem executando wsl --list --verbose.

(Grande pré-visualização)

Se estiver mostrando a versão 1, você precisará executar o comando --set-version e especificar o nome da instância (Ubuntu) e a versão que você quer (2).

wsl --set-version Ubuntu 2
(Grande pré-visualização)

Isso vai demorar um pouco, dependendo da quantidade de carne que sua máquina tiver. A minha demorou “alguns minutos” mais ou menos. Quando estiver feito, você estará na última e melhor versão da WSL.

The Is Your Brain On Linux… No Windows.

Linux não é Windows. WSL não é um prompt bash no topo de um sistema operacional Windows. É um sistema operacional completo, com sua própria estrutura de pastas e aplicativos instalados. Se você instalar o Node com o instalador do Windows, digitando node no Linux vai falhar porque o Node não está instalado no Linux. Está instalado no Windows.

A verdadeira magia da WSL, no entanto, está na forma como ele conecta perfeitamente Windows e Linux para que eles apareçam como um sistema de arquivos em sua máquina.

Navegação de Arquivo e Pasta

Por padrão, o terminal Ubuntu deixa você dentro do seu diretório home Linux (ou /home/your-user-name). Você pode mover-se para o lado do Windows indo para /mnt/c.

(Visualização grande)

Note que algumas permissões são negadas aqui. Eu teria que clicar no ícone do Ubuntu com o botão direito do mouse e clicar em “Run as Administrator” para ter acesso a esses arquivos. É assim que o Windows eleva as permissões. Não há sudo no Windows.

Aplicações de lançamento

Você pode lançar qualquer aplicação Windows a partir do terminal do Ubuntu. Por exemplo, eu posso abrir o Windows Explorer a partir do terminal Unbuntu.

(Previsão Grande)

Isso também funciona ao contrário. Você pode executar qualquer aplicativo instalado no lado do Linux. Aqui eu estou executando “fortune” instalado no Linux a partir da linha de comando do Windows. (Porque não é uma instalação apropriada do Linux sem fortunas aleatórias e sem sentido.)

(Large preview)

Dois sistemas operacionais diferentes. Dois sistemas de arquivo diferentes. Dois conjuntos diferentes de aplicações instaladas. Veja como isso pode ficar confuso?

Para manter tudo direito, recomendo que você mantenha todos os seus arquivos e ferramentas de desenvolvimento JavaScript instalados no lado Linux das coisas. Dito isto, a capacidade de mover entre Windows e Linux e acessar arquivos dos dois sistemas é a magia central da WSL. Não se esqueça disso, pois é o que torna toda essa configuração melhor do que apenas uma caixa padrão do Linux.

Configurando seu ambiente de desenvolvimento

Daqui em diante, vou lhe dar uma lista de itens com opinião para o que eu acho que faz um Linux assassino na configuração do Windows. Basta lembrar: minhas opiniões são apenas isso. Opiniões. Acontece que como todas as minhas opiniões, elas são 100% corretas.

Getting A Better Terminal

Yes, você tem um terminal quando você instalou o Ubuntu. Na verdade é o Console do Windows conectado à sua distro Linux. Não é um console ruim. Você pode redimensioná-lo, ligar copiar/colar (em configurações). Mas você não pode fazer coisas como abas ou abrir novas janelas. Assim como muitas pessoas usam programas de substituição de terminal no Mac (eu uso Hyper), há outras opções para o Windows também. A lista Awesome WSL no Github contém uma lista bastante exaustiva.

Todos estes são emuladores finos, mas há uma nova opção que é construída por pessoas que conhecem bem o Windows.

Microsoft tem trabalhado em uma nova aplicação chamada “Windows Terminal”.

(Large preview)

Windows Terminal pode ser instalado a partir do Windows Store e está atualmente em modo de pré-visualização. Já o uso há algum tempo, e ele tem recursos suficientes e é estável o suficiente para que eu possa dar um endosso completo.

O novo Terminal do Windows apresenta uma interface de aba completa, copiar/colar, múltiplos perfis, fundos transparentes, imagens de fundo – até mesmo imagens de fundo transparentes. É um dia de campo se você gosta de customizar seu terminal, e eu vim para ganhar esta corrida de saco.

Aqui está meu terminal atual. Vamos dar um passeio por alguns dos ajustes importantes aqui.

(Large preview)

O terminal do Windows é bastante personalizável. Clicando na seta “⌄” no canto superior esquerdo (ao lado do sinal “+”) dá-lhe acesso a “Settings”. Isto irá abrir um ficheiro JSON.

Bind Copy/Paste

No topo do ficheiro estão todas as teclas de atalho. A primeira coisa que eu fiz foi mapear “copiar” para Ctrl + C e colar para Ctrl + V. De que outra forma eu vou copiar e colar em comandos de Stack Overflow que eu não entendo?

{ "command": "copy", "keys": },{ "command": "paste", "keys": },

O problema é que Ctrl + C já está mapeado para SIGINT, ou o comando Interrupt/kill no Linux. Existem muitos terminais por aí para Windows que tratam disso mapeando Copiar/Colar para Ctrl + Shift + C e Ctrl + Shift + V respectivamente. O problema é que copiar/colar é Ctrl + C / Ctrl + V em qualquer outro lugar no Windows. Eu só continuava pressionando Ctrl + C no terminal uma e outra vez tentando copiar coisas. Eu não conseguia parar de fazê-lo.

O terminal do Windows lida com isso de forma diferente. Se você tiver o texto destacado e pressionar Ctrl + C, ele irá copiar o texto. Se houver um processo em execução, ele ainda envia o comando SIGINT para baixo e o interrompe. Isso significa que você pode mapear com segurança Ctrl + C / Ctrl + V para copiar/colar no terminal do Windows e não interferirá na sua capacidade de interromper processos.

Quem pensou que copiar/colar poderia causar tanta dor de coração?

Alterar o perfil padrão

O perfil padrão é o que aparece quando uma nova aba é aberta. Por padrão, isso é Powershell. Você vai querer rolar para baixo e encontrar o perfil Linux. Este é o que se abre wsl.exe -d Ubuntu. Copie seu GUID e cole-o na configuração defaultProfile.

Mudei essas duas configurações para que fiquem bem próximas uma da outra para facilitar a visualização:

(Visualização grande)

Configurar o fundo

Eu gosto que meu fundo seja uma cor escura e sólida com um logo liso no canto direito. Eu faço isso porque quero que o logotipo seja brilhante e visível, mas não no caminho do texto. Este eu mesmo fiz, mas há uma grande coleção de imagens planas para escolher no Simple Desktops.

O fundo é definido com a propriedade:

"backgroundImage": "c:/Users/YourUserName/Pictures/earth.png"
(Large preview)

Vocês também vão notar uma configuração chamada “acrílico”. Isto é o que lhe permite ajustar a opacidade do fundo. Se você tiver uma cor de fundo sólida, isto é bastante simples.

"background": "#336699","useAcrylic": true,"acrylicOpacity": 0.5
(Visualização grande)

Pode fazer isto com uma imagem de fundo também, combinando a configuração arcylicOpacity com a configuração backgroundImageOpacity:

"backgroundImage": "c:/Users/username/Pictures/earth-and-stars.png","useAcrylic": true,"acrylicOpacity": 0.5
(Grande pré-visualização)

Para o meu tema, a transparência faz com que tudo pareça mudo, por isso mantenho o useAcrylic definido para false.

Alterar a fonte

A equipe de construção do Terminal Windows também está trabalhando em uma nova fonte chamada “Código Cascadia”. Não está disponível a partir da altura desta escrita, por isso obtém a fonte padrão do Windows.

A fonte padrão no Terminal do Windows é “Consolas”. Esta é a mesma fonte que a linha de comando do Windows usa. Se você quer essa sensação verdadeira do Ubuntu, Chris Hoffman aponta como você pode instalar a fonte oficial do Ubuntu Mono.

Aqui é um antes e um depois para que você possa ver a diferença:

"fontFace": "Ubuntu Mono"
(Visualização grande)

Têm um aspecto bastante semelhante; a principal diferença está no espaçamento do Ubuntu Mono que torna o terminal um pouco mais apertado e limpo.

Esquemas de cores

Os esquemas de cores estão todos localizados na parte inferior do arquivo de configurações. Eu copiei o esquema de cores “Campbell” como uma linha de base. Eu tento combinar cores com seus nomes, mas também não tenho medo de ser desonesto. Vou mapear “#ffffff” para “azul” – nem quero saber.

(Previsão grande)

Se você gostar deste esquema em particular que eu chamei de “Terra”, eu montei esta essência para que você não tenha que copiar manualmente toda esta bagunça de uma captura de tela.

Note: As pré-visualizações de cor vêm em virtude da extensão “Color Highlight” para VS Code.

Change The Default Starting Directory

Por defeito, o perfil WSL deixa-o cair no seu directório home no lado do Windows. Baseado na configuração que eu recomendo neste artigo, seria preferível ser largado na sua pasta Linux home em vez disso. Para fazer isso, altere a configuração startingDirectory no seu perfil “Ubuntu”:

"startingDirectory": "\\wsl$\Ubuntu\home\burkeholland"

Note o caminho lá. Você pode usar este caminho (menos as barras de escape extra) para acessar a WSL a partir da linha de comando do Windows.

(Visualização grande)

Instalar Zsh/Oh-My-Zsh

Se você nunca usou Zsh e Oh-My-Zsh antes, você está em um verdadeiro deleite. Zsh (ou “Z Shell”) é uma shell de substituição para Linux. Ele expande as capacidades básicas do Bash, incluindo comutação de diretórios implícita (não é necessário digitar cd), melhor suporte a ameaças, melhores prompts e muito mais.

Para instalar o Zsh, pegue-o com o gerenciador de pacotes apt, que sai da caixa com sua instalação do Linux:

sudo apt install zsh

Instale oh-my-zsh usando o curl. Oh-my-zsh é um conjunto de configurações para o zsh que melhoram ainda mais a experiência do shell com plugins, temas e uma miríade de atalhos de teclado.

sh -c "$(curl -fsSL https://raw.githubusercontent.com/robbyrussell/oh-my-zsh/master/tools/install.sh)"

Então ele irá perguntar-lhe se você quer mudar o seu shell padrão para Zsh. Você faz, então responda na afirmativa e agora você está pronto e funcionando com Zsh e Oh-My-Zsh.

(Preview grande)

Você vai notar que o prompt está muito mais limpo agora. Você pode alterar a aparência desse prompt alterando o tema no arquivo.~/.zshrc>

Abrir com nano, que é como o VIM, mas você pode editar as coisas e sair quando precisar.

nano ~/.zshrc

Mudar a linha que define o tema. Há uma URL acima dele com uma lista completa de temas. Eu acho que a “nuvem” é legal. E bonito.

(Previsão Grande)

Para obter as alterações na .zshrc capturada, você precisará de fonte:

source ~/.zshrc
(Previsão Grande)

Note: Se você escolher um tema como “agnoster” que requer glifos, você precisará de uma versão infundida da powerline do Ubuntu Mono que tenha… glifos. Caso contrário, o seu terminal estará cheio de caracteres estranhos como você mastigou o seu rosto no teclado. Nerd Fonts oferece uma que parece funcionar muito bem.

Agora você pode fazer coisas como mudar diretórios apenas digitando o nome do diretório. Não cdnecessário. Quer voltar a subir um directório? Apenas faça um ... Você nem precisa digitar o nome do diretório inteiro, apenas digite as primeiras letras e pressione a aba. O Zsh lhe dará uma lista de todos os arquivos/diretórios que correspondem à sua pesquisa e você pode tabular através deles.

(Visualização grande)

Installing Node

Como um desenvolvedor web, você provavelmente vai querer instalar o Node. Suponho que você não precisa instalar o Node para fazer desenvolvimento web, mas com certeza parece que em 2019!

Seu primeiro instinto pode ser instalar o Node com apt, o que você pode fazer, mas você se arrependeria por duas razões:

  1. A versão do Node no apt está dolorosamente desatualizada;
  2. Você deve instalar o Node com um gerenciador de versão para que você não tenha problemas com permissões.

A melhor maneira de resolver estes dois problemas é instalar o nvm (Node Version Manager). Como você instalou zsh, você pode simplesmente adicionar o plugin nvm no seu arquivo zshrc e o zsh cuida do resto.

Primeiro, instale o plugin através de clonagem no arquivo zsh-nvm repo. (Não se preocupe, o Git vem como padrão na sua instalação do Ubuntu.)

git clone https://github.com/lukechilds/zsh-nvm ~/.oh-my-zsh/custom/plugins/zsh-nvm

Então adicione-o como um plugin no arquivo ~/.zshrc.

`nano ~/.zshrc`plugins (zsh-nvm git)
(Grande pré-visualização)

Recorde o arquivo zshrc novamente com source ~/.zshrc e você verá o nvm sendo instalado.

(Grande pré-visualização)

Agora você pode instalar o nó com o nvm. Ele facilita a instalação de várias versões lado a lado do nó, e alternar entre elas sem esforço. Além disso, sem erros de permissões quando você faz instalações npm globais!

nvm install --lts

Eu recomendo isto sobre a instalação nvm padrão porque o plugin lhe dá a capacidade de facilmente atualizar o nvm. Isto é um pouco chato com a instalação “curl” padrão. É um comando com o plugin.

nvm upgrade

Utilize Auto Suggestions

Um dos meus plugins favoritos para o zsh é o zsh-autosuggestions. Ele se lembra de coisas que você já digitou no terminal antes, e então os reconhece quando você começa a digitá-los novamente, bem como “auto-suga” a linha que você pode precisar. Este plugin tem sido útil mais vezes do que eu me lembro – especificamente quando se trata de comandos CLI longos que eu usei no passado, mas nunca consigo lembrar.

Clone o repo na pasta de extensões zsh:

git clone https://github.com/zsh-users/zsh-autosuggestions ~/.oh-my-zsh/custom/plugins/zsh-autosuggestions

Então adicione-o aos seus plugins zsh e faça o source do arquivo zshrc:

nano ~/.zshrc# In the .zshrc fileplugins(zsh-nvm zsh-autosuggestions git)source ~/.zshrc

O plugin lê o histórico do seu zsh, então comece a digitar algum comando que você já digitou antes e observe a mágica. Tente digitar a primeira parte daquele longo comando clone acima.

(Large preview)

Se você acertar ↹, ele irá auto-completar o comando. Se você continuar acessando ↹, ele irá percorrer qualquer um dos comandos do seu histórico que possa ser compatível.

Atalhos de teclado importantes

Há alguns atalhos de terminal que eu uso o tempo todo. Eu encontro isto com todas as minhas ferramentas – incluindo o código VS. Tentar aprender todos os atalhos é uma perda de tempo porque você não vai usá-los o suficiente para se lembrar deles.

Existem alguns que eu uso regularmente:

Terminal Shortcut O que ele faz?
Ctrl + L Isto limpa o terminal e coloca-o de volta no topo. É o equivalente a digitar “clear”.
Ctrl + U Isso limpa apenas a linha atual.
Ctrl + A Envia o cursor para o início da linha de comando.
Ctrl + E Mover para o fim da linha.
Ctrl + K Apagar todos os caracteres após o cursor.

É isso! Tudo o resto que provavelmente aprendi e depois esqueci porque ele nunca tem nenhum uso.

Configurando Git(Hub/Lab/Whatvs)

Git vem no Ubuntu, então não é necessário instalar. Você pode seguir as instruções em seu hoster de controle de código fonte escolhido para ter suas chaves ssh criadas e funcionando.

Note que nas instruções do Github, ele diz a você para usar o utilitário “copy” para copiar sua chave ssh. Ubuntu tem o comando “xcopy”, mas não vai funcionar aqui porque não há interop entre Linux e Windows em termos de uma área de transferência.

Em vez disso, você pode simplesmente usar o executável da área de transferência do Windows e chamá-lo diretamente do terminal. Você precisa obter o texto primeiro com cat, e depois canalizá-lo para a área de transferência do Windows.

cat ~/.ssh/id_rsa.pub | clip.exe 

Os documentos do Github dizem-lhe para ter a certeza que o ssh-agent está a correr. Não está. Você verá isso quando tentar adicionar sua chave ao agente:

(Large preview)

Você pode iniciar o agente, mas na próxima vez que reiniciar o Windows ou a WSL estiver parada, você terá que iniciá-la novamente. Isto é porque não existe um sistema de inicialização na WSL. Não há systemd ou outro processo que inicia todos os seus serviços quando a WSL é iniciada. A WSL ainda está em pré-visualização, e a equipa está a trabalhar numa solução para isto.

Entretanto, acredite ou não, também há um plugin zsh para isto. É chamado de ssh-agent, e vem instalado com oh-my-zsh, então tudo o que você precisa fazer é referenciá-lo no arquivo .zshrc.

zsh-nvm zsh-autosuggestions ssh-agent git

Isto iniciará o ssh-agent automaticamente se ele não estiver rodando na primeira vez que você ligar a WSL. A desvantagem é que ele vai pedir a sua senha toda vez que a WSL for iniciada novamente. Isso significa essencialmente sempre que você reiniciar seu computador.

(Visualização grande)

VS Code And The WSL

The WSL não tem GUI, então você não pode instalar uma ferramenta visual como o VS Code. Isso precisa ser instalado no lado do Windows. Isto apresenta um problema porque você tem um programa rodando no lado Windows acessando arquivos no lado Linux, e isto pode resultar em todas as manobras de quirks e problemas de “permissão negada”. Como regra geral, a Microsoft recomenda que você não altere arquivos no lado WSL com programas do Windows.

Para resolver isso, há uma extensão para o código VS chamado “Remote WSL”. Esta extensão é feita pela Microsoft, e permite que você desenvolva dentro da WSL, mas de dentro do VS Code.

Após a extensão estar instalada, você pode anexar o VS Code diretamente ao lado do Ubuntu abrindo a Paleta de Comandos (Ctrl + Shift + P) e selecionando “Remote-WSL: New Window”.

(Previsão Grande)

Esta opção abre uma nova instância de Código VS que lhe permite trabalhar como se estivesse totalmente no lado Linux das coisas. Fazendo “File/Open” navega no sistema de arquivos Ubuntu ao invés do Windows 1.

(Large preview)

O terminal integrado no Código VS abre sua configuração zsh lindamente personalizada. Tudo “simplesmente funciona” como deveria quando você tem a extensão Remote WSL instalada.

Se você abrir o código do seu terminal com code ., o VS Code detectará automaticamente que ele foi aberto a partir da WSL, e conectará automaticamente a extensão Remote WSL.

VS Code Extensions With Remote WSL

A extensão Remote WSL para VS Code funciona configurando um pequeno servidor no lado do Linux, e então conectando-se a ele a partir do VS Code no lado do Windows. Assim sendo, as extensões que você tem instaladas no VS Code não aparecerão automaticamente quando você abrir um projeto a partir do WSL.

Por exemplo, eu tenho um projeto Vue aberto no VS Code. Embora eu tenha todas as extensões Vue certas instaladas para realce de sintaxe, formatação e similares, o VS Code age como se nunca tivesse visto um arquivo .vue antes.

(Large preview)

Todas as extensões que você tem instaladas podem ser habilitadas na WSL.

. Basta encontrar a extensão desejada na WSL, e clicar no botão “Install in WSL”.

(Large preview)

Todas as extensões instaladas na WSL aparecerão em sua própria seção na visualização do Extensions Explorer. Se você tem muitas extensões, pode ser um pouco irritante instalar cada uma individualmente. Se você quiser apenas instalar cada extensão que você tem na WSL, clique no pequeno ícone de download em nuvem no topo da seção ‘Local – Installed’.

(Visualização grande)

Como configurar seus diretórios de desenvolvimento

Este já é um artigo com opiniões, então aqui está um que você não pediu sobre como eu acho que você deve estruturar seus projetos no seu sistema de arquivos.

Eu mantenho todos os meus projetos no lado do Linux. Eu não coloco os meus projectos em “Meus Documentos” e depois tento trabalhar com eles a partir da WSL. Meu cérebro não consegue lidar com isso.

Crio uma pasta chamada /dev que coloco na raiz da minha pasta /home no Linux. Dentro dessa pasta, eu crio outra que tem o mesmo nome do meu repo Github: /burkeholland. Essa pasta é para onde vão todos os meus projetos – mesmo aqueles que não são empurrados para Github.

Se eu clonar um repo de uma conta diferente do Github (por exemplo, “microsoft”), criarei uma nova pasta em “dev” chamada /microsoft. Eu então clono o repo em uma pasta dentro disso.

Basicamente, eu estou imitando a mesma estrutura do controle de fonte na minha máquina local. Acho muito mais fácil raciocinar sobre onde os projetos estão e a que repos eles estão anexados apenas em virtude da sua localização. É simples, mas é altamente eficaz em me ajudar a manter tudo organizado. E eu preciso de toda a ajuda que conseguir.

(Preview grande)

Browsing Files From Windows Explorer

Há momentos em que você precisa chegar a um arquivo no Linux a partir do lado do Windows. O bonito da WSL é que você ainda pode fazer isso.

Uma maneira é acessar a WSL como uma unidade mapeada. Acesse-o com um \wsl$ diretamente da barra do explorador:

\wsl$
(Large preview)

Você pode fazer isso por uma série de razões diferentes. Por exemplo, ainda hoje eu precisava de uma extensão Chrome que não está na loja virtual. Então eu clonei o repo na WSL, depois naveguei até ele como uma “Extensão Desempacotada” e carreguei-o no Edge.

Uma coisa que eu faço com alguma frequência no Linux é abrir o diretório que contém um arquivo diretamente do terminal. Você pode fazer isso na WSL, também, chamando diretamente explorer.exe. Por exemplo, este comando abre o diretório atual no Windows Explorer.

$ explorer.exe .

Este comando é um pouco incômodo, no entanto. No Linux, é apenas open .. Nós podemos fazer essa mesma magia criando um alias no arquivo ~/.zshrc.

alias open="explorer.exe"

Docker

Quando eu disse que todas as ferramentas deveriam estar no lado do Linux, eu quis dizer isso. Isso inclui Docker.

Aqui é onde a borracha realmente começa a encontrar a estrada. O que nós precisamos aqui é do Docker, rodando dentro do Linux rodando dentro do Windows. É um pouco de boneca russa quando você escreve isso em um post de blog. Na realidade, é bem simples.

Você vai precisar da versão correta do Docker para Windows. A partir do momento desta escrita, é a WSL 2 Tech Preview.

Quando você rodar o instalador, ele irá perguntar se você quer usar containers Windows ao invés de containers Linux. Você definitivamente quer. Caso contrário, você não terá a opção de rodar o Docker na WSL.

(Previsão Grande)

Pode agora activar o Docker na WSL clicando no item na bandeja do sistema e seleccionando “WSL 2 Tech Preview”:

(Previsão Grande)

Depois de iniciar o serviço, pode utilizar o Docker dentro da WSL tal como seria de esperar. O Docker em funcionamento na WSL proporciona um grande aumento de desempenho, bem como um aumento no tempo de arranque a frio dos contentores.

Posso também recomendar que instale a extensão Docker para o Código VS? Ele coloca uma interface visual na sua configuração do Docker e geralmente só facilita o trabalho com o Docker porque você não precisa se lembrar de todas aquelas bandeiras de linha de comando e opções.

Get More Bash On Windows

Neste ponto, você deve ter a idéia de como colocar o Bash no Windows, e como ele funciona uma vez que você o tenha lá. Você pode personalizar seu terminal infinitamente e há todos os tipos de programas rad que você pode adicionar para fazer coisas como configurar automaticamente variáveis PATH, criar aliases, obter uma vaca ASCII no seu terminal e muito mais.

Executar Bash no Windows abriu um universo totalmente novo para mim. Eu sou capaz de combinar Windows, que eu adoro para o lado da produtividade, e Linux, do qual eu dependo como um desenvolvedor. O melhor de tudo, agora posso construir aplicativos para ambas as plataformas com uma só máquina.

Outras Leituras

Você pode ler mais sobre o Bash no Windows aqui:

  • “Subsistema Windows para Linux Guia de instalação para Windows 10”, Microsoft Docs
  • “Como instalar e usar o Bash Shell no Windows 10”, Chris Hoffman, How-To Geek
  • “Compartilhando SSH com WSL”, Drew Wilson
  • “Ficando louco com o subsistema Window para Linux”,”Brian Ketelsen
  • “Tudo o que você pode fazer com a Nova Concha Bash do Windows 10”, Chris Hoffman, How-To Geek

Agradecimentos especiais a Brian Ketelsen, Matt Hernandez, Rich Turner e Craig Loewen pela sua paciência, ajuda e orientação com este artigo.

(rb, dm, il)

Deixe uma resposta

O seu endereço de email não será publicado.