Sviluppare software è un lavoro delicato. Alla fine della giornata, l’intero lavoro consiste nel scrivere istruzioni in un linguaggio strano per un interprete esigente che chiuderà tutto su cui hai lavorato. Bene, è ora di installare Windows Terminal e scoprire un modo migliore.
In questa guida definitiva, imparerai uno dei migliori console per sviluppatori: Windows Terminal. Avrai una panoramica completa di quasi tutte le funzionalità di Windows Terminal. Imparerai come può aiutarti a gestire le cose su Windows dalla riga di comando.
Windows Terminal migliora l’esperienza della console con funzionalità moderne come schede, riquadri e persino immagini di sfondo. Puoi persino avere una shell Linux completa in esecuzione insieme a Windows PowerShell o cmd.exe senza dover passare tra sessioni di console.
Questo articolo sarà una guida dettagliata sulle molte capacità di Windows Terminal. Sarà un tutorial pratico, quindi preparati a metterti al lavoro!
Prerequisiti
I requisiti per installare e utilizzare Windows Terminal stesso sono piuttosto basilari. Tutto ciò di cui hai bisogno è un computer Windows 10 con la build 1903 (maggio 2019) o successiva. Se vuoi seguire tutte le dimostrazioni in questo articolo, avrai bisogno anche di alcune altre strumenti installati:
- La funzionalità Windows Subsystem for Linux (WSL) abilitata con una distribuzione Linux installata (tutte le dimostrazioni mostrate utilizzano Ubuntu 20.04)
- Visual Studio Code (VS Code)
- Python con la libreria di testo ricco installata
- Visual Studio 2019 o versioni successive con:
- L’SDK di Windows 10 1903 installato
- Il componente di sviluppo desktop con C++ installato
- Il componente di sviluppo della piattaforma Windows universale installato
- Il componente degli strumenti della piattaforma Windows universale C++ (v142) installato
Terminale vs Console vs Shell
Dato che affronteremo molti termini in questo articolo, è importante comprendere prima alcune differenze terminologiche in modo da non confondersi.
Anche se i concetti sono simili, è importante notare che un terminale non è una console e non è una shell. Ognuno ha uno scopo specifico. Scott Hanselman ha un ottimo post sul blog sulle definizioni di ognuno, ma ecco come saranno usati in questo articolo:
- Terminale: L’applicazione Windows Terminal.
- Console: Qualsiasi applicazione host della console che non è il Windows Terminal.
- Shell: Il programma tra il terminale e il sistema operativo (pwsh, cmd, zsh, ecc.)
Installare Windows Terminal
Ci sono diverse modalità per installare Windows Terminal, ma la più semplice (e quella consigliata da Microsoft) è installarla dal Microsoft Store. Puoi scaricare due versioni diverse: la Windows Terminal standard e la Windows Terminal Preview.
Per gli scopi di questo articolo, puoi utilizzare entrambe. L’installazione è semplice, quindi non la tratteremo in questo articolo e supporremo che tu l’abbia già installata.
Quando apri Windows Terminal per la prima volta, non sembra impressionante. Ci sono molte modifiche che dovrai apportare per ottenere il risultato desiderato, ma tutto parte da una finestra come quella mostrata di seguito.

Nota che Windows Terminal ha quattro componenti principali:
- Finestra del terminale – Qui effettuerai la maggior parte del tuo lavoro e dove puoi personalizzare di più.
- Nome della scheda – Windows Terminal supporta le schede, il che significa che puoi avere diverse shell
- Nuova scheda – Questo pulsante aprirà una nuova scheda con il profilo predefinito
- Elenco dei profili – Questo elencherà i profili disponibili da aprire.
Windows Terminal ha un layout minimalista, ma al suo interno è nascosta molta funzionalità.
Costruire il terminale da codice sorgente
Mentre questo è il Terminale di Windows, e proviene da Microsoft, è anche completamente open-source, il che significa che se lo desideri, puoi contribuire ad esso. È un programma C++ con una comunità molto attiva.
Anche se si tratta di un prodotto GA, al momento della scrittura ci sono ancora alcuni bug minori che vengono affrontati e funzionalità sulla tabella di marcia per lo sviluppo futuro. Forse sarai tu a contribuire ad esse!
Se sei uno sviluppatore e vuoi davvero entrare nel codice, puoi compilare il Terminale di Windows da PowerShell, segui questi passaggi:
- Esegui
git submodule update --init --recursive
per aggiornare tutti i sottomoduli git - Esegui i comandi PowerShell seguenti:
Il file settings.json: Personalizza tutto
Prima o poi probabilmente vorrai personalizzare il terminale e personalizzarlo. Una delle migliori cose del Terminale di Windows è quanto sia personalizzabile. Il modo più comune per personalizzare il Terminale di Windows è modificare il file settings.json situato nella directory %LOCALAPPDATA%\Packages\Microsoft.WindowsTerminal_8wekyb3d8bbwe\LocalState\.
Puoi anche accedere al file settings.json facendo clic sull’elenco dei profili e selezionando Impostazioni.
Il file settings.json è dove effettuerai la maggior parte delle personalizzazioni per il Terminale di Windows fino a quando non sarà disponibile un’opzione grafica.
Il team di Windows Terminal ha promesso in una prossima versione di rilasciare una GUI per la gestione delle impostazioni!
Oltre ad avere tutte le impostazioni memorizzate in un unico punto comodo, quando le impostazioni vengono memorizzate in un file JSON, è possibile mettere le impostazioni nel controllo del codice sorgente o eseguire il backup nel caso si passi tra diverse macchine.
È possibile anche condividere le impostazioni con altri. Se vuoi dare un’occhiata a un esempio di come appare settings.json, controllalo qui.
Lo schema settings.json
Se stai utilizzando Visual Studio Code, il terminale include uno schema JSON che aiuterà a convalidare qualsiasi personalizzazione che si fa all’interno di settings.json, inclusa la compilazione automatica di qualsiasi nuova impostazione.
Appena le modifiche vengono salvate (a condizione che settings.json sia ancora valido), le nuove modifiche saranno immediate nel terminale o verrà mostrato un errore senza bisogno di aggiornare il terminale.
Anche se non è necessario utilizzare Visual Studio Code per modificare JSON, è sicuramente consigliato quando si tratta di personalizzare Windows Terminal.
Attualmente ci sono quattro diverse sezioni di settings.json che controllano l’aspetto e il funzionamento di Windows Terminal: Globals, Profiles, Schemes e Key Bindings. Diamo un’occhiata a ciascuna sezione.
Globals
La sezione globals è responsabile del comportamento di Windows Terminal. Sempre in cima al file, la sezione globale controlla cose come la conferma alla chiusura, il tema visuale e il profilo predefinito. Di seguito è riportato un esempio del codice.
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 viene fornito con tre profili predefiniti: Windows PowerShell, cmd.exe e Azure Cloud Shell. Se hai WSL installato, verrà anche generato un profilo per ogni distribuzione WSL installata. Include anche una sezione defaults che applicherà le impostazioni a ogni profilo in settings.json. Questo è un ottimo posto per inserire i font compatibili con Unicode, che verranno trattati più avanti in questo articolo.
È possibile vedere un esempio di come appare un profilo nel seguente frammento di codice.
Creazione di un nuovo profilo
La creazione di profili può essere utile se si desidera aggiungere variazioni alla stessa shell o aggiungere profili remoti personalizzati al terminale.
Per creare un nuovo profilo di Windows Terminal in settings.json, ecco i passaggi da seguire:
Assicurarsi di aggiungere una virgola dopo ogni profilo tranne l’ultimo per rendere valido il JSON.
- Copiare qualsiasi profilo dalla sezione dei profili. Questi iniziano con
[
e terminano con]
sotto il nodo list nel file JSON. Queste sono le righe dal sette al 14 sopra. - Generare un nuovo GUID eseguendo
[guid]::NewGuid()
da qualsiasi sessione PowerShell. Sostituire il valore corrente perguid
nel nuovo profilo con il GUID che hai generato. I GUID vengono generati casualmente quando il terminale configura i profili predefiniti. - Aggiungere o modificare eventuali altri parametri per personalizzare il profilo.
- Copiare il contenuto di settings.json e verificare che sia ancora valido eseguendolo attraverso JSON Lint o un altro linter JSON. Correggere eventuali problemi.
- Salvare le modifiche.
Sono disponibili molte opzioni da configurare in un profilo. Tieni presente che se hai impostato una configurazione nella sezione predefinita in settings.json e hai la stessa configurazione nel tuo nuovo profilo, sovrascriverai la predefinita. Per una panoramica completa, consulta la documentazione delle impostazioni di Windows Terminal.
Schemi
Questa sezione si riferisce agli schemi di colore per i profili di Windows Terminal. Uno schema di colore indica al terminale quale valore esadecimale utilizzare per ogni colore che appare nel terminale. Poiché il terminale può rappresentare i colori in 24 bit, questi colori possono essere molto creativi. Ogni schema avrà un nome e una lista di colori che corrispondono a un valore esadecimale che può essere facilmente modificato come mostrato di seguito.
Questi colori corrisponderanno ai colori dello sfondo e del testo mentre utilizzi quello schema in Windows Terminal. Se hai settings.json aperto in Visual Studio Code, puoi fare clic sui valori esadecimali che hanno uno slider grafico che mostra i colori effettivi come mostrato di seguito.

Temi del terminale (chiamati schemi nel Windows Terminal) non sono rari nel mondo dei programmi di terminale. Sebbene non ci sia un modo univoco per creare un tema (schema) che funzioni su diverse applicazioni di terminale, puoi trovare molti strumenti là fuori per crearli, indipendentemente dall’applicazione che usi. Puoi trovare facilmente un predefinito, o crearne uno tuo!

Associazioni dei tasti
Le associazioni dei tasti sono il modo in cui il Windows Terminal assegna tasti di scelta rapida per azioni come nuove riquadre, schede o anche azioni di base come copia e incolla. Ci sono tante azioni che possono essere assegnate a tasti di scelta rapida personalizzati, rendendo facile personalizzare il terminale in base alle tue preferenze.
Nel frammento di codice seguente puoi vedere alcune associazioni predefinite dei tasti.
A questo punto, il tuo terminale potrebbe iniziare a comportarsi come desideri, ma non hai finito ancora. Ora è il momento di imparare come continuare a personalizzare l’aspetto e la sensazione del terminale.
Impostazioni visive
Quando trascorri la maggior parte della tua vita lavorativa a fissare il testo su uno schermo, vale la pena fare alcuni passi extra per rendere quel testo più facile da guardare. Che si tratti di cambiare i caratteri, le dimensioni o i colori, dedicare un po’ di tempo all’aspetto del tuo nuovo Windows Terminal darà grandi risultati dopo averlo fissato per un’intera giornata lavorativa.
Miglioramenti del testo
Una delle caratteristiche più pubblicizzate del Windows Terminal è il supporto dei colori a 24 bit e il rendering accelerato del testo. Potrebbe non sembrare impressionante di per sé, finché non lo si confronta con il modo in cui powershell.exe o cmd.exe renderizzano il testo e i colori. Utilizzando la libreria ricca di Python per dimostrarlo, è abbastanza evidente quanto siano grandi le differenze nelle capacità di rendering tra le vecchie console e il Windows Terminal.

Apertura della libreria ricca da Python nel Windows Terminal e powershell.exe
Il Windows Terminal supporta anche i caratteri Unicode, il che significa che può essere utilizzato con altri alfabeti e simboli, inclusi i caratteri cirillici, Kanji e qualsiasi altro carattere verrà visualizzato senza problemi. Questo grazie al font Cascadia Code, di cui si parlerà in seguito.

Scrittura in giapponese Kanji con il Windows Terminal e powershell.exe
Ciò comporta ovviamente dei vantaggi in termini di internazionalizzazione, ma il supporto a Unicode e UTF-8 significa anche che il Windows Terminal può supportare…
Emoji ?
Le emoji potrebbero non sembrare una cosa utile da includere in uno strumento a riga di comando, ma stanno diventando sempre più un pilastro nello sviluppo. Gli ingegneri del software le utilizzano per etichettare commit e problemi, rispondere rapidamente ai messaggi con app come Slack o Microsoft Teams, e c’è persino un linguaggio di programmazione emoji. Sebbene alcuni di questi siano sicuramente più utili di altri, è chiaro che le emoji non andranno da nessuna parte.
Di seguito è riportato un esempio di rendering delle Emojis sulla console powershell.exe e lo stesso nel Terminal Windows utilizzando la libreria rich di python. Nota la riga The Terminal is pretty
e vedi la differenza.

Visualizzazione delle emoji con la libreria di testo ricco di python
Cascadia Fonts
Come accennato in precedenza, il carattere Cascadia Code è ciò che consente di visualizzare alcuni dei caratteri. Ma il font ha anche altre sottili modifiche che lo rendono più facile da guardare per ore, come le legature.
Per la tua informazione: Lo stesso team che ha progettato il Terminal Windows ha creato il carattere Cascadia Code specificamente per l’uso sul Terminal Windows.
Oltre ai caratteri speciali, il font Cascadia Code supporta anche le ligature. Le ligature sono simboli che vengono visualizzati in modo leggermente diverso sullo schermo. Puoi vedere un elenco di quelle supportate da Cascadia Code qui.

A printout of all the ligatures supported by Cascadia Code. Code here.
Se preferisci non utilizzare le ligature ma desideri comunque gli altri vantaggi di Cascadia Code, il Windows Terminal include anche un font chiamato Cascadia Mono che fa proprio questo. Ognuno di essi ha anche una variante per powerline, (Cascadia Code PL
e Cascadia Mono PL
) che verrà trattata successivamente.
Powerline
Powerline è originariamente un plugin di vim che aggiunge informazioni alla shell ed è presente nel mondo Linux da molto tempo. L’idea era quella di fornire più informazioni nell’interfaccia, rendendo più informazioni disponibili a portata di mano durante il lavoro nella console.
Powerline è stato portato, clonato e replicato in tutte le shell moderne, incluso PowerShell, ma a causa delle limitazioni delle console precedenti, gli mancava qualcosa. Il terminale risolve quel problema includendo simboli specifici chiamati glifi. I glifi vengono utilizzati in powerline per fornire un’ampia quantità di informazioni nella visualizzazione rapida dell’interfaccia.
Powerline in PowerShell
Per PowerShell, puoi configurare un prompt simile a powerline installando oh-my-posh utilizzando il codice di esempio qui sotto.
Una volta installato, il prompt di PowerShell mostrerà più informazioni, inclusi il nome del branch git e i commit tra i repository remoti e locali. Puoi vedere un esempio di seguito.

Questo è il tema Paradox di oh-my-posh con alcune personalizzazioni per mostrare il sistema operativo corrente e la versione di PowerShell.
Powerline in Bash
Per Bash, sarà necessario installare una shell come zsh o fishshell. Questi aggiungono alcune funzionalità e personalizzazioni al terminale, ma possono essere un po’ difficili da usare da soli. Si consiglia di installare anche un framework per zsh come ohmyzsh, che faciliterà molto l’utilizzo. ohmyzsh include temi e personalizzazioni del prompt di bash simili a quelli di oh-my-posh per il prompt di PowerShell.
Una volta installato, è possibile cambiare il tema modificando la proprietà ZSH_THEME nel file ~/.zshrc. Modifica il file utilizzando un editor come vim o nano e salva il file. Una volta fatto ciò, esegui source ~/.zshrc
e le tue modifiche saranno applicate.

Cambiare dal tema agnoster al tema robbyrussell in zsh.
Immagini di sfondo
Una delle caratteristiche più discusse del Windows Terminal al momento del suo rilascio era la possibilità di utilizzare immagini in ogni profilo. Fino ad ora, probabilmente hai notato che gli sfondi sono stati tutti di un solo colore definito nel file settings.json con il tag background
.
Alcune persone trovano le immagini distrazioni quando programmano, quindi se sei una di queste persone, ecco un esempio di utilizzo di uno sfondo di un solo colore nel file settings.json.
Con un unico colore impostato, quel colore diventerà lo sfondo per quel profilo. Se nessun tag di sfondo è impostato nel tuo profilo, il Windows Terminal utilizzerà il valore predefinito dello schema.

L’esempio di profilo sopra mostrerà questo colore come sfondo.
Per utilizzare un’immagine di sfondo, avrai bisogno di avere l’immagine nel tuo sistema locale. Al momento della scrittura, il Terminal non supporta immagini di sfondo da un URL. Nel file settings.json, vai al profilo a cui desideri assegnare l’immagine di sfondo. Da qui, aggiungi il tag backgroundImage
e attribuisci ad esso il valore del percorso dell’immagine. Di seguito è riportato un esempio che imposta lo sfondo del profilo come un’immagine di un gatto.

Se decidi di personalizzare il tuo sfondo, sappi che il terminale non tiene conto dei tuoi colori rispetto al tuo sfondo. Il terminale utilizzerà i colori predefiniti dello schema del tuo profilo corrente. Se non fai attenzione, potresti mettere un carattere di colore chiaro su uno sfondo di colore chiaro, rendendo difficile la lettura. Non tutti gli sfondi sono adatti per il terminale.
Il gatto del terminale è nel tuo terminale, occupando il tuo sfondo.
Finché settings.json è ancora un file JSON valido e rispetta lo schema del terminale, vedrai immediatamente l’aggiornamento dello sfondo senza bisogno di aggiornare manualmente o chiudere e riaprire il terminale. Puoi vedere un ottimo esempio di questo aggiornamento in tempo reale qui sotto.

Il terminale di Windows si aggiornerà non appena apporti modifiche a settings.json e salvi.
Posizionamento delle immagini
Potresti pensare che le immagini siano troppo distraggenti in una finestra del terminale, e potrebbero esserlo. Tuttavia, possono anche essere un rapido riferimento se devi passare spesso tra schede e profili. Di seguito è riportato un esempio di utilizzo di un’immagine di sfondo per evidenziare la shell utilizzata.
Per impostare un’immagine di sfondo, come mostrato sopra, sono necessari tre parametri aggiuntivi che iniziano con backgroundImage
per controllare le dimensioni, la posizione e l’opacità dell’immagine sullo schermo. Ricorda sempre di controllare la documentazione per vedere quali opzioni sono disponibili. Di seguito è riportato un esempio del profilo mostrato sopra.

Il Windows Terminal supporta anche gif animate, quindi se non ti distrae troppo, puoi anche divertirti con i tuoi profili.

Comandi avanzati del Windows Terminal
Ora che il tuo terminale è configurato e personalizzato secondo le tue preferenze, è il momento di esplorare alcune delle funzionalità più avanzate del Windows Terminal.
Dividere le finestre con kernel diversi
Il Windows Terminal supporta più finestre. Ciò significa che è possibile eseguire sessioni parallele nella stessa finestra del terminale. Questo comportamento non è nuovo. Altre applicazioni console supportano le finestre da anni. Il Windows Terminal è diverso perché, dal momento che supporta i profili (in settings.json), è possibile avere ogni sessione aperta nella propria finestra. Anche se ogni sessione è un sistema operativo completamente diverso, ad esempio quando si utilizza WSL o un profilo remoto (più avanti sui profili remoti), è possibile visualizzare una finestra per ogni sistema operativo.
Per creare riquadri divisi con profili diversi, nel file settings.json ogni profilo deve avere la propria combinazione di tasti per la divisione. Specificando il parametro profile
con il nome o l’ID del profilo di Windows Terminal, puoi avere aperti uno accanto all’altro.
La proprietà split
può essere impostata su horizontal
, vertical
o auto
che selezionerà l’orientamento che fornisce più spazio in base al riquadro selezionato. Di seguito puoi vedere un esempio di impostazione delle combinazioni di tasti per quattro riquadri.

Personalizzazione di come viene aperto il Windows Terminal
Se non ti piacciono le scorciatoie da tastiera o desideri un modo rapido per aprire il terminale con la riga di comando, sei fortunato. Il Windows Terminal include un’eseguibile da riga di comando chiamato wt
che ti consente di aprire in modo automatico il terminale con la configurazione desiderata.
Di seguito puoi vedere un esempio di passaggio di vari argomenti durante l’apertura del terminale che cambia il comportamento.

Profili remoti
La maggior parte delle volte, i tuoi profili eseguiranno shell locali. Tuttavia, Windows Terminal può anche visualizzare sessioni remote attraverso un concetto chiamato profili remoti.
Se dai un’occhiata ad altri profilo campione per il Windows Terminal, potresti notare che alcuni di essi non utilizzano affatto applicazioni .exe. Il Windows Terminal è abbastanza flessibile da consentirti di utilizzare anche il comando ssh
o il comando PowerShell Enter-PsSession
per creare profili che si mappano su server remoti o su altre shell. Puoi persino utilizzare terraform console
per avviare una sessione Terraform! Puoi vedere un esempio di ciò nel profilo qui sotto.
Utilizzando il parametro commandline
nella sezione del profilo di settings.json, puoi aprire praticamente qualsiasi cosa come un proprio profilo di Windows Terminal che non richiede l’accesso interattivo.

Aprire il REPL di Python e una connessione SSH a un’istanza AWS EC2 con profili di Windows Terminal
Riepilogo
A questo punto, dovresti non solo essere familiare con il Windows Terminal, ma aver configurato le tue impostazioni personalizzate e avere una configurazione abbastanza comoda. Dovresti essere in grado di personalizzare i profili e i collegamenti dei tasti per controllare l’aspetto e il funzionamento del terminale, oltre a sapere come modificare i font, i glifi e i caratteri che puoi utilizzare nel terminale.
Le utility a riga di comando non vanno da nessuna parte. Sia gli sviluppatori che gli ingegneri devono continuare a usarle. Il nuovo Windows Terminal non impedirà lo sviluppo del software di essere un lavoro in cui si guarda un piccolo testo su uno schermo, ma potrebbe renderlo molto più facile continuare a farlo!
Source:
https://adamtheautomator.com/install-windows-terminal/