Développer des logiciels est un travail délicat. À la fin de la journée, tout le travail consiste à écrire des instructions dans un langage étrange pour un interpréteur pointilleux qui arrêtera tout ce sur quoi vous avez travaillé. Eh bien, il est temps d’installer Windows Terminal et de découvrir une meilleure façon.
Dans ce guide ultime, vous allez découvrir l’une des meilleures consoles pour les développeurs ; le Terminal Windows. Vous aurez un aperçu complet de presque toutes les fonctionnalités du Terminal Windows. Vous apprendrez comment cela peut vous aider à exécuter des commandes sur Windows en ligne de commande.
Le Terminal Windows améliore l’expérience de la console avec des fonctionnalités de terminal modernes telles que les onglets, les volets, et même les images d’arrière-plan. Vous pouvez même exécuter un shell Linux complet aux côtés de Windows PowerShell ou cmd.exe sans avoir à basculer entre les sessions de console.
Cet article sera un guide sur de nombreuses capacités du Terminal Windows. Ce sera un tutoriel pratique tout au long, alors soyez prêt à vous mettre au travail !
Prérequis
Les exigences pour installer et utiliser le Terminal Windows lui-même sont assez basiques. Tout ce dont vous avez besoin est d’une machine Windows 10 avec la version 1903 (mai 2019) ou ultérieure. Si vous voulez suivre toutes les démonstrations de cet article, vous aurez également besoin de quelques autres outils installés :
- La fonctionnalité Sous-système Windows pour Linux (WSL) activée avec une distribution Linux installée (toutes les démonstrations montrées utilisent Ubuntu 20.04)
- Visual Studio Code (VS Code)
- Python avec la bibliothèque de texte enrichi installée
- Visual Studio 2019 ou ultérieur avec :
- L’installation du SDK Windows 10 1903
- L’installation du composant Desktop Development with C++
- L’installation du composant Universal Windows Platform Development
- L’installation du composant C++ (v142) Universal Windows Platform Tools
Terminal vs. Console vs. Shell
Parce que nous allons couvrir de nombreux termes dans cet article, il est important de commencer par comprendre certaines différences terminologiques pour ne pas être confus.
Même si les concepts sont similaires, il est important de noter qu’un terminal n’est pas une console n’est pas un shell. Chacun a sa propre fonction spécifique. Scott Hanselman a une excellente publication sur son blog sur les définitions de chacun, mais voici comment ils seront utilisés dans cet article :
- Terminal : L’application Windows Terminal.
- Console : Toute application hôte de console qui est non le Windows Terminal.
- Shell : Le programme entre le terminal et le système d’exploitation. (pwsh, cmd, zsh, etc.)
Installer Windows Terminal
Il existe plusieurs façons d’installer Windows Terminal, mais la plus simple (et la façon recommandée par Microsoft) est de l’installer à partir de la Microsoft Store. Il existe deux versions différentes que vous pouvez télécharger ; le terminal Windows standard et le Windows Terminal Preview.
Pour les besoins de cet article, vous pouvez utiliser l’un ou l’autre. L’installation est simple, nous ne la couvrirons donc pas dans cet article et nous supposerons que vous l’avez déjà installée.
Lorsque vous ouvrez Windows Terminal pour la première fois, il n’a pas l’air ou ne se sent pas impressionnant. Il y a beaucoup de modifications à faire pour y parvenir, mais tout commence par une fenêtre comme celle ci-dessous.

Notez que Windows Terminal a quatre composants principaux :
- Fenêtre de terminal – C’est ici que vous ferez l’essentiel de votre travail et où vous pourrez le personnaliser le plus.
- Nom de l’onglet – Windows Terminal prend en charge les onglets, ce qui signifie que vous pouvez avoir différents shells
- Nouvel onglet – Ce bouton ouvrira un nouvel onglet de votre profil par défaut
- Liste des profils – Cela affichera les profils disponibles pour être ouverts.
Le Terminal Windows possède une disposition minimaliste, mais il cache beaucoup de fonctionnalités derrière celle-ci.
Construire le Terminal à partir de la source
Bien que ce soit le Terminal Windows et qu’il provienne de Microsoft, il est également entièrement open-source, ce qui signifie que si vous le souhaitez, vous pouvez y contribuer. Il s’agit d’un programme en C++ avec une communauté très active.
Même si c’est un produit GA, au moment de la rédaction, il y a encore quelques petits bugs à corriger et des fonctionnalités sur la feuille de route pour un développement futur. Peut-être que ce sera vous qui contribuera à les améliorer !
Si vous êtes développeur et que vous voulez vraiment vous plonger dans le code, vous pouvez construire le Terminal Windows à partir de PowerShell, suivez ces étapes :
- Exécutez
git submodule update --init --recursive
pour mettre à jour tous les sous-modules git - Exécutez les commandes PowerShell ci-dessous :
Le fichier settings.json : Personnaliser toutes les choses
Finalement, vous voudrez probablement rendre le terminal à vous et le personnaliser. L’une des meilleures choses à propos du Terminal Windows est à quel point il est personnalisable. La façon la plus courante de personnaliser le Terminal Windows est en modifiant le fichier settings.json situé dans le répertoire %LOCALAPPDATA%\Packages\Microsoft.WindowsTerminal_8wekyb3d8bbwe\LocalState\.
Vous pouvez également accéder au fichier settings.json en cliquant sur la liste des profils et en sélectionnant Paramètres.
Le fichier settings.json est l’endroit où vous effectuerez la plupart des personnalisations pour Windows Terminal jusqu’à ce qu’une option graphique soit disponible.
L’équipe Windows Terminal a promis dans une prochaine version qu’une interface graphique sera bientôt publiée pour gérer les paramètres!
En plus d’avoir tous les paramètres stockés à un seul endroit pratique, lorsque les paramètres sont stockés dans un fichier JSON, vous pouvez les mettre en contrôle de version ou les sauvegarder au cas où vous vous déplaceriez entre différentes machines.
Vous pouvez même partager les paramètres avec d’autres. Si vous souhaitez jeter un coup d’œil à un exemple de ce à quoi ressemble un settings.json, consultez-en un ici.
Le schéma settings.json
Si vous utilisez Visual Studio Code, le terminal inclut un schéma JSON qui aidera à valider toute personnalisation que vous apportez à l’intérieur de settings.json, y compris l’autocomplétion de tout nouveau paramètre.
Dès que vos modifications sont enregistrées (tant que settings.json est toujours valide), les nouvelles modifications seront reflétées immédiatement dans le terminal ou une erreur sera affichée sans avoir besoin de rafraîchir le terminal.
Bien que Visual Studio Code ne soit pas requis pour modifier JSON, il est définitivement recommandé lorsqu’il s’agit de personnaliser le Terminal Windows.
Il existe actuellement quatre sections différentes de settings.json qui contrôlent l’apparence et la sensation du Terminal Windows : Globals, Profiles, Schemes et Key Bindings. Jetons un coup d’œil à chaque section.
Globals
La section globale est responsable de la détermination du comportement du Terminal Windows. Toujours tout en haut du fichier, la section globale contrôle des choses comme la confirmation avant la fermeture, le thème visuel et le profil par défaut. Vous pouvez voir un exemple dans le code suivant.
Profiles
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.
Windows Terminal est livré avec trois profils par défaut : Windows PowerShell, cmd.exe et Azure Cloud Shell. Si vous avez WSL installé, il générera également un profil pour chaque distribution WSL que vous avez installée. Il inclut également une section defaults qui appliquera les paramètres à chaque profil dans settings.json. C’est un excellent endroit pour mettre des polices compatibles Unicode qui seront abordées plus loin dans cet article.
Vous pouvez voir un exemple de ce à quoi ressemble un profil dans le fragment de code suivant.
Créer un nouveau profil
Configurer des profils peut être utile si vous souhaitez ajouter des variations sur le même shell, ou ajouter des profils distants personnalisés au terminal.
Pour créer un nouveau profil Windows Terminal dans settings.json, voici les étapes que vous devrez suivre:
Assurez-vous d’ajouter une virgule après chaque profil sauf le dernier pour rendre le JSON valide.
- Copiez n’importe quel profil de votre section profils. Ceux-ci commencent par
[
et se terminent par]
sous le nœud list dans le fichier JSON. C’est les lignes sept à 14 ci-dessus. - Générez un nouveau GUID en exécutant
[guid]::NewGuid()
à partir de toute session PowerShell. Remplacez la valeur actuelle deguid
dans votre nouveau profil par le GIUD que vous avez généré. Les GUID sont générés aléatoirement lorsque le terminal configure les profils par défaut. - Ajoutez ou modifiez tous les autres paramètres pour personnaliser le profil.
- Copier le contenu de settings.json et vérifier qu’il est toujours valide en le faisant passer par JSON Lint ou un autre correcteur JSON. Corrigez tous les problèmes.
- Enregistrez vos modifications.
Il existe de nombreuses options disponibles pour configurer un profil. Gardez à l’esprit que si vous avez une option dans la section par défaut dans settings.json, et que vous l’avez également définie dans votre nouveau profil, vous allez remplacer la valeur par défaut. Pour une analyse complète, consultez la documentation des paramètres de Windows Terminal.
Schémas
Cette section fait référence aux schémas de couleurs pour vos profils Windows Terminal. Un schéma de couleurs indique au terminal quelle valeur hexadécimale utiliser pour chaque couleur qui apparaît dans le terminal. Etant donné que le terminal peut rendre les couleurs en 24 bits, ces couleurs peuvent devenir assez créatives. Chaque schéma aura un nom et une liste de couleurs qui correspondent à une valeur hexadécimale qui peut être facilement modifiée comme indiqué ci-dessous.
Ces couleurs correspondront aux couleurs de fond et de texte pendant que vous utilisez ce schéma dans Windows Terminal. Si vous avez settings.json ouvert dans Visual Studio Code, vous pouvez cliquer sur les valeurs hexadécimales qui ont un curseur graphique qui montre les couleurs réelles comme indiqué ci-dessous.

Les thèmes de terminal (appelés schémas dans le Terminal Windows) ne sont pas rares dans le monde des programmes de terminal. Bien qu’il n’y ait pas une seule manière de créer un thème (schéma) qui fonctionne avec différents terminaux, vous pouvez trouver de nombreux outils pour les créer, peu importe l’application que vous utilisez. Vous pouvez facilement trouver un préfabriqué, ou créer le vôtre !

Raccourcis clavier
Les raccourcis clavier sont la façon dont le Terminal Windows attribue des touches de raccourci pour des actions telles que de nouveaux volets, onglets, ou même des actions de base comme copier et coller. Il existe de nombreuses actions auxquelles des raccourcis personnalisés peuvent être attribués, ce qui facilite la personnalisation du terminal selon vos préférences.
Vous pouvez voir dans l’extrait de code suivant certains raccourcis clavier par défaut.
À ce stade, votre terminal peut commencer à se comporter comme vous le souhaitez, mais vous n’avez pas fini. Maintenant, il est temps d’apprendre comment continuer à personnaliser l’apparence et le fonctionnement du terminal.
Paramètres visuels
Lorsque vous passez la majorité de votre vie professionnelle à regarder du texte sur un écran, il vaut la peine de prendre quelques mesures supplémentaires pour rendre ce texte plus facile à regarder. Que ce soit en modifiant les polices, les tailles ou les couleurs, consacrer un peu de temps à l’apparence de votre nouveau terminal Windows rapportera de gros dividendes après y avoir passé une journée de travail entière.
Améliorations du texte
Une des fonctionnalités les plus annoncées du terminal Windows est la prise en charge des couleurs 24 bits et le rendu accéléré du texte. Cela peut ne pas sembler impressionnant en soi jusqu’à ce que vous le compariez à la manière dont powershell.exe ou cmd.exe rend le texte et les couleurs. En utilisant la bibliothèque riche de Python pour illustrer, il est assez clair à quel point les différences de capacité de rendu sont grandes entre les anciennes consoles et le terminal Windows.

Ouverture de la bibliothèque riche depuis Python dans le terminal Windows et powershell.exe
Le terminal Windows prend également en charge les caractères Unicode, ce qui signifie qu’il peut être utilisé avec d’autres alphabets et symboles, y compris les caractères cyrilliques, les kanji et tout autre caractère qui sera rendu sans problème. Cela est dû à la police Cascadia Code, qui sera abordée plus tard.

Écriture en kanji japonais avec le terminal Windows et powershell.exe
Cela présente certains avantages évidents en termes d’internationalisation, mais la prise en charge de l’Unicode et de l’UTF-8 signifie également que le terminal Windows peut également prendre en charge…
Emoji 🙂
Les emojis peuvent ne pas sembler être une chose utile à inclure dans un outil en ligne de commande, mais ils deviennent de plus en plus incontournables dans le développement. Les ingénieurs logiciels les utilisent pour étiqueter les commits et les problèmes, répondre rapidement aux messages avec des applications telles que Slack ou Microsoft Teams, et il existe même un langage de programmation emoji. Bien que certains d’entre eux soient certainement plus utiles que d’autres, il est clair que les emojis ne vont nulle part.
Voici un exemple de rendu des emojis sur la console powershell.exe et le même dans le Terminal Windows en utilisant la bibliothèque rich de Python. Remarquez la ligne Le terminal est joli
et observez la différence.

Affichage des emojis avec la bibliothèque de texte riche de Python
Polices Cascadia
Comme mentionné précédemment, la police Cascadia Code permet d’afficher certains des caractères. Mais la police a également quelques autres changements subtils qui la rendent plus facile à regarder pendant des heures, comme les ligatures.
À noter : La même équipe qui a conçu le Terminal Windows a spécifiquement créé la police Cascadia Code pour une utilisation sur le Terminal Windows.
En plus des caractères spéciaux, la police Cascadia Code prend également en charge les ligatures. Les ligatures sont des symboles qui s’affichent un peu différemment à l’écran. Vous pouvez consulter une liste de celles prises en charge par la police Cascadia Code ici.

A printout of all the ligatures supported by Cascadia Code. Code here.
Si vous préférez ne pas utiliser les ligatures mais souhaitez tout de même bénéficier des autres avantages de Cascadia Code, le Terminal Windows est également livré avec une police appelée Cascadia Mono qui fait exactement cela. Chacune d’entre elles a également une variante pour Powerline, (Cascadia Code PL
et Cascadia Mono PL
), qui sera couverte ensuite.
Powerline
Powerline est à l’origine un plugin vim qui ajoutait des informations à l’interface de ligne de commande, et existe depuis longtemps dans le monde Linux. L’idée était de fournir plus d’informations dans l’invite de commande, rendant ainsi plus d’informations disponibles à portée de main lors du travail dans la console.
Powerline a été porté, cloné et reproduit dans chaque shell moderne, y compris PowerShell, mais en raison des limitations des consoles précédentes, il manquait quelque chose. Le terminal résout ce problème en incluant des symboles spécifiques appelés glyphes. Les glyphes sont utilisés dans Powerline pour fournir beaucoup plus d’informations d’un seul coup d’œil dans l’invite de commande.
Powerline dans PowerShell Pour PowerShell, vous pouvez configurer une invite de commande similaire à Powerline en installant oh-my-posh en utilisant le code d’exemple ci-dessous.
Pour PowerShell, vous pouvez configurer une invite similaire à powerline en installant oh-my-posh en utilisant le code exemple ci-dessous.
Une fois que c’est installé, votre invite PowerShell affichera plus d’informations, y compris le nom de la branche git et les commits entre les dépôts distant et local. Vous pouvez voir un exemple ci-dessous.

Ceci est le thème Paradox de oh-my-posh avec une personnalisation pour afficher le système d’exploitation en cours et la version de PowerShell.
Powerline dans Bash
Pour Bash, vous devrez installer un shell comme zsh ou fishshell. Ces derniers ajoutent certaines fonctionnalités et mise en surbrillance personnalisée à l’interface en ligne de commande, mais peuvent être un peu difficiles à utiliser seuls. Il est recommandé d’installer également un cadre pour zsh comme ohmyzsh, ce qui facilitera grandement son utilisation. ohmyzsh est livré avec des thèmes et une personnalisation de l’invite bash similaire à la façon dont oh-my-posh le fait pour une invite PowerShell.
Une fois installé, vous pouvez changer de thème en modifiant la propriété ZSH_THEME dans le fichier ~/.zshrc. Faites cela avec un éditeur comme vim ou nano et enregistrez le fichier. Une fois fait, exécutez source ~/.zshrc
et vos modifications seront appliquées.

Changement du thème agnoster vers le thème robbyrussell dans zsh.
Images d’arrière-plan
Une des fonctionnalités les plus discutées du Terminal Windows lors de sa sortie était la possibilité d’utiliser des images dans chaque profil. Jusqu’à présent, vous avez probablement remarqué que tous les arrière-plans étaient une seule couleur définie dans le fichier settings.json avec le tag background
.
某些人发现在编码时图像会分散注意力,因此,如果您是那些人之一,这里是一个在 settings.json 中使用单一颜色背景的例子。
Une fois qu’une seule couleur est définie, celle-ci deviendra l’arrière-plan pour ce profil. Si aucun tag d’arrière-plan n’est défini dans votre profil, le Terminal Windows utilisera par défaut ce qui est dans votre schéma.

Le profil de l’exemple ci-dessus affichera cette couleur comme arrière-plan.
Pour utiliser une image d’arrière-plan, vous devez avoir l’image sur votre système de fichiers local. À l’heure où cet article est écrit, le Terminal ne supporte pas les images d’arrière-plan provenant d’une URL. Dans settings.json, naviguez jusqu’au profil auquel vous souhaitez assigner l’image d’arrière-plan. Une fois là, ajoutez la balise backgroundImage
et donnez-lui la valeur du chemin vers l’image. Voici un exemple qui définit l’arrière-plan du profil à l’image d’un chat.

Si vous décidez de personnaliser votre propre arrière-plan, sachez que le terminal ne tient pas compte de vos couleurs par rapport à votre arrière-plan. Le terminal utilisera par défaut les couleurs présentes dans le schéma du profil actuel. Si vous n’êtes pas attentif, vous risquez de mettre un texte de couleur claire sur un arrière-plan de couleur claire, ce qui rendra la lecture très difficile. Tous les arrière-plans ne conviennent pas aux terminaux.
Le chat du Terminal est dans votre terminal, occupant votre arrière-plan.
Si settings.json est toujours un fichier JSON valide et respecte toujours le schéma du terminal, vous verrez l’arrière-plan se mettre à jour instantanément sans besoin de rafraîchir manuellement ou de fermer et de réouvrir le terminal. Vous pouvez voir un excellent exemple de mise à jour en temps réel ci-dessous.

Le Terminal Windows se mettra à jour dès que vous apporterez des modifications à settings.json et que vous enregistrerez.
Positionnement des images
Vous pouvez penser que les images sont trop distrayantes dans une fenêtre de terminal, et elles le peuvent être. Cependant, elles peuvent également servir de référence rapide si vous devez souvent basculer entre les onglets et les profils. Voici un exemple d’utilisation d’une image d’arrière-plan pour mettre en évidence le shell utilisé.
Pour définir une image d’arrière-plan, comme illustré ci-dessus, vous avez besoin de trois paramètres supplémentaires qui commencent par backgroundImage
pour aider à contrôler la taille, l’emplacement et l’opacité de l’image à l’écran. N’oubliez pas de consulter la documentation pour voir quelles options sont disponibles. Ci-dessous, un exemple du profil présenté ci-dessus.

Le Terminal Windows prend également en charge les gifs animés, donc si vous ne le trouvez pas trop distrayant, vous pouvez également vous amuser avec vos profils.

Commandes avancées du Terminal Windows
Maintenant que votre terminal est configuré et personnalisé à votre goût, il est temps d’explorer les capacités plus avancées du Terminal Windows.
Diviser les volets avec différents noyaux
Le Terminal Windows prend en charge plusieurs volets. Cela signifie que vous pouvez exécuter des sessions parallèles dans la même fenêtre de Terminal. Ce comportement n’est pas nouveau. D’autres applications de console ont pris en charge les volets depuis des années. Le Terminal Windows est différent car, grâce à son support des profils (dans settings.json), vous pouvez ouvrir chaque session dans son propre volet. Même si chaque session est un système d’exploitation complètement différent, par exemple lors de l’utilisation de WSL ou d’un profil distant (plus de détails sur les profils distants ci-dessous), vous pouvez afficher un volet pour chaque OS.
Pour créer des volets fractionnés de profils différents, dans settings.json, chaque profil doit avoir son propre raccourci clavier splitPane
. En spécifiant le paramètre profile
avec soit le nom soit le GUID du profil du Terminal Windows, vous pouvez les ouvrir côte à côte.
La propriété split
peut être définie sur horizontal
, vertical
ou auto
qui choisira l’orientation qui offre le plus d’espace en fonction du volet actuellement sélectionné. Vous pouvez voir ci-dessous un exemple de configuration des raccourcis clavier pour quatre volets.

Personnaliser la façon d’ouvrir le Terminal Windows
Si vous n’aimez pas les raccourcis clavier, ou si vous voulez un moyen rapide d’ouvrir le terminal avec la CLI, alors vous êtes chanceux. Le Terminal Windows inclut un exécutable de ligne de commande appelé wt
qui vous permet de l’ouvrir automatiquement dans la configuration de votre choix.
Vous pouvez voir ci-dessous un exemple de passage de divers arguments lors de l’ouverture du terminal qui change le comportement.

Profils distants
La plupart du temps, vos profils exécuteront des shells locaux. Cependant, Windows Terminal peut également afficher des sessions distantes via un concept appelé profils distants !
Si vous regardez d’autres exemples de profils pour Windows Terminal, vous pourriez remarquer que certains d’entre eux n’utilisent pas du tout des applications .exe. Windows Terminal est suffisamment flexible pour que vous puissiez même utiliser la commande ssh
ou la commande PowerShell Enter-PsSession
pour créer des profils qui se connectent à des serveurs distants ou à d’autres shells. Vous pouvez même utiliser terraform console
pour lancer une session Terraform ! Vous pouvez voir un exemple de cela dans le profil ci-dessous.
En utilisant le paramètre commandline
dans la section profil de settings.json, vous pouvez ouvrir presque tout comme son propre profil Windows Terminal qui n’a pas besoin de se connecter de manière interactive.

Ouverture de la REPL Python et d’une connexion SSH à une instance AWS EC2 avec des profils Windows Terminal
Résumé
À ce stade, vous ne devez pas seulement être familier avec Windows Terminal, mais avoir également configuré vos paramètres personnalisés et disposer d’une configuration assez confortable. Vous devez être en mesure de personnaliser les profils et les raccourcis clavier pour contrôler l’apparence et le fonctionnement du terminal, ainsi que de savoir modifier les polices, les glyphes et les caractères que vous pouvez utiliser dans le terminal.
Les outils en ligne de commande ne vont nulle part. Les développeurs et les ingénieurs doivent continuer à les utiliser. Le nouveau Terminal Windows ne va pas empêcher le développement de logiciels d’être un travail où vous regardez du petit texte sur un écran, mais il pourrait le rendre beaucoup plus facile à faire!