Déplacer votre développement JavaScript vers Bash sur Windows

A propos de l’auteur

Burke Holland est un développeur front-end vivant à Nashville, TN ; la plus grande ville du monde. Il aime beaucoup JavaScript parce que c’est la seule façon qu’il …En savoir plus surBurke↬

  • 24 min de lecture
  • JavaScript
  • Enregistré pour une lecture hors ligne
  • Partager sur Twitter, LinkedIn
Amoureux de votre terminal Bash mais aussi de votre PC ? Peut-être avez-vous eu un œil sur certains de ces nouveaux matériels Surface, mais vous ne pouvez pas faire le changement sans votre terminal. Maintenant, vous pouvez avoir Windows et Bash. Dans cet article, nous allons examiner en profondeur comment configurer une boîte de développement Windows/Linux pour le développement JavaScript.

Je fais partie de ces personnes qui ne peuvent pas vivre sans leur terminal Bash. Ce seul fait a rendu difficile pour moi de faire du travail frontal sur Windows. Je travaille chez Microsoft et je suis sur un Mac. Ce n’est que lorsque la nouvelle ligne de matériel Surface est sortie il y a quelques années que j’ai réalisé : Je dois en avoir un.

Alors j’en ai eu un. Un Surface Book 2 fonctionnant sous Windows 10 pour être exact. Je suis en train de rédiger cet article dessus en ce moment même. Et qu’en est-il de mon doux, doux Bash prompt ? Eh bien, je l’ai apporté avec moi, bien sûr.

Dans cet article, je vais examiner en profondeur comment la nouvelle technologie de Windows 10 vous permet d’exécuter un terminal Linux complet sur Windows. Je vous montrerai également mon incroyable configuration de terminal (qui a été nommée « meilleure de tous les temps » par « moi ») et comment vous pouvez vous aussi configurer votre propre machine de développement Windows/Linux.

Si vous avez eu envie d’un peu de ce matériel Surface mais que vous ne pouvez pas vivre sans un terminal Linux, vous êtes au bon endroit.

Note : Au moment de la rédaction de cet article, un grand nombre des éléments de cet article nécessiteront que vous utilisiez ou passiez à des constructions « preview » ou « insiders » de divers éléments, y compris Windows. La plupart de ces choses seront dans la construction principale de Windows à un moment donné dans le futur.

Windows Subsystem For Linux (WSL)

Le Windows Subsystem for Linux, ou, « WSL » est ce qui vous permet d’exécuter Linux sur Windows. Mais en quoi consiste exactement cette science folle ?

Le WSL, dans son incarnation actuelle, est une couche de traduction qui convertit les appels système Linux en appels système Windows. Linux fonctionne au-dessus de la WSL. Cela signifie que pour obtenir Linux sur Windows, vous devez faire trois choses:

  1. Activer la WSL,
  2. Installer Linux,
  3. Toujours inclure trois éléments dans une liste.

Comme il s’avère, cette couche de traduction est un peu du côté lent – un peu comme moi essayant de me rappeler si j’ai besoin de splice ou slice. C’est particulièrement vrai lorsque la WSL lit et écrit dans le système de fichiers. C’est un gros problème pour les développeurs web, car tout npm install correct copiera des milliers de fichiers sur votre machine. Je veux dire, je ne sais pas pour vous, mais je ne vais pas tamponner à gauche mes propres chaînes de caractères.

La version 2 de la WSL est une histoire différente. Elle est considérablement plus rapide que la version actuelle car elle exploite un noyau de virtualisation dans Windows au lieu d’utiliser la couche de traduction. Quand je dis que c’est « considérablement plus rapide », je veux dire beaucoup, beaucoup plus rapide. Comme aussi rapide que moi qui googlise « splice vs slice ».

Pour cette raison, je vais montrer comment installer la WSL 2. Au moment d’écrire ces lignes, cela va nécessiter que vous soyez sur la build « Insider » de Windows.

Première chose : suivez ce petit guide pour activer le WSL sur Windows 10 et vérifiez votre numéro de version Windows.

Une fois que vous l’avez installé, appuyez sur la touche Windows et tapez « windows insider ». Ensuite, choisissez « Windows Insider Program Settings ».

(Large preview)

Vous aurez plusieurs options différentes quant au « ring » sur lequel vous voulez être. Beaucoup de gens que je connais sont sur l’anneau rapide. Je suis un gars prudent, cependant. Quand j’étais enfant, je descendais le toboggan du terrain de jeu sur le ventre en m’accrochant aux côtés. C’est pourquoi je reste sur l’anneau lent. Je suis dessus depuis plusieurs mois maintenant, et je trouve que ce n’est pas plus perturbant ou instable que Windows ordinaire.

C’est une bonne option si vous voulez le WSL 2, mais que vous ne voulez pas mourir sur le toboggan.

(Large preview)

Note : Après avoir publié cet article, j’ai appris que le WSL 2 n’est en fait pas sur l’anneau lent. Il faut être sur l’anneau rapide pour l’obtenir. J’ai dû me trouver sur l’anneau rapide à un moment donné au cours de la rédaction de cet article. C’est donc l’anneau rapide. Bonne chance sur le toboggan!

Puis, vous devez activer la fonction « Plate-forme de machine virtuelle » dans Windows, qui est requise par la version 2 du WSL. Pour accéder à cet écran, appuyez sur la touche Windows et tapez « fonctionnalités de Windows ». Sélectionnez ensuite « Activer ou désactiver les fonctionnalités de Windows ». Sélectionnez « Virtual Machine Platform ». L’option « Windows Subsystem for Linux » devrait déjà être activée.

(Large preview)

Maintenant que le WSL est activé, vous pouvez installer Linux. Vous le faites, assez ironiquement, directement à partir du Windows Store. Ce n’est qu’en 2019 que je vous suggérerais d' »installer Linux à partir du magasin Windows ».

Il y a plusieurs distributions différentes à choisir, mais Ubuntu va être le plus supporté à travers tous les outils que nous allons configurer plus tard – y compris VS Code. Toutes les instructions qui viennent à partir d’ici avec supposer une installation Ubuntu. Si vous installez une distro différente, tous les paris sont ouverts.

Recherchez « Ubuntu » dans le Windows Store. Il y aura trois à choisir : Ubuntu, Ubuntu 18.04, et Ubuntu 16.04. Ubuntu aime vraiment ce numéro de version mineure 04, n’est-ce pas ?

(Large preview)

La distro « Ubuntu » (la première dans cette capture d’écran) est la « méta version », ou plutôt un placeholder qui pointe juste vers la dernière version. À l’heure actuelle, c’est 18.04.

J’ai opté pour la version méta parce que plus tard, je vous montrerai comment parcourir le système de fichiers Linux avec l’Explorateur Windows et c’est un peu désordonné d’avoir « Ubuntu 18.04 » comme nom de lecteur par rapport à juste « Ubuntu ».

Cette installation est assez rapide en fonction de votre connexion Internet. C’est seulement environ 215 mégaoctets, mais je suis sur une connexion gigabit ici et comment savez-vous si quelqu’un est sur une connexion gigabit ? Ne vous inquiétez pas, ils vous le diront.

Une fois installé, vous aurez maintenant une application « Ubuntu » dans votre menu démarrer.

(Grand aperçu)

Si vous cliquez dessus, vous aurez un terminal Bash !

(Large preview)

Prenez un moment pour vous prélasser devant le miracle de la technologie.

Par défaut, vous vous exécuterez dans la version 1 du WSL. Pour passer à la version 2, vous devrez ouvrir un terminal PowerShell et exécuter une commande.

Touchez la touche « Windows » et tapez « Powershell ».

(Large preview)

Depuis le terminal PowerShell, vous pouvez voir quelle version du WSL vous avez en exécutant wsl --list --verbose.

(Large preview)

Si vous affichez la version 1, vous devrez exécuter la commande --set-version et spécifier le nom de l’instance (Ubuntu) et la version que vous voulez (2).

wsl --set-version Ubuntu 2
(Large preview)

Cela va prendre un peu de temps, selon la quantité de viande de votre machine. La mienne a pris « quelques minutes » à peu près. Quand ce sera fait, vous serez sur la dernière et la meilleure version du WSL.

L’est votre cerveau sur Linux… sur Windows.

Linux n’est pas Windows. WSL n’est pas une invite bash au-dessus d’un système d’exploitation Windows. C’est un système d’exploitation complet en soi avec sa propre structure de dossiers et ses applications installées. Si vous installez Node avec l’installateur Windows, taper node dans Linux va échouer parce que Node n’est pas installé dans Linux. Il est installé sur Windows.

La vraie magie du WSL, cependant, réside dans la façon dont il connecte de manière transparente Windows et Linux afin qu’ils apparaissent comme un seul système de fichiers sur votre machine.

Navigation dans les fichiers et les dossiers

Par défaut, le terminal Ubuntu vous dépose dans votre répertoire d’accueil Linux (ou /home/your-user-name). Vous pouvez passer du côté Windows en allant dans /mnt/c.

(Grand aperçu)

Notez que certaines permissions sont refusées ici. Je devrais faire un clic droit sur l’icône Ubuntu et cliquer sur « Exécuter en tant qu’administrateur » pour avoir accès à ces fichiers. C’est ainsi que Windows utilise les permissions élevées. Il n’y a pas de sudo sur Windows.

Lancer des applications

Vous pouvez lancer n’importe quelle application Windows à partir du terminal Ubuntu. Par exemple, je peux ouvrir l’Explorateur Windows à partir du terminal Unbuntu.

(Large preview)

Cela fonctionne aussi en sens inverse. Vous pouvez exécuter n’importe quelle application installée du côté de Linux. Ici, j’exécute « fortune » installé dans Linux à partir de la ligne de commande Windows. (Parce que ce n’est pas une installation Linux correcte sans fortunes aléatoires et sans signification.)

(Large preview)

Deux systèmes d’exploitation différents. Deux systèmes de fichiers différents. Deux ensembles différents d’applications installées. Vous voyez comment cela pourrait devenir confus ?

Pour que tout reste clair, je vous recommande de garder tous vos fichiers et outils de développement JavaScript installés du côté de Linux. Cela dit, la possibilité de passer de Windows à Linux et d’accéder aux fichiers à partir des deux systèmes est la magie principale de la WSL. Ne l’oubliez pas, car c’est ce qui rend toute cette configuration meilleure qu’une simple boîte Linux standard.

Configuration de votre environnement de développement

À partir de maintenant, je vais vous donner une liste d’éléments d’opinion pour ce que je pense être une configuration Linux sur Windows qui tue. N’oubliez pas : mes opinions ne sont que cela. Des opinions. Il se trouve que comme toutes mes opinions, elles sont 100% correctes.

Avoir un meilleur terminal

Oui, vous avez obtenu un terminal lorsque vous avez installé Ubuntu. C’est en fait la console Windows connectée à votre distro Linux. Ce n’est pas une mauvaise console. Vous pouvez la redimensionner, activer le copier/coller (dans les paramètres). Mais vous ne pouvez pas faire des choses comme les onglets ou ouvrir de nouvelles fenêtres. Tout comme beaucoup de gens utilisent des programmes de remplacement de terminal sur Mac (j’utilise Hyper), il existe d’autres options pour Windows. La liste Awesome WSL sur Github contient une liste assez exhaustive.

Ce sont tous de bons émulateurs, mais il y a une nouvelle option qui est construite par des gens qui connaissent assez bien Windows.

Microsoft a travaillé sur une nouvelle application appelée « Windows Terminal ».

(Large preview)

Windows Terminal peut être installé depuis le Windows Store et est actuellement en mode preview. Je l’utilise depuis un certain temps maintenant, et il a suffisamment de fonctionnalités et est assez stable pour que je lui donne un appui complet.

Le nouveau Windows Terminal dispose d’une interface complète d’onglets, de copier/coller, de profils multiples, d’arrière-plans transparents, d’images de fond – même des images de fond transparentes. C’est une journée de terrain si vous aimez personnaliser votre terminal, et je suis venu pour gagner cette course en sac.

Voici mon terminal actuel. Nous allons nous promener à travers certains des ajustements importants ici.

(Large preview)

Le terminal de Windows est assez personnalisable. En cliquant sur la flèche « ⌄ » en haut à gauche (à côté du signe « &plus ; »), vous accédez à « Paramètres ». Cela ouvrira un fichier JSON.

Bind Copy/Paste

En haut du fichier se trouvent toutes les liaisons de touches. La première chose que j’ai faite a été de mapper « copier » à Ctrl + C et coller à Ctrl + V. Sinon, comment vais-je copier et coller des commandes de Stack Overflow que je ne comprends pas ?

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

Le problème est que Ctrl + C est déjà mappé à SIGINT, ou la commande Interrupt/kill sur Linux. Il existe de nombreux terminaux pour Windows qui gèrent cela en mappant le copier/coller à Ctrl + Shift + C et Ctrl + Shift + V respectivement. Le problème est que le copier/coller est Ctrl + C / Ctrl + V partout ailleurs dans Windows. J’ai juste continué à appuyer sur Ctrl + C dans le terminal encore et encore en essayant de copier des choses. Je ne pouvais pas m’arrêter de le faire.

Le terminal Windows gère cela différemment. Si vous avez du texte en surbrillance et que vous appuyez sur Ctrl + C, il copiera le texte. S’il y a un processus en cours, il envoie quand même la commande SIGINT vers le bas et l’interrompt. Le signifie que vous pouvez en toute sécurité mapper Ctrl + C / Ctrl + V pour copier/coller dans le terminal Windows et cela n’interférera pas avec votre capacité à interrompre les processus.

Qui aurait pensé que le copier/coller pourrait causer autant de maux de cœur ?

Changer le profil par défaut

Le profil par défaut est ce qui s’affiche lorsqu’un nouvel onglet est ouvert. Par défaut, c’est Powershell. Vous voudrez faire défiler vers le bas et trouver le profil Linux. C’est celui qui ouvre wsl.exe -d Ubuntu. Copiez son GUID et collez-le dans le paramètre defaultProfile.

J’ai déplacé ces deux paramètres afin qu’ils soient juste à côté l’un de l’autre pour que ce soit plus facile à voir :

(Grand aperçu)

Définir l’arrière-plan

J’aime que mon arrière-plan soit une couleur solide sombre avec un logo plat dans le coin droit. Je fais cela parce que je veux que le logo soit brillant et visible, mais pas dans le chemin du texte. Celui-ci, je l’ai fait moi-même, mais il y a une grande collection d’images plates à choisir sur Simple Desktops.

Le fond est défini avec la propriété backgroundImage:

"backgroundImage": "c:/Users/YourUserName/Pictures/earth.png"
(Grand aperçu)

Vous remarquerez également un paramètre appelé « acrylique ». C’est ce qui vous permet de régler l’opacité de l’arrière-plan. Si vous avez une couleur de fond unie, c’est assez simple.

"background": "#336699","useAcrylic": true,"acrylicOpacity": 0.5
(Grand aperçu)

Vous pouvez également tirer ceci avec une image de fond, en combinant le paramètre arcylicOpacity avec le backgroundImageOpacity :

"backgroundImage": "c:/Users/username/Pictures/earth-and-stars.png","useAcrylic": true,"acrylicOpacity": 0.5
(Large preview)

Pour mon thème, la transparence donne un aspect sourd à tout, donc je garde le useAcrylic réglé sur false.

Changer la police

L’équipe qui construit le terminal Windows travaille également sur une nouvelle police appelée « Cascadia Code ». Elle n’est pas disponible au moment de la rédaction de cet article, vous obtenez donc la police par défaut de Windows à la place.

La police par défaut du terminal Windows est « Consolas ». C’est la même police que celle utilisée par la ligne de commande de Windows. Si vous voulez cette vraie sensation Ubuntu, Chris Hoffman indique comment vous pouvez installer la police officielle Ubuntu Mono.

Voici un avant et un après pour que vous puissiez voir la différence :

"fontFace": "Ubuntu Mono"
(Grand aperçu)

Ils ont l’air assez similaires ; la principale différence étant dans l’espacement de Ubuntu Mono qui rend le terminal juste un peu plus serré et plus propre.

Schémas de couleurs

Les schémas de couleurs sont tous situés au bas du fichier de paramètres. J’ai copié le schéma de couleurs « Campbell » comme ligne de base. J’essaie de faire correspondre les couleurs avec leurs noms, mais je n’ai pas peur non plus d’être voyou. Je vais mapper « #ffffff » à « bleu » – je ne m’en soucie même pas.

(Large preview)

Si vous aimez ce schéma particulier que j’ai nommé « Earth », j’ai mis en place ce gist pour que vous n’ayez pas à copier manuellement tout ce bazar à partir d’une capture d’écran.

Note : Les aperçus de couleurs viennent en vertu de l’extension « Color Highlight » pour VS Code.

Changer le répertoire de départ par défaut

Par défaut, le profil WSL vous dépose dans votre répertoire personnel du côté de Windows. Sur la base de la configuration que je recommande dans cet article, il serait préférable d’être déposé plutôt dans votre dossier home Linux. Pour ce faire, modifiez le paramètre startingDirectory de votre profil « Ubuntu » :

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

Notez le chemin d’accès. Vous pouvez utiliser ce chemin (sans les barres obliques d’échappement supplémentaires) pour accéder au WSL à partir de la ligne de commande Windows.

(Large preview)

Installer Zsh/Oh-My-Zsh

Si vous n’avez jamais utilisé Zsh et Oh-My-Zsh, vous allez vous régaler. Zsh (ou « Z Shell ») est un shell de remplacement pour Linux. Il étend les capacités de base de Bash, y compris le changement de répertoire implicite (pas besoin de taper cd), un meilleur support des thèmes, de meilleures invites, et bien plus encore.

Pour installer Zsh, attrapez-le avec le gestionnaire de paquets apt, qui sort de la boîte avec votre installation Linux:

sudo apt install zsh

Installer oh-my-zsh en utilisant curl. Oh-my-zsh est un ensemble de configurations pour zsh qui améliorent encore plus l’expérience du shell avec des plugins, des thèmes et une myriade de raccourcis clavier.

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

Puis il vous demandera si vous voulez changer votre shell par défaut pour Zsh. Vous le faites, alors répondez par l’affirmative et vous êtes maintenant opérationnel avec Zsh et Oh-My-Zsh.

(Large preview)

Vous remarquerez que l’invite est beaucoup plus propre maintenant. Vous pouvez changer l’apparence de cette invite en changeant le thème dans le fichier ~/.zshrc.

Ouvrez-le avec nano, qui est un peu comme VIM, mais vous pouvez éditer des choses et quitter quand vous en avez besoin.

nano ~/.zshrc

Changez la ligne qui définit le thème. Il y a une URL au-dessus avec une liste complète de thèmes. Je pense que le thème « nuage » est sympa. Et mignon.

(Large preview)

Pour que les modifications du .zshrc soient reprises, vous devrez le sourcer :

source ~/.zshrc
(Large preview)

Note : Si vous choisissez un thème comme « agnoster » qui nécessite des glyphes, vous aurez besoin d’une version d’Ubuntu Mono infusée de courant porteur qui a… des glyphes. Sinon, votre terminal sera juste rempli de caractères bizarres comme si vous aviez écrasé votre visage sur le clavier. Nerd Fonts en propose un qui semble fonctionner assez bien.

Maintenant vous pouvez faire des choses comme changer de répertoire juste en entrant le nom du répertoire. Pas de cd nécessaire. Vous voulez remonter un répertoire ? Il suffit de faire un ... Vous n’avez même pas besoin de taper le nom complet du répertoire, tapez simplement les premières lettres et appuyez sur la touche tabulation. Zsh vous donnera une liste de tous les fichiers/répertoires qui correspondent à votre recherche et vous pouvez tabuler à travers eux.

(Large preview)

Installation de Node

En tant que développeur web, vous allez probablement vouloir installer Node. Je suppose que vous n’avez pas besoin d’installer Node pour faire du développement web, mais c’est sûr que ça y ressemble en 2019 !

Votre premier instinct pourrait être d’installer node avec apt, ce que vous pouvez faire, mais vous le regretteriez pour deux raisons :

  1. La version de Node sur apt est douloureusement périmée ;
  2. Vous devriez installer Node avec un gestionnaire de version pour ne pas rencontrer de problèmes de permissions.

La meilleure façon de résoudre ces deux problèmes est d’installer nvm (Node Version Manager). Puisque vous avez installé zsh, vous pouvez simplement ajouter le plugin nvm dans votre fichier zshrc et zsh s’occupe du reste.

D’abord, installez le plugin en clonant dans le repo zsh-nvm. (Ne vous inquiétez pas, Git est livré en standard sur votre installation Ubuntu.)

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

Puis ajoutez-le comme plugin dans le fichier ~/.zshrc.

`nano ~/.zshrc`plugins (zsh-nvm git)
(Large aperçu)

N’oubliez pas de sourcer à nouveau le fichier zshrc avec source ~/.zshrc et vous verrez nvm être installé.

(Large aperçu)

Maintenant vous pouvez installer node avec nvm. Il permet d’installer facilement plusieurs versions côte à côte de node, et de passer de l’une à l’autre sans effort. En outre, pas d’erreurs de permissions lorsque vous faites des installations globales de npm!

nvm install --lts

Je recommande ceci plutôt que l’installation standard de nvm parce que le plugin vous donne la possibilité de mettre à jour facilement nvm. C’est un peu une douleur avec l’installation standard « curl ». C’est une seule commande avec le plugin.

nvm upgrade

Utiliser les suggestions automatiques

Un de mes plugins très préférés pour zsh est zsh-autosuggestions. Il se souvient des choses que vous avez tapées dans le terminal auparavant, puis les reconnaît lorsque vous commencez à les taper à nouveau ainsi que « l’auto-suggestion » de la ligne dont vous pourriez avoir besoin. Ce plugin s’est avéré utile plus de fois que je ne peux me rappeler – spécifiquement quand il s’agit de longues commandes CLI que j’ai utilisées dans le passé, mais que je ne peux jamais me rappeler.

Clonez le repo dans le dossier des extensions zsh:

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

Puis ajoutez-le à vos plugins zsh et sourcez le fichier zshrc:

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

Le plugin lit votre historique zsh, alors commencez à taper une commande que vous avez tapée auparavant et regardez la magie. Essayez de taper la première partie de cette longue commande clone ci-dessus.

(Large preview)

Si vous tapez ↹, il va autocompléter la commande. Si vous continuez à appuyer sur ↹, il fera défiler toutes les commandes de votre historique qui pourraient correspondre.

Courts clavier importants

Il y a quelques raccourcis de terminal que j’utilise tout le temps. Je trouve cela avec tous mes outils – y compris VS Code. Essayer d’apprendre tous les raccourcis est une perte de temps parce que vous ne les utiliserez pas assez pour vous en souvenir.

En voici quelques-uns que j’utilise régulièrement :

Court-circuit du terminal Que fait-il ?
Ctrl + L Ceci efface le terminal et vous remet au début. C’est l’équivalent de taper « clear ».
Ctrl + U Ceci efface la ligne courante seulement.
Ctrl + A Envoie le curseur au début de la ligne de commande.
Ctrl + E Met le curseur à la fin de la ligne.
Ctrl + K Supprime tous les caractères après le curseur.

C’est tout ! Tout le reste, je l’ai probablement appris puis oublié parce que ça ne sert jamais.

Configurer Git(Hub/Lab/Whatevs)

Git est livré sur Ubuntu, il n’y a donc pas d’installation nécessaire. Vous pouvez suivre les instructions de l’hébergeur de contrôle de source de votre choix pour obtenir vos clés ssh créées et fonctionnant.

Notez que dans les instructions de Github, il vous dit d’utiliser l’utilitaire « copy » pour copier votre clé ssh. Ubuntu a la commande « xcopy », mais elle ne va pas fonctionner ici parce qu’il n’y a pas d’interopérabilité entre Linux et Windows en termes de presse-papiers.

A la place, vous pouvez simplement utiliser l’exécutable Windows Clipboard et l’appeler directement depuis le terminal. Vous devez d’abord obtenir le texte avec cat, puis le pipeer vers le presse-papiers de Windows.

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

Les docs de Github vous disent de vous assurer que le ssh-agent est en cours d’exécution. Ce n’est pas le cas. Vous verrez ceci lorsque vous essayez d’ajouter votre clé à l’agent:

(Large preview)

Vous pouvez démarrer l’agent, mais la prochaine fois que vous redémarrez Windows ou que le WSL est arrêté, vous devrez le redémarrer. C’est parce qu’il n’y a pas de système d’initialisation dans la WSL. Il n’y a pas de systemd ou un autre processus qui démarre tous vos services lorsque la WSL démarre. WSL est encore en preview, et l’équipe travaille sur une solution pour cela.

En attendant, croyez-le ou non, il y a un plugin zsh pour cela aussi. Il s’appelle ssh-agent, et il est installé avec oh-my-zsh, donc tout ce que vous avez à faire est de le référencer dans le fichier .zshrc.

zsh-nvm zsh-autosuggestions ssh-agent git

Ceci va démarrer l’agent ssh automatiquement s’il n’est pas en cours d’exécution la première fois que vous lancez le WSL. L’inconvénient est qu’il va vous demander votre phrase de passe à chaque nouveau démarrage de la WSL. Cela signifie essentiellement chaque fois que vous redémarrez votre ordinateur.

(Large aperçu)

VS Code et la WSL

La WSL n’a pas d’interface graphique, vous ne pouvez donc pas installer un outil visuel comme VS Code. Cela doit être installé du côté de Windows. Cela pose un problème parce que vous avez un programme fonctionnant du côté Windows qui accède aux fichiers du côté Linux, et cela peut entraîner toutes sortes de bizarreries et de problèmes de « permission refusée ». En règle générale, Microsoft recommande de ne pas modifier les fichiers du côté WSL avec des programmes Windows.

Pour résoudre ce problème, il existe une extension pour VS Code appelée « Remote WSL ». Cette extension est faite par Microsoft, et vous permet de développer dans le WSL, mais depuis l’intérieur de VS Code.

Une fois que l’extension est installée, vous pouvez attacher VS Code directement au côté Ubuntu en ouvrant la palette de commande (Ctrl + Shift + P) et en sélectionnant « Remote-WSL : New Window ».

(Grand aperçu)

Cela ouvre une nouvelle instance de VS Code qui vous permet de travailler comme si vous étiez entièrement du côté Linux. En faisant « File/Open », vous parcourez le système de fichiers Ubuntu au lieu de celui de Windows.

(Large preview)

Le terminal intégré à VS Code ouvre votre configuration zsh magnifiquement personnalisée. Tout « fonctionne » comme il se doit lorsque vous avez l’extension Remote WSL installée.

Si vous ouvrez du code depuis votre terminal avec code ., VS Code détectera automatiquement qu’il a été ouvert depuis le WSL, et attachera automatiquement l’extension Remote WSL.

VS Code Extensions With Remote WSL

L’extension Remote WSL pour VS Code fonctionne en configurant un petit serveur du côté Linux, et en s’y connectant depuis VS Code du côté Windows. Ceci étant, les extensions que vous avez installées dans VS Code ne s’afficheront pas automatiquement lorsque vous ouvrez un projet depuis le WSL.

Par exemple, j’ai un projet Vue ouvert dans VS Code. Même si j’ai toutes les bonnes extensions Vue installées pour la coloration syntaxique, le formatage et autres, VS Code agit comme s’il n’avait jamais vu un fichier .vue auparavant.

(Large preview)

Toutes les extensions que vous avez installées peuvent être activées dans le WSL. Il suffit de trouver l’extension que vous voulez dans le WSL, et de cliquer sur le bouton « Installer dans le WSL ».

(Large preview)

Toutes les extensions installées dans le WSL apparaîtront dans leur propre section dans la vue de l’explorateur d’extensions. Si vous avez beaucoup d’extensions, il pourrait être légèrement ennuyeux d’installer chacune d’elles individuellement. Si vous voulez simplement installer toutes les extensions que vous avez dans le WSL, cliquez sur la petite icône de téléchargement dans le nuage en haut de la section ‘Local – Installé’.

(Grand aperçu)

Comment configurer vos répertoires de développement

C’est déjà un article d’opinion, alors en voici un que vous n’avez pas demandé sur la façon dont je pense que vous devriez structurer vos projets sur votre système de fichiers.

Je garde tous mes projets du côté de Linux. Je ne mets pas mes projets dans « Mes documents » pour ensuite essayer de travailler avec eux depuis la WSL. Mon cerveau ne peut pas gérer cela.

Je crée un dossier appelé /dev que je place à la racine de mon dossier /home sous Linux. A l’intérieur de ce dossier, j’en crée un autre qui porte le même nom que mon repo Github : /burkeholland. Ce dossier est l’endroit où vont tous mes projets – même ceux qui ne sont pas poussés vers Github.

Si je clone un repo à partir d’un compte Github différent (par exemple « microsoft »), je crée un nouveau dossier dans « dev » appelé /microsoft. Je clone ensuite le repo dans un dossier à l’intérieur de celui-ci.

Basiquement, j’imite la même structure que le contrôle de source sur ma machine locale. Je trouve qu’il est beaucoup plus facile de raisonner sur l’emplacement des projets et sur les dépôts auxquels ils sont attachés, juste en vertu de leur emplacement. C’est simple, mais c’est très efficace pour m’aider à tout organiser. Et j’ai besoin de toute l’aide que je peux obtenir.

(Large preview)

Naviguer dans les fichiers depuis l’explorateur Windows

Il y a des moments où vous avez besoin d’accéder à un fichier dans Linux depuis le côté Windows. La belle chose avec la WSL est que vous pouvez toujours le faire.

Une façon est d’accéder à la WSL comme un lecteur mappé. Accédez-y avec un \wsl$ directement à partir de la barre d’exploration:

\wsl$
(Grand aperçu)

Vous pourriez faire cela pour un certain nombre de raisons différentes. Par exemple, pas plus tard qu’aujourd’hui, j’ai eu besoin d’une extension Chrome qui n’est pas dans la boutique en ligne. J’ai donc cloné le repo dans WSL, puis j’ai navigué jusqu’à lui en tant qu' »Extension décompressée » et je l’ai chargé dans Edge.

Une chose que je fais avec une certaine fréquence sous Linux est d’ouvrir le répertoire qui contient un fichier directement à partir du terminal. Vous pouvez le faire dans la WSL, aussi, en appelant directement explorer.exe. Par exemple, cette commande ouvre le répertoire courant dans l’explorateur Windows.

$ explorer.exe .

Cette commande est cependant un peu lourde. Sous Linux, il s’agit simplement de open .. Nous pouvons faire cette même magie en créant un alias dans le ~/.zshrc.

alias open="explorer.exe"

Docker

Quand j’ai dit que tous les outils devraient être du côté de Linux, je le pensais. Cela inclut Docker.

C’est là que le caoutchouc commence vraiment à rencontrer la route. Ce dont nous avons besoin ici est Docker, fonctionnant à l’intérieur de Linux fonctionnant à l’intérieur de Windows. C’est un peu une poupée gigogne russe lorsque vous l’écrivez dans un article de blog. En réalité, c’est assez simple.

Vous aurez besoin de la bonne version de Docker pour Windows. Au moment où nous écrivons ces lignes, il s’agit de la WSL 2 Tech Preview.

Lorsque vous exécutez le programme d’installation, il vous demandera si vous voulez utiliser des conteneurs Windows au lieu de conteneurs Linux. Vous devez absolument le faire. Sinon, vous n’aurez pas l’option d’exécuter Docker dans le WSL.

(Large aperçu)

Vous pouvez maintenant activer Docker dans le WSL en cliquant sur l’élément dans la barre d’état système et en sélectionnant « WSL 2 Tech Preview »:

(Large aperçu)

Après avoir démarré le service, vous pouvez utiliser Docker dans le WSL comme vous vous attendez à pouvoir le faire. L’exécution de Docker dans le WSL fournit une assez grande augmentation des performances, ainsi qu’une augmentation du temps de démarrage à froid sur les conteneurs.

Puis-je également vous recommander d’installer l’extension Docker pour VS Code ? Il met une interface visuelle sur votre configuration Docker et, en général, rend juste plus facile de travailler avec Docker parce que vous n’avez pas à vous souvenir de tous ces drapeaux et options de ligne de commande.

Get More Bash On Windows

À ce stade, vous devriez avoir l’idée sur la façon de mettre Bash sur Windows, et comment il fonctionne une fois que vous l’obtenez là. Vous pouvez personnaliser votre terminal à l’infini et il y a toutes sortes de programmes rad que vous pouvez ajouter pour faire des choses comme définir automatiquement les variables PATH, créer des alias, obtenir une vache ASCII dans votre terminal, et bien plus encore.

L’exécution de Bash sur Windows a ouvert un univers entièrement nouveau pour moi. Je suis capable de combiner Windows que j’aime pour le côté productivité, et Linux dont je dépends en tant que développeur. Le meilleur de tous, je peux construire des applications pour les deux plateformes maintenant avec une seule machine.

Lecture complémentaire

Vous pouvez en savoir plus sur Bash sous Windows par ici :

  • « Guide d’installation du sous-système Windows pour Linux pour Windows 10 », Microsoft Docs
  • « Comment installer et utiliser le shell Bash sur Windows 10 », Chris Hoffman, How-To Geek
  • « Partager SSH avec WSL », Drew Wilson
  • « Devenir fou avec le sous-système Windows pour Linux, » Brian Ketelsen
  • « Tout ce que vous pouvez faire avec le nouveau shell Bash de Windows 10 », Chris Hoffman, How-To Geek

Merciements particuliers à Brian Ketelsen, Matt Hernandez, Rich Turner et Craig Loewen pour leur patience, leur aide et leurs conseils pour cet article.

(rb, dm, il)

Laisser un commentaire

Votre adresse e-mail ne sera pas publiée.