Notes
L’accès à cette page nécessite une autorisation. Vous pouvez essayer de vous connecter ou de modifier des répertoires.
L’accès à cette page nécessite une autorisation. Vous pouvez essayer de modifier des répertoires.
Il existe un certain nombre de considérations à prendre en compte lors de l’utilisation entre les systèmes de fichiers Windows et Linux. Nous avons décrit quelques-uns d’entre eux dans ce guide, y compris quelques exemples de prise en charge de l’interopérabilité pour combiner des commandes Windows et Linux.
Stockage et performances des fichiers sur les systèmes de fichiers
Nous vous recommandons de ne pas travailler sur plusieurs systèmes d’exploitation avec vos fichiers, sauf si vous avez une raison spécifique de le faire. Pour accélérer les performances, stockez vos fichiers dans le système de fichiers WSL si vous travaillez dans une ligne de commande Linux (Ubuntu, OpenSUSE, etc.). Si vous travaillez dans une ligne de commande Windows (PowerShell, Invite de commandes), stockez vos fichiers dans le système de fichiers Windows.
Par exemple, lors du stockage de vos fichiers projet WSL :
- Utilisez le répertoire racine du système de fichiers Linux :
/home/<user name>/Project
- Pas le répertoire racine du système de fichiers Windows :
/mnt/c/Users/<user name>/Project$
ouC:\Users\<user name>\Project
Lorsque vous voyez /mnt/
dans le chemin d’accès au fichier d’une ligne de commande WSL, cela signifie que vous travaillez à partir d’un lecteur monté. Par conséquent, le lecteur C :/ du système de fichiers Windows (C:\Users\<user name>\Project
) ressemblera à ceci lorsqu’il est monté dans une ligne de commande WSL : /mnt/c/Users/<user name>/Project$
. Il est possible de stocker vos fichiers projet sur un lecteur monté, mais votre vitesse de performance s’améliore si vous les stockez directement sur le \\wsl$
lecteur.
Afficher votre répertoire actif dans l’Explorateur de fichiers Windows
Vous pouvez afficher le répertoire dans lequel vos fichiers sont stockés en ouvrant l’Explorateur de fichiers Windows à partir de la ligne de commande, à l’aide de :
explorer.exe .
Vous pouvez également utiliser la commande : powershell.exe /c start .
veillez à ajouter la période à la fin de la commande pour ouvrir le répertoire actif.
Pour afficher toutes vos distributions Linux disponibles et leurs systèmes de fichiers racines dans l’Explorateur de fichiers Windows, dans la barre d’adresses, entrez : \\wsl$
Sensibilité aux majuscules et minuscules des noms de fichiers et des répertoires
La sensibilité de la casse détermine si les lettres majuscules (FOO.txt) et minuscules (foo.txt) sont traitées comme distinctes (prenant en compte la casse) ou équivalentes (sans tenir compte de la casse) dans un nom de fichier ou un répertoire. Les systèmes de fichiers Windows et Linux gèrent la sensibilité de la casse de différentes manières : Windows est insensible à la casse et Linux est sensible à la casse. Apprenez-en davantage sur l’ajustement de la sensibilité de la casse, en particulier lors du montage de disques avec WSL, dans l’article Ajuster la sensibilité de la casse .
Interopérabilité entre les commandes Windows et Linux
Les outils et commandes Windows et Linux peuvent être utilisés de manière interchangeable avec WSL.
- Exécutez les outils Windows (par exemple, notepad.exe) à partir d’une ligne de commande Linux (par exemple. Ubuntu).
- Exécutez des outils Linux (par exemple, grep) à partir d’une ligne de commande Windows (par exemple. PowerShell).
- Partagez des variables d’environnement entre Linux et Windows. (Build 17063+)
Exécuter des outils Linux à partir d’une ligne de commande Windows
Exécutez des fichiers binaires Linux à partir de l’invite de commandes Windows (CMD) ou de PowerShell à l’aide wsl <command>
(ou wsl.exe <command>
).
Par exemple:
C:\temp> wsl ls -la
<- contents of C:\temp ->
Les fichiers binaires appelés de cette façon :
- Utilisez le même répertoire de travail que l’invite actuelle du CMD ou de PowerShell.
- Exécutez en tant qu’utilisateur WSL par défaut.
- Disposez des mêmes droits d’administration Windows que le processus d’appel et le terminal.
La commande Linux suivante wsl
(ou wsl.exe
) est gérée comme n’importe quelle exécution de commande dans WSL. Les éléments tels que sudo, piping et redirection de fichiers fonctionnent.
Exemple utilisant sudo pour mettre à jour votre distribution Linux par défaut :
C:\temp> wsl sudo apt-get update
Votre nom d’utilisateur de distribution Linux par défaut est répertorié après avoir exécuté cette commande et vous êtes invité à indiquer votre mot de passe. Après avoir entré correctement votre mot de passe, votre distribution télécharge les mises à jour.
Mélange de commandes Linux et Windows
Voici quelques exemples de mélange de commandes Linux et Windows à l’aide de PowerShell.
Pour utiliser la commande ls -la
Linux pour répertorier les fichiers et la commande findstr
PowerShell pour filtrer les résultats des mots contenant « git », combinez les commandes :
wsl ls -la | findstr "git"
Pour utiliser la commande dir
PowerShell pour répertorier les fichiers et la commande grep
Linux pour filtrer les résultats des mots contenant « git », combinez les commandes :
C:\temp> dir | wsl grep git
Pour utiliser la commande ls -la
Linux pour répertorier les fichiers et la commande > out.txt
PowerShell pour imprimer cette liste dans un fichier texte nommé «out.txt», combinez les commandes :
C:\temp> wsl ls -la > out.txt
Les commandes passées dans wsl.exe
sont transférées au processus WSL sans modification. Les chemins d’accès aux fichiers doivent être spécifiés au format WSL.
Pour utiliser la commande ls -la
Linux pour répertorier les fichiers dans le chemin du système de fichiers Linux, à l’aide /proc/cpuinfo
de PowerShell :
C:\temp> wsl ls -la /proc/cpuinfo
Pour utiliser la commande ls -la
Linux pour répertorier les fichiers dans le chemin du système de fichiers Windows, à l’aide C:\Program Files
de PowerShell :
C:\temp> wsl ls -la "/mnt/c/Program Files"
Exécuter des outils Windows à partir de Linux
WSL peut exécuter des outils Windows directement à partir de la ligne de commande WSL en utilisant [tool-name].exe
. Par exemple : notepad.exe
.
Les applications s’exécutent de cette façon ont les propriétés suivantes :
- Conservez le répertoire de travail comme invite de commandes WSL (pour la plupart- les exceptions sont expliquées ci-dessous).
- Disposez des mêmes droits d’autorisation que le processus WSL.
- Exécutez en tant qu’utilisateur Windows actif.
- Apparaissent dans le Gestionnaire de tâches Windows comme s’ils sont exécutés directement à partir de l’invite CMD.
Les exécutables Windows exécutés dans WSL sont gérés de la même façon que les exécutables Linux natifs : piping, redirections et même travail d’arrière-plan comme prévu.
Pour exécuter l’outil Windows ipconfig.exe
, utilisez l’outil Linux grep
pour filtrer les résultats « IPv4 » et l’outil Linux cut
pour supprimer les champs de colonne ; sur une distribution Linux (par exemple, Ubuntu), entrez la commande suivante :
ipconfig.exe | grep IPv4 | cut -d: -f2
Essayons un exemple de combinaison de commandes Windows et Linux. Ouvrez votre distribution Linux (par exemple. Ubuntu) et créez un fichier texte : touch foo.txt
. Utilisez maintenant la commande ls -la
Linux pour répertorier les fichiers directs et leurs détails de création, ainsi que l’outil findstr.exe
Windows PowerShell pour filtrer les résultats afin que seul votre foo.txt
fichier s’affiche dans les résultats :
ls -la | findstr.exe foo.txt
Les outils Windows doivent inclure l’extension de fichier, correspondre au cas du fichier et être exécutables. Non exécutables, y compris les scripts de traitement par lots. Les commandes natives CMD comme dir
peuvent être exécutées avec cmd.exe /C
la commande.
Par exemple, répertoriez le contenu de votre répertoire C :\ du système de fichiers Windows en entrant :
cmd.exe /C dir
Vous pouvez également utiliser la ping
commande pour envoyer une demande d’écho au site web microsoft.com :
ping.exe www.microsoft.com
Les paramètres sont passés au fichier binaire Windows non modifié. Par exemple, la commande suivante s’ouvre C:\temp\foo.txt
dans notepad.exe
:
notepad.exe "C:\temp\foo.txt"
Cela fonctionnera également :
notepad.exe C:\\temp\\foo.txt
Partager des variables d’environnement entre Windows et WSL avec WSLENV
WSL et Windows partagent une variable d’environnement spéciale, WSLENV
créée pour ponter les distributions Windows et Linux s’exécutant sur WSL.
Propriétés de WSLENV
variable :
- Il est partagé ; il existe dans les environnements Windows et WSL.
- Il s’agit d’une liste de variables d’environnement à partager entre Windows et WSL.
- Il peut mettre en forme des variables d’environnement pour fonctionner correctement dans Windows et WSL.
- Il peut vous aider dans le flux entre WSL et Win32.
Remarque
Avant la version 17063, seule la variable d’environnement Windows accessible par WSL était PATH
(vous pouviez donc lancer des exécutables Win32 à partir de WSL). À compter de 17063, WSLENV
commence à être pris en charge.
WSLENV respecte la casse.
Indicateurs WSLENV
Il existe quatre options disponibles dans WSLENV
pour influencer la façon dont la variable d’environnement est traduite.
WSLENV
Drapeaux:
-
/p
- traduit le chemin entre les chemins de style WSL/Linux et les chemins Win32. -
/l
: indique que la variable d’environnement est une liste de chemins d’accès. -
/u
- indique que cette variable d’environnement ne doit être incluse que lors de l’exécution de WSL à partir de Win32. -
/w
- indique que cette variable d’environnement ne doit être incluse que lors de l’exécution de Win32 à partir de WSL.
Les drapeaux peuvent être combinés en fonction des besoins.
Pour en savoir plus sur WSLENV, y compris la FAQ et les exemples de définition de la valeur de WSLENV sur une concaténation d’autres variables d'environnement prédéfinies, chacune suffixée par une barre oblique suivie d’indicateurs pour spécifier la manière dont la valeur doit être traduite et le passage des variables avec un script. Cet article inclut également un exemple de configuration d’un environnement de développement avec le langage de programmation Go, configuré pour partager un GOPATH entre WSL et Win32.
Désactiver l’interopérabilité
Les utilisateurs peuvent désactiver la possibilité d’exécuter des outils Windows pour une seule session WSL en exécutant la commande suivante en tant que racine :
echo 0 > /proc/sys/fs/binfmt_misc/WSLInterop
Pour réactiver les fichiers binaires Windows, quittez toutes les sessions WSL et réexécutez bash.exe ou exécutez la commande suivante en tant que racine :
echo 1 > /proc/sys/fs/binfmt_misc/WSLInterop
La désactivation de l’interopérabilité n’est pas persistante entre les sessions WSL . L’interopérabilité est à nouveau activée lors du lancement d’une nouvelle session.
Windows Subsystem for Linux