Comment mélanger et faire correspondre Windows et Linux avec WSL
Sommaire
Résumé
-
Vous pouvez accéder aux fichiers Linux et Windows via l'Explorateur Windows et les fenêtres du shell Linux WSL.
-
Vous pouvez exécuter des commandes Windows à partir de Linux en leur ajoutant simplement « .exe ».
-
Vous pouvez exécuter des commandes Linux à partir de Windows PowerShell à l'aide de la commande « wsl ».
Le sous-système Windows pour Linux, ou WSL, est un moyen d'exécuter des distributions Linux sous Windows sans double démarrage ni installation de machines virtuelles, mais sa véritable puissance vient de la possibilité de lancer des applications Windows et Linux simultanément.
Accéder aux fichiers Linux à partir de l'Explorateur Windows
Vous pouvez accéder aux fichiers de toutes les distributions Linux installées avec WSL dans l'Explorateur Windows. Regardez dans la barre latérale de gauche et vous verrez une icône de Tux, la mascotte Linux, puis cliquez sur le triangle pour le développer et voir toutes les distributions WSL que vous avez installées. Vous pourrez ensuite naviguer dans le système de fichiers Linux via l'Explorateur.
Vous pouvez également saisir « \wsl$ » dans l'Explorateur pour voir vos distributions. Vous pouvez également accéder directement à votre distribution en ajoutant un (barre oblique inverse) et le nom de la distribution. Par exemple, Ubuntu serait « \$wslubuntu ». Vous pouvez également spécifier noms de chemin de cette façon. N'oubliez pas de remplacer les barres obliques (/) par des barres obliques inverses, car c'est ainsi que Windows sépare les chemins.
Lorsque vous travaillez dans la ligne de commande WSL, vous pouvez ouvrir l'Explorateur dans le répertoire de travail actuel avec cette commande :
explorer.exe .
(Vous pouvez également le faire à partir de PowerShell, mais cela montre à quel point WSL et PowerShell interagissent).
Accéder aux fichiers Windows à partir de Linux
Vous pouvez également accéder aux fichiers Windows depuis le côté Linux de votre machine. La lettre des lecteurs sous Windows apparaîtra sous la forme /mnt/(lettre de lecteur) dans le système de fichiers Linux.
Par exemple, le lecteur « C: » sera monté sur « /mnt/c ». Le répertoire C:Windows serait « /mnt/c/Windows ».
Cela s'appliquera également à toutes les applications graphiques Linux que vous avez installées.
Exécuter des commandes Windows à partir de Linux
Pour exécuter des commandes Windows à partir de Linux, vous pouvez simplement les saisir à partir du terminal Linux et y ajouter « .exe ». Vous avez déjà vu un exemple avec Explorer plus tôt.
Vous pouvez également exécuter d'autres commandes. Si vous souhaitez ouvrir un fichier dans le Bloc-notes, vous pouvez taper cette commande :
notepad.exe file
Vous pouvez également exécuter des commandes Windows dans des pipelines Linux, en traitant le résultat des commandes Windows. Vous pouvez rechercher la sortie Windows avec la commande Linux grep.
Supposons que nous voulions trouver la mention de Windows dans une liste de répertoires de PowerShell :
powershell.exe dir "C:/" | grep 'Windows'
Si vous mélangez des commandes Windows et Linux, gardez à l'esprit que même si les commandes Windows ne sont pas sensibles à la casse, les commandes Linux sont sensibles à la casse. Cela signifie que les commandes Linux dépendent de la bonne combinaison de lettres majuscules et minuscules pour fonctionner correctement.
Lorsque vous exécutez des commandes Windows à partir de Linux, elles disposeront des mêmes autorisations Windows que le processus WSL et l'utilisateur actif. Si tu cours ls /mnt/cvous remarquerez que l'autorisation de répertorier des fichiers comme pagefile.sys, le fichier d'échange Windows, est refusée, car elle est généralement réservée aux utilisateurs administratifs. Si vous utilisez sudo, vous pourrez lister tous les fichiers, car le WSL disposera désormais de toutes les autorisations :
sudo ls /mnt/c
Exécuter des commandes Linux à partir de PowerShell
Vous pouvez également procéder dans l'autre sens en exécutant des commandes Linux à partir de Windows PowerShell. Vous pouvez le faire en utilisant la commande wsl suivie de toutes les commandes Linux que vous souhaitez exécuter.
Pour lister le répertoire « /bin » sous Linux :
wsl ls /bin
En passant de Windows à Linux, les processus auront les mêmes autorisations que la session qui a démarré la commande Linux. Par exemple, une commande émise par un utilisateur normal aura les mêmes autorisations, tandis qu'une commande émise avec sudo sera transmise au superutilisateur.
Exécution de programmes GUI Linux sous Windows
Avec WSL sur Windows 11, vous pouvez exécuter des programmes Linux GUI à partir de Windows. Il existe deux manières de procéder : depuis la ligne de commande ou depuis le menu Démarrer.
Pour lancer un programme GUI depuis le shell, vous pouvez simplement l'appeler depuis la ligne de commande. Pour exécuter GNU Emacs :
emacs
Un problème que vous remarquerez peut-être lorsque vous exécutez une commande de cette façon est qu’elle peut bloquer votre terminal. Vous ne recevrez pas votre invite à moins que vous ne fermiez le programme ou que vous ne le mettiez en arrière-plan. Pour lancer un programme en arrière-plan, ajoutez-y un & (esperluette) :
emacs &
Pour mettre un programme déjà en cours d'exécution en arrière-plan, utilisez les fonctions de contrôle des tâches du shell. Appuyez sur Ctrl+z pour suspendre le programme. C'est en minuscules, car les combinaisons de touches sont sensibles à la casse, comme le sont les commandes Linux. Le système imprimera un message avec le numéro de travail et un message indiquant que le processus est suspendu. Tapez ensuite cette commande pour la mettre en arrière-plan :
bg
Vous pouvez également accéder aux programmes GUI à partir du menu Démarrer. Toutes les distributions Linux apparaîtront sous forme de dossier dans le menu Démarrer si des programmes GUI sont installés. Par exemple, Ubuntu sera « Ubuntu ». Pour démarrer un programme, vous pouvez cliquer dessus pour le lancer comme vous le feriez avec un programme Windows classique.