Windows 10 1607 Anniversary Update ha portato in dote un sottosistema capace di eseguire i programmi per Linux senza che sia necessario modificarli in alcun modo. La funzionalità ha maturato in modo costante e, a partire da Windows 10 1709 Fall Creators Update, si propone con una procedura di installazione semplificata, non richiede più l'abilitazione della "modalità sviluppatore" e abbandona il suffisso "beta". Sottosistema Windows per Linux (WSL) si presenta all'utente sottoforma di una shell Bash completa (la stessa di Ubuntu, openSUSE o Fedora) 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 yum o addirittura compilare dai sorgenti. In questa guida vedremo come installare il Sottosistema Windows per Linux (WSL) 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 è che non si tratta di virtualizzazione, come quella che potremmo ottenere installando manualmente la nostra distribuzione Linux in VirtualBox

» Leggi anche: La virtualizzazione dei sistemi operativi non sarà più un problema: guida a VirtualBox

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 funzionare 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 e power user. Sebbene disponibile anche per Windows Server, infatti, WSL non è in grado di eseguire servizi in background.

Passo 1: installare Sottosistema Windows per Linux

Per prima cosa, è necessario installare il componente Sottosistema Windows per Linux. Si tratta di una funzionalità opzionale integrata in Windows, che deve essere però attivata manualmente.

Per raggiungere la finestra dedicata:

  1. premere la combinazione da tastiera Win+R per richiamare Esegui
  2. impartire il comando optionalfeatures.exe

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

In alternativa, cercare la parola funzionalità nel menu Start ed avviare Attiva o disattiva funzionalità di Windows.

Dalla lista proposta:

  1. scorrere fino ad individuare Sottosistema Windows per Linux
  2. spuntare la relativa casella di controllo
  3. cliccare OK
  4. 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 2: Scegliere la distribuzione Linux

Digitare ora store nel menu Start ed avviare l'app Microsoft Store. All'interno dell'app, cercare il nome della distribuzione Linux che desideriamo installare. Al momento, sono disponibili le seguenti:

Fedora è attesa da un momento all'altro ma, al momento della pubblicazione di questa guida, non è ancora concretamente disponibile.

Completare l'installazione della distribuzione scelta cliccando Ottieni

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

Passo 3: Avviare WSL

Ad installazione terminata, possiamo avviare la distribuzione scelta tramite il collegamento nel menu Start. L'ambiente di lavoro è Bash, ovvero una delle varie shell testuali del mondo Linux (impiegata di default un po' da tutte le distribuzioni principali).

Alla primissima esecuzione dobbiamo scegliere un nome utente per creare l'account sul sistema Linux, e la relativa password. Personalmente scelgo sempre 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

Per concludere la sessione di lavoro è sufficiente chiudere la finestra per arrestare l'ambiente Linux.

Passo 4: 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.

Con cd / si torna al livello "radice" dal quale si dirama tutto il filesystem Linux. Da qui, con ll, visualizziamo il contenuto

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

Il disco C:\ di Windows è montato sotto /mnt/c/ (le altre unità sono /mnt/d/ e via dicendo, esattamente come da lettera assegnata sotto Windows). Entriamoci quindi tramite cd /mnt/c/ e richiediamo la lista dei file disponibili con ll. Ignoriamo gli errori di accesso (Permesso negato oppure Permission denied) 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 ad inizio articolo.

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 5: installare programmi dai repo

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.

» Leggi: Come scaricare file da linea di comando: guida a curl e wget per Linux Ubuntu/CentOS

"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, l'ambiente di lavoro include sempre i gestori di pacchetti propri della distribuzione scelta: parliamo quindi di apt per Ubuntu e tool equivalenti per le altre distribuzioni, già configurati per accedere agli stessi, identici repository e installare automaticamente nuovo software.

Se avete scelto Ubuntu, 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 pagi/na di cortesia erogata da Apache

» Leggi anche: Installare e configurare un server web: La Grande Guida ad Apache, PHP, MySQL su Windows e Linux

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)

» Leggi anche: Aggiornare Ubuntu: quali differenze fra apt-get update, apt-get upgrade e apt-get dist-upgrade? Il modo migliore è... zzupdate!

Passo 6: Entrare ed uscire tramite Prompt dei comandi

È utile sapere che possiamo entrare nell'ambiente Linux anche da un qualsiasi Prompt dei comandi Windows, e non solo avviando esplicitamente lo strumento dal menu Start:

  • Per entrare nell'ambiente Linux: comando bash
  • Per uscire: exit oppure combinazione da tastiera Ctrl+D

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 8: 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 9: 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 Ubuntu è 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 10: 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.

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