14/11/2024

WSL

10 commandes pour maîtriser WSL sous Windows 10

I. Présentation

Avec ce tutoriel, je souhaite vous proposer 10 commandes indispensables pour bien maîtriser WSL (Windows Subsystem for Linux) sous Windows 10.

🎥 Disponible au format vidéo (avec chapitres) :

J'ai choisi les commandes en fonction de mes propres besoins, qui seront surement aussi les vôtres, mais aussi en fonction des limitations actuelles de WSL sous Windows 10. La dernière version à l'heure où j'écris cet article est Windows 10 21H1.

À l'aide d'une console, l'exécutable "wsl.exe" que l'on peut appeler d'un simple "wsl" donne accès à un jeu de commande très intéressant, qu'il est important de maîtriser pour bien prendre en main WSL sous Windows. Toutes les options disponibles sont visibles dans l'aide :

wsl --help

Précédemment, nous avons comment installer WSL 2 sur Windows 10, mais aussi comment installer Kali Linux avec WSL et comment mettre en place une règle de redirection de port avec WSL.

II. Lister les distributions WSL installées sur Windows 10

Lorsque l'on commence à déployer plusieurs systèmes Linux sur Windows 10 à partir de WSL, il arrive à un moment où l'on ne sait plus trop ce que l'on a déployé ou non. Il y a une commande bien pratique qui permet de lister les distributions installées (enregistrées) sur votre machine :

wsl --list

Que l'on peut écrire aussi :

wsl -l

Personnellement, je préfère utiliser la même commande avec l'option --verbose car cela affiche des informations supplémentaires : l'état de la distribution et la version.

wsl --list --verbose

Que l'on peut écrire aussi :

wsl -l -v

On peut voir que l'on a deux colonnes supplémentaires : STATE et VERSION. La commande sans l'option --verbose indique également quelle est la distribution Linux par défaut, ici : Kali Linux (Default). Sur la version avec --verbose, il faut se référer au caractère "*".

wsl --list --verbose
Exemple : wsl --list --verbose

III. WSL : modifier la version d'une distribution Linux

WSL est proposé en deux versions : la version 1 et la version 2. La seconde est plus pertinente, car elle permet de s'appuyer sur une machine virtuelle WSL et d'avoir un véritable noyau Linux à disposition.

Si vous avez une distribution Linux en version 1 actuellement et que vous souhaitez la basculer en version 2, il faut utiliser le paramètre --set-version. Voici un exemple pour la distribution nommée "kali-linux" :

wsl --set-version kali-linux 2

Un processus de conversion va débuter pour transformer la distribution en version WSL 2. À l'inverse, on peut définir la version 1 également :

wsl --set-version kali-linux 1

La conversion fonctionne dans les deux sens. Si l'on veut définir la version 2 comme étant la version par défaut à utiliser pour les futures distributions, on va utiliser cette commande :

wsl --set-default-version 2

IV. Démarrer une distribution WSL en ligne de commande

Pour démarrer une distribution WSL, il suffit d'accéder à son shell, par exemple à partir du raccourci qui est créé dans le menu Démarrer de Windows.

Sachez que l'on peut également forcer le démarrage de la distribution WSL grâce à une simple commande. De quoi faire un petit script qui s'exécute au démarrage de votre machine Windows, par exemple. 😉

Pour démarrer la distribution Ubuntu, on utilisera la commande suivant :

wsl --distribution Ubuntu

Que l'on peut aussi écrire :

wsl -d Ubuntu

Il n'y a pas de commande pour démarrer toutes les distributions en même temps.

V. Exécuter une commande dans une distribution WSL depuis Windows

Il n'est pas nécessaire d'ouvrir le Shell de la distribution Linux pour exécuter une commande à l'intérieur. On peut le faire directement depuis Windows et notre commande wsl. Avec les bonnes options bien sûr.

Pour exécuter la commande "sudo apt update" au sein de la distribution Linux nommée "Ubuntu", on utilisera la commande suivante :

wsl --distribution Ubuntu sudo apt update
Exemple : wsl --distribution Ubuntu sudo apt update

C'est important de spécifier "sudo" devant toutes les commandes qui nécessitent des droits "root" sur le système Linux. Si c'est une commande basique telle que "hostname" qui permet d'obtenir le nom de l'hôte, ce n'est pas utile :

wsl --distribution Ubuntu hostname

On aurait pu exécuter aussi la commande ci-dessous, où il n'est pas spécifié de distribution cible.

wsl sudo apt update

Dans ce cas, la commande va s'exécuter au sein de la distribution WSL qui est définie par défaut sur votre machine Windows 10 (souvenez-vous de ce que l'on a vu précédemment). C'est un détail qui a son importance.

VI. Définir une distribution Linux par défaut sous WSL

Pour finir sur la notion de distribution par défaut, sachez que l'on peut choisir celle que l'on veut définir par défaut. Par exemple, pour définir Ubuntu comme distribution par défaut :

wsl --set-default Ubuntu

Que l'on peut écrire aussi :

wsl -s Ubuntu
wsl --set-default
Exemple : wsl --set-default

Comme le montre cette commande, dans l'ensemble les commandes WSL sont simples.

VII. Démarrer la distribution WSL avec un utilisateur spécifique

Au sein votre distribution Linux, vous pouvez créer plusieurs utilisateurs. Si vous souhaitez lancer la distribution WSL en étant directement connecté avec un utilisateur spécifique, vous devez utiliser l'option --user.

Par exemple, sur ma distribution Ubuntu, je crée un nouvel utilisateur "itconnect" :

sudo adduser itconnect

Ensuite, je peux lancer la distribution Linux avec cet utilisateur :

wsl --user itconnect --distribution Ubuntu

Que l'on peut raccourcir de cette façon :

wsl -u itconnect -d Ubuntu

Sur le même principe que précédemment, si vous ne précisez pas de distribution, Windows prendra la distribution par défaut. Une fois le shell ouvert, je peux vérifier quel utilisateur j'utilise (même si c'est précisé au tout début du prompt) :

whoami
Exemple : wsl -u itconnect -d Ubuntu

VIII. Eteindre une distribution Linux WSL

Puisqu'une distribution peut être démarrée ou arrêtée, et que l'on a vu comment démarrer une distribution, il me semble intéressant de voir comment éteindre.

Avant cela, une petite commande bonus pour lister les distributions en cours d'exécution :

wsl --list --running

Pour stopper une distribution spécifique, par exemple "Ubuntu" qui est en cours d'exécution, voici la commande à utiliser :

wsl --terminate Ubuntu

Que l'on peut raccourcir de cette façon :

wsl -t Ubuntu

Il  y a aussi une commande globale qui sert à stopper immédiatement toutes les distributions et la machine virtuelle WSL 2 :

wsl --shutdown

Elle est... comment dire... radicale ! 🙂

IX. Supprimer une distribution Linux WSL

Quand on installe une distribution WSL sur son poste, cela peut être pour un besoin ponctuel. D'ailleurs, c'est aussi l'intérêt de ce système. Du coup, si l'on n'utilise pas une distribution, autant la supprimer ! C'est aussi une façon de réinstaller une distribution.

Si l'on veut supprimer la distribution Ubuntu, on va exécuter la commande suivante :

wsl --unregister Ubuntu

Cette commande va supprimer la distribution, mais les sources vont rester sur votre machine. Si vous décidez d'utiliser de nouveau cette distribution, vous repartirez de zéro mais ce sera rapide à démarrer, car les sources sont déjà là !

C'est une commande que j'ai déjà utilisée plusieurs fois pour réinstaller une distribution. Une fois que la distribution est supprimée avec cette commande, on peut la démarrer via l'interface graphique : l'installation va démarrer. Par la suite, on pourra aussi installer des distributions avec la commande "wsl" mais pour le moment, c'est en version preview.

Exemple : wsl --unregister Ubuntu

X. Exporter une distribution Linux de WSL

WSL offre la possibilité d'exporter une distribution Linux, ce qui est particulièrement intéressant pour deux raisons :

  • Réaliser une sauvegarde en quelque sorte, avant d'effectuer une opération sensible sur la machine
  • Partager la distribution Linux préconfigurée avec une autre personne

Pour exporter une distribution WSL au format TAR, nous allons utiliser l'option --export. Prenons un exemple... Nous allons exporter la distribution "Ubuntu" vers le dossier "C:\TEMP\Ubuntu-Backup.tar" :

wsl --export Ubuntu "C:\TEMP\Ubuntu-Backup.tar"

L'opération est relativement rapide et nous permet d'obtenir une archive compressée au format TAR, avec le contenu de notre distribution. Le poids de l'archive quant à lui dépend du contenu de votre distribution, notamment de la quantité de paquets installés.

Exemple : wsl --export Ubuntu "C:\TEMP\Ubuntu-Backup.tar"

Il est à noter qu'une distribution exportée restera enregistrée sur votre machine, dans son état actuel. Elle n'est pas supprimée. Si vous souhaitez l'exporter puis la supprimer, vous devez utiliser la commande que l'on a vue précédemment pour cette seconde étape.

XI. Importer une distribution WSL sous Windows 10

Pour terminer, nous allons prendre la distribution Linux que l'on a exportée précédemment, et nous allons la réimporter.


Pour importer notre machine précédemment exportée, il va falloir spécifier trois informations : le nom de la machine, l'emplacement pour la stocker et le chemin vers le fichier TAR à importer.

wsl --import <nom-distribution> "<dossier-stockage>" "<chemin complet vers fichier .tar>"

Ce qui donne :

wsl --import Ubuntu "C:\TEMP\WSL\Ubuntu" "C:\TEMP\Ubuntu-Backup.tar"

Pensez à indiquer un chemin vers un dossier qui a le nom de la distribution, car la fonction d'import ne va pas créer un sous-dossier. Donc, vous allez obtenir un fichier VHDX (format WSL 2) avec un nom qui ne sera pas significatif du tout ("ext4.vhdx").

Si l'on essaie d'importer notre machine Ubuntu avec le même nom, nous avons un message d'erreur, car elle existe déjà. Ce qui est logique.

A distribution with the supplied name already exists.

Nous avons deux options : changer le nom (il y aura donc les deux machines Ubuntu utilisables), soit supprimer la machine actuelle et importer la nouvelle. Pour rappel, voici la commande pour supprimer :

wsl --unregister Ubuntu

Note : cette méthode basée sur un export et un import permet aussi de cloner facilement une distribution WSL !

Voilà, c'était la dernière astuce de l'article au sujet de Windows Subsystem for Linux ! J'espère que ces différentes commandes pourront vous aider au quotidien si vous aimez travailler avec WSL sous Windows 10 !

author avatar
Florian BURNEL Co-founder of IT-Connect
Ingénieur système et réseau, cofondateur d'IT-Connect et Microsoft MVP "Cloud and Datacenter Management". Je souhaite partager mon expérience et mes découvertes au travers de mes articles. Généraliste avec une attirance particulière pour les solutions Microsoft et le scripting. Bonne lecture.
Partagez cet article Partager sur Twitter Partager sur Facebook Partager sur Linkedin Envoyer par mail

2 commentaires sur “10 commandes pour maîtriser WSL sous Windows 10

  • Bonjour Florian,
    J’ai installé debian mais je ne peux pas le lancer, je suis bloqué à loirot@N15C4SL128:~$.
    Pouvez-vous m’aider ?
    Merci !

    Répondre

Laisser un commentaire

Votre adresse e-mail ne sera pas publiée. Les champs obligatoires sont indiqués avec *

Ce site utilise Akismet pour réduire les indésirables. En savoir plus sur comment les données de vos commentaires sont utilisées.