Windows 10 1607 Anniversary Update ha portato in dote una funzionalità tanto inattesa quanto interessante: un sottosistema capace di eseguire i programmi per Linux senza che sia necessario modificarli in alcun modo. La funzione si presenta all'utente sottoforma di una shell Bash completa (la stessa di Ubuntu!), corredata da tutti i micro-programmi classici del mondo Linux. Ci sono ls, grep, awk, sed, diff, ssh, curl e wget, ma -ancor più importante- siamo liberi di installare qualsiasi altro software disponibile nei repository accessibili tramite apt o addirittura compilare dai sorgenti. In questa guida vedremo come installare il componente ed usare le funzioni principali.

Grande Guida Bash Windows 10: come installare Sottosistema Windows Linux (WSL) ed eseguire programmi Linux/Ubuntu sotto Windows 10 - bash windows 10 spotlight

Il bello di questa implementazione è che non si tratta di virtualizzazione. Al contrario, Microsoft ha implementato un sottosistema che espone le stesse Application programming interface (API) e risponde esattamente come un kernel Linux "reale", permettendo alle applicazioni di girare in modo molto più efficiente e consumando drasticamente meno risorse.

Non ci sono requisiti particolari, se non l'obbligo di impiegare Windows 10 64 bit (x64). Sottosistema Windows per Linux, infatti, non è disponibile sul sistema operativo in compilazione a 32 bit.

È però importante ricordare che la funzionalità è strettamente rivolta all'uso desktop e, in particolare, ai programmatori. Microsoft ne sconsiglia apertamente l'uso sui server di produzione e sottolinea a più riprese la presenza dell'etichetta "beta", a ricordare, appunto, che si tratta di una funzionalità ancora in lavorazione.

Passo 1: abilitare la Modalità sviluppatore

Sebbene nella mia esperienza diretta non sia stato necessario, la documentazione Microsoft cita come requisito obbligatorio l'attivazione preventiva della Modalità sviluppatore. Seguire quindi Start -> Impostazioni -> Aggiornamento e sicurezza -> Per sviluppatori. Da qui, scegliere l'opzione Modalità sviluppatore

Grande Guida Bash Windows 10: come installare Sottosistema Windows Linux (WSL) ed eseguire programmi Linux/Ubuntu sotto Windows 10 - windows 10 modalità sviluppatore

Anche in caso fosse suggerito, per il momento possiamo evitare il riavvio.

Passo 2: installare Sottosistema Windows per Linux

Fare click con il pulsante destro del mouse sul pulsante Start e selezionare la prima voce del menu, Programmi e funzionalità. Dalla finestra apertasi, cliccare il collegamento sulla sinistra denominato Attivazione o disattivazione delle funzionalità Windows

Grande Guida Bash Windows 10: come installare Sottosistema Windows Linux (WSL) ed eseguire programmi Linux/Ubuntu sotto Windows 10 - Programmi e funzionalità

Dalla lista proposta, scorrere fino ad individuare Sottosistema Windows per Linux. Spuntare la relativa casella di controllo, procedere cliccando OK e concludere con il riavvio quando richiesto.

Grande Guida Bash Windows 10: come installare Sottosistema Windows Linux (WSL) ed eseguire programmi Linux/Ubuntu sotto Windows 10 - windows 10 1607 bash Sottosistema Windows per Linux

Passo 3: installare Bash

Basta ora aprire un Prompt dei comandi amministrativo ed impartire semplicemente bash. Alla primissima esecuzione, premere s per confermare la volontà di scaricare e installare la shell e tutti i programmi Linux di base (Ubuntu on Windows, distribuito da Canonical). Dobbiamo poi scegliere un nome utente per creare l'account sul sistema Linux. Consiglio strenuamente di usare root, ovvero l'utenza con i privilegi massimi del mondo Linux

Grande Guida Bash Windows 10: come installare Sottosistema Windows Linux (WSL) ed eseguire programmi Linux/Ubuntu sotto Windows 10 - bash windows 10 installazione

In alternativa, possiamo svolgere l'installazione in modo completamente automatico impartendo questo unico comando dal Prompt dei comandi Windows:

lxrun /install /y

Scegliendo questa seconda strada, verrà installato Bash e impostato l'utente a root senza chiedere nulla all'utente.

Passo 4: entrare ed uscire da Linux

A questo punto siamo "dentro" al sistema Linux. Per uscire e tornare al tradizionale Prompt dei comandi Windows possiamo premere la combinazione da tastiera Ctrl+D oppure usare il comando exit. Per rientrare, basta impartire bash e, questa volta, ci troveremo immediatamente davanti alla shell Bash

Grande Guida Bash Windows 10: come installare Sottosistema Windows Linux (WSL) ed eseguire programmi Linux/Ubuntu sotto Windows 10 - windows 10 bash exit

In alternativa, possiamo cercare bash nel menu Start per trovare un collegamento che avvia direttamente il terminale Linux

Grande Guida Bash Windows 10: come installare Sottosistema Windows Linux (WSL) ed eseguire programmi Linux/Ubuntu sotto Windows 10 - windows 10 bash start

Per scoprire quale versione di Linux e quale generazione della distribuzione Ubuntu siano in uso basta lanciare lsb_release -a.

Passo 5: cambiare cartella, elencare i file

Il primissimo comando Linux da ricordare è pwd: consente infatti di stampare a terminale il percorso completo nel quale ci troviamo.

Grande Guida Bash Windows 10: come installare Sottosistema Windows Linux (WSL) ed eseguire programmi Linux/Ubuntu sotto Windows 10

Scopriamo così che il disco C:\ è montato sotto /mnt/c/ (le altre unità sono /mnt/d/ e via dicendo, esattamente come da lettera assegnata sotto Windows).

A partire da /mnt/c/ troviamo tutti i file e le cartelle. Spostiamoci quindi tramite cd /mnt/c/ e richiediamo la lista dei file disponibili con ll. Ignoriamo gli errori di accesso (Permesso negato) sui file di sistema e noteremo, fra le altre, la cartella Users

Grande Guida Bash Windows 10: come installare Sottosistema Windows Linux (WSL) ed eseguire programmi Linux/Ubuntu sotto Windows 10 - bash windows 10 ll

Ripetendo il ciclo cd Users (attenzione a rispettare la maiuscole!) seguito da ll entriamo nella nostra cartella utente di Windows. Fate ben attenzione a non confondere questa directory -ovvero la tradizionale cartella utente di Windows- con la Home di Linux: per raggiungere quest'ultima dovete infatti impartire cd $HOME (attenzione! è tutto maiuscolo!), comando che vi poterà sotto /home/mioutente oppure /root/ se avete nominato l'account utente Linux come suggerito al Passo 3.

Riepilogando:

  • /mnt/c/Users/mioutente/: cartella personale di Windows (la stessa visualizzabile con Esplora file)
  • /home/mioutente/ oppure /root/: cartella "home" di Linux

Il filesystem Linux è parzialmente visibile anche da Windows. Per raggiungerlo, richiamare Esegui con la combinazione da tastiera Win+R, quindi impartire

C:\Users\%USERNAME%\AppData\Local\lxss

Come già trattato, i file dell'utente si trovano in /home/mioutente oppure /root/, mentre per visualizzare le cartelle di sistema (fra le quali l'importantissima /etc/ con i file di configurazione) basta entrare in rootfs

Grande Guida Bash Windows 10: come installare Sottosistema Windows Linux (WSL) ed eseguire programmi Linux/Ubuntu sotto Windows 10

Passo 6: installare programmi con "apt"

Come anticipato, le utilità di base sono immediatamente disponibili. Abbiamo già usato cd e ll, ma possiamo anche modificare i file con l'editor "nano", scaricare pagine web con wget -O $HOME/turbolab.it.html https://turbolab.it (come trattato poco fa, il file verrà salvato nella Home di Linux, non in quella di Windows!) e via dicendo.

"Giocare" con le utility base di Linux è utile per prendere confidenza con l'ambiente, ma non serve a molto dal punto di vista "produttivo". Fortunatamente, la shell include anche apt-get (e la sua evoluzione rivolta agli utenti, apt) già configurati per accedere agli stessi, identici repository di Ubuntu e installare automaticamente nuovo software.

Iniziamo con apt update per aggiornare la lista dei pacchetti disponibili. Ora, tanto per fare una prova veloce, procediamo con apt install cowsay -y. Ad installazione completata, lanciamo /usr/games/cowsay "Saluti a tutti da TurboLab.it" per visualizzare un fumetto

Grande Guida Bash Windows 10: come installare Sottosistema Windows Linux (WSL) ed eseguire programmi Linux/Ubuntu sotto Windows 10

Pronti per una partitina al mitico Space invaders? per installare un suo clone per terminale basta impartire apt install ninvaders -y, seguito dal comando di esecuzione: /usr/games/ninvaders. Ci si sposta con le frecce di direzione, si spara con lo spazio

Grande Guida Bash Windows 10: come installare Sottosistema Windows Linux (WSL) ed eseguire programmi Linux/Ubuntu sotto Windows 10 - windows 10 1607 bash ninvaders

Per iniziare a "fare sul serio" potremmo pensare di installare Apache HTTP Server, ovvero il server web che consente di erogare i siti Internet. Il comando è apt install apache2 -y, mentre il servizio si avvia con service apache2 restart. Ora possiamo aprire il browser web di Windows all'indirizzo http://localhost per visualizzare la pagina di cortesia erogata da Apache

Grande Guida Bash Windows 10: come installare Sottosistema Windows Linux (WSL) ed eseguire programmi Linux/Ubuntu sotto Windows 10 - apache ubuntu windows 10

Ancora: grazie a questo strumento possiamo eseguire Redis senza la necessità di appoggiarsi ad un fork specifico per Windows: basta installarlo con apt install redis-server -y e lanciarlo con redis-server

Grande Guida Bash Windows 10: come installare Sottosistema Windows Linux (WSL) ed eseguire programmi Linux/Ubuntu sotto Windows 10 - windows 10 wsl bash redis

Ricordate soltanto che qualsiasi programma Linux in esecuzione viene arrestato alla chiusura della finestra Bash.

In seguito, quando vorrete aggiornare i software, non dovrete far altro se non impartire i seguenti comandi dall'ambiente Linux:

  • apt update (aggiorna la lista dei pacchetti disponibili)
  • apt full-upgrade -y (scarica e installa le nuove versioni dei pacchetti)

Passo 7: eseguire programmi con interfaccia grafica

Fino ad ora ci siamo limitati ad eseguire programmi per il terminale. Con un po' di smanettamento, però, possiamo tentare di lanciare anche software con interfaccia grafica, tra cui l'utilissimo Firefox per Linux che consente di navigare al riparo dai malware per Windows

Grande Guida Bash Windows 10: come installare Sottosistema Windows Linux (WSL) ed eseguire programmi Linux/Ubuntu sotto Windows 10 - gvim windows 10 wsl

» Leggi: Guida a Bash su Windows 10 (WSL): come eseguire programmi Linux/Ubuntu ad interfaccia grafica (GUI) su Windows 10

Passo 7: lanciare programmi Ubuntu da Windows

Se vi trovate spesso ad usare un determinato programma per Linux potete aprire Bash e lanciare detto applicativo in una mossa sola. La sintassi è bash -c "nomeprogramma", quindi, ad esempio, bash -c "nano" per eseguire l'editor di testi.

Grande Guida Bash Windows 10: come installare Sottosistema Windows Linux (WSL) ed eseguire programmi Linux/Ubuntu sotto Windows 10 - windows 10 esegui bash nano

Ricordate però che, in questo modo, il Prompt dei comandi viene chiuso automaticamente non appena si conclude l'applicazione. In altre parole: lanciando i già trattati ll oppure pwd non riusciremo a leggere la risposta, mentre per un'applicazione che rimane in esecuzione fino a quando non la chiudiamo volontariamente (ad esempio: nano) va benissimo.

Se aprite spesso un determinato programma in questo modo è certamente una buona idea creare un collegamento: click con il pulsante destro del mouse in un punto vuoto del desktop, Nuovo -> Collegamento, immettere il comando e, al passo successivo, scegliere un nome a piacere. Ora click sull'elemento appena creato, Proprietà -> Cambia icona.. navigare fino all'icona desiderata (quella di Ubuntu è in %USERPROFILE%\AppData\Local\lxss\bash.ico) e confermare ripetutamente

Grande Guida Bash Windows 10: come installare Sottosistema Windows Linux (WSL) ed eseguire programmi Linux/Ubuntu sotto Windows 10 - windows 10 collegamento nano ubuntu

Passo 8: Disinstallare un programma

Ogni installazione e modifica ai relativi file di configurazione persiste fra una sessione Bash e la successiva. Se desiderate semplicemente rimuovere un programma, il comando da impartire sotto Bash è apt purge nomepacchetto -y. Quindi, per disinstallare cowsay e apache2 che abbiamo installato al precedente Passo 6, useremo:

  • apt purge cowsay -y
  • apt purge apache2 -y

Possiamo anche disinstallare molteplici pacchetti in una volta sola, specificandoli tutti nello stesso comando. Nel nostro caso:

apt purge cowsay apache2 -y

Di tanto in tanto è saggio fare pulizia e rimuovere tutte i pacchetti installati per soddisfare a dipendenze, ma ora non più necessari. Il comando -del tutto sicuro- è

apt-get autoremove

Passo 9: reset totale

Se, per qualsiasi motivo, desiderate "resettare" l'ambiente Linux e ricominciare dalla situazione iniziale dovete semplicemente aprire un Prompt dei comandi amministrativo di Windows ed eseguire quanto segue:

lxrun /uninstall /full /y

Grande Guida Bash Windows 10: come installare Sottosistema Windows Linux (WSL) ed eseguire programmi Linux/Ubuntu sotto Windows 10 - bash windows 10 disinstalla

Questo causerà la rimozione completa dell'ambiente Linux per Windows 10, cancellando anche la cartella Home dell'utente Linux. In caso desideriate conservarla, omettete il parametro /full.

Per ricominciare a lavorare con Bash non dovete fare altro se non impartire bash e seguire nuovamente il Passo 3 di questo articolo.

Altri riferimenti utili (in inglese)

Segnalo inoltre nuovamente la tecnica non-ufficiale per eseguire applicazioni ad interfaccia grafica:

» Guida a Bash su Windows 10 (WSL): come eseguire programmi Linux/Ubuntu ad interfaccia grafica (GUI) su Windows 10