Forum aux questions sur le sous-système Windows pour LinuxFrequently Asked Questions about Windows Subsystem for Linux

Qu’est-ce que le sous-système Windows pour Linux (WSL) ?What is Windows Subsystem for Linux (WSL)?

Le sous-système Windows pour Linux (WSL) est une nouvelle fonctionnalité Windows 10 qui vous permet d’exécuter des outils en ligne de commande Linux natifs directement sur Windows, parallèlement à vos applications Windows de bureau classiques et du Store modernes.The Windows Subsystem for Linux (WSL) is a new Windows 10 feature that enables you to run native Linux command-line tools directly on Windows, alongside your traditional Windows desktop and modern store apps.

Pour plus d’informations, consultez la page À propos de.See the about page for more details.

À qui WSL s’adresse-t-il ?Who is WSL for?

Il s’agit principalement d’un outil destiné aux développeurs, en particulier les développeurs web et ceux qui travaillent sur des projets open source ou les utilisent.This is primarily a tool for developers -- especially web developers and those who work on or with open source projects. Il permet à ceux qui souhaitent/doivent utiliser Bash, les outils Linux courants (sed, awk, etc.) et de nombreux premiers outils Linux (Ruby, Python, etc.) d’utiliser leur chaîne d’outils sur Windows.This allows those who want/need to use Bash, common Linux tools (sed, awk, etc.) and many Linux-first tools (Ruby, Python, etc.) to use their toolchain on Windows.

Qu’est-ce que WSL me permet de faire ?What can I do with WSL?

WSL fournit une application appelée Bash.exe qui, lorsqu’elle est démarrée, ouvre une console Windows exécutant l’interpréteur de commandes Bash.WSL provides an application called Bash.exe that, when started, opens a Windows console running the Bash shell. Bash vous permet d’exécuter des applications et des outils Linux en ligne de commande.Using Bash, you can run command-line Linux tools and apps. Par exemple, tapez lsb_release -a et appuyez sur Entrée ; vous verrez les détails de la distribution Linux en cours d’exécution :For example, type lsb_release -a and hit enter; you’ll see details of the Linux distro currently running:

Capture d’écran des détails de distribution

Vous pouvez également accéder au système de fichiers de votre ordinateur local à partir de l’interpréteur de commandes Bash Linux ; vous trouverez vos lecteurs locaux montés sous le dossier /mnt.You can also access your local machine’s filesystem from within the Linux Bash shell – you’ll find your local drives mounted under the /mnt folder. Par exemple, votre lecteur C: est monté sous /mnt/c :For example, your C: drive is mounted under /mnt/c:

Capture d’écran du lecteur C monté

Pouvez-vous décrire un workflow de développement typique qui incorpore WSL ?Could you describe a typical development workflow that incorporates WSL?

WSL cible une audience de développeur avec l’intention d’être utilisé dans le cadre d’une boucle de développement interne.WSL targets a developer audience with the intent to be used as part of an inner development loop. Supposons que Sam crée un pipeline CI/CD (intégration continue et livraison continue) et qu’il souhaite le tester d’abord sur un ordinateur local (portable) avant de le déployer dans le cloud.Let's say that Sam is creating a CI/CD pipeline (Continuous Integration & Continuous Delivery) and wants to test it first on a local machine (laptop) before deploying it to the cloud. Sam peut activer WSL (et WSL 2 pour améliorer la vitesse et les performances), puis utiliser une vraie instance Linux Ubuntu en local (sur l’ordinateur portable) avec les commandes et les outils Bash qu’ils préfèrent.Sam can enable WSL (& WSL 2 to improve speed and performance), and then use a genuine Linux Ubuntu instance locally (on the laptop) with whatever Bash commands and tools they prefer. Une fois le pipeline de développement vérifié localement, Sam peut alors envoyer (push) ce pipeline CI/CD vers le cloud (par ex. Azure) en le plaçant dans un conteneur Docker et en envoyant le conteneur à une instance cloud où il s’exécutera sur une machine virtuelle Ubuntu prête pour la production.Once the development pipeline is verified locally, Sam can then push that CI/CD pipeline up to the cloud (ie Azure) by making it into a Docker container and pushing the container to a cloud instance where it runs on a production-ready Ubuntu VM.

Qu’est-ce que Bash ?What is Bash?

Bash est un interpréteur de commandes texte et un langage de commandes connues.Bash is a popular text-based shell and command-language. Il s’agit de l’interpréteur de commandes par défaut inclus dans Ubuntu et d’autres distributions Linux ainsi que dans macOS.It is the default shell included within Ubuntu and other Linux distros, and in macOS. Les utilisateurs tapent des commandes dans un interpréteur de commandes pour exécuter des scripts et/ou des commandes et des outils pour accomplir de nombreuses tâches.Users type commands into a shell to execute scripts and/or run commands and tools to accomplish many tasks.

Comment cela fonctionne ?How does this work?

Consultez notre blog pour en savoir plus sur la technologie sous-jacente.Check out our blog where we go into detail about the underlying technology.

Pourquoi utiliser WSL plutôt que Linux dans une machine virtuelle ?Why would I use WSL rather than Linux in a VM?

WSL demande moins de ressources (processeur, mémoire et stockage) qu’une machine virtuelle complète.WSL requires fewer resources (CPU, memory, and storage) than a full virtual machine. WSL vous permet également d’exécuter des applications et des outils en ligne de commande Linux avec vos applications Windows en ligne de commande, de bureau et du Store, et d’accéder à vos fichiers Windows à partir de Linux.WSL also allows you to run Linux command-line tools and apps alongside your Windows command-line, desktop and store apps, and to access your Windows files from within Linux. Cela vous permet d’utiliser des applications Windows et des outils en ligne de commande Linux sur le même ensemble de fichiers si vous le souhaitez.This enables you to use Windows apps and Linux command-line tools on the same set of files if you wish.

Pourquoi utiliser, par exemple, Ruby sur Linux plutôt que sur Windows ?Why would I use, for example, Ruby on Linux instead of on Windows?

Certains outils multiplateformes ont été créés en supposant que l’environnement dans lequel ils s’exécutent se comporte comme Linux.Some cross-platform tools were built assuming that the environment in which they run behaves like Linux. Par exemple, certains outils partent du principe qu’ils sont en mesure d’accéder à des chemins de fichiers très longs ou que des fichiers/dossiers spécifiques existent.For example, some tools assume that they are able to access very long file paths or that specific files/folders exist. Cela provoque parfois des problèmes sur Windows qui se comporte souvent différemment de Linux.This often causes problems on Windows which often behaves differently from Linux.

De nombreux langages comme Ruby et Node sont souvent portés sur Windows et s’y exécutent très bien.Many languages like Ruby and node are often ported to, and run great, on Windows. Toutefois, les propriétaires de bibliothèques Ruby Gem ou Node/NPM ne portent pas tous leurs bibliothèques pour la prise en charge de Windows, et beaucoup ont des dépendances spécifiques à Linux.However, not all of the Ruby Gem or node/NPM library owners port their libraries to support Windows, and many have Linux-specific dependencies. Cela peut souvent aboutir à des systèmes créés à l’aide de ces outils et bibliothèques qui font l’objet d’erreurs de build et parfois d’exécution ou de comportements indésirables sur Windows.This can often result in systems built using such tools and libraries suffering from build and sometimes runtime errors or unwanted behaviors on Windows.

Il s’agit là de quelques-uns des problèmes qui ont conduit de nombreuses personnes à demander à Microsoft d’améliorer les outils en ligne de commande Windows et ce qui nous a amené à collaborer avec Canonical pour permettre aux outils en ligne de commande Linux et Bash natifs de s’exécuter sur Windows.These are just some of issues that caused many people to ask Microsoft to improve Windows’ command-line tools and what drove us to partner with Canonical to enable native Bash and Linux command-line tools to run on Windows.

Qu’est-ce que cela signifie pour PowerShell ?What does this mean for PowerShell?

Lors de l’utilisation de projets OSS, il existe de nombreux scénarios dans lesquels il est très utile de passer à Bash à partir d’une invite PowerShell.While working with OSS projects, there are numerous scenarios where it’s immensely useful to drop into Bash from a PowerShell prompt. La prise en charge de Bash est complémentaire et valorise davantage la ligne de commande sur Windows, ce qui permet à PowerShell et à la communauté PowerShell de tirer parti d’autres technologies répandues.Bash support is complementary and strengthens the value of the command-line on Windows, allowing PowerShell and the PowerShell community to leverage other popular technologies.

Pour en savoir plus, accédez au blog de l’équipe PowerShell : Bash for Windows: Why it’s awesome and what it means for PowerShellRead more on the PowerShell team blog -- Bash for Windows: Why it’s awesome and what it means for PowerShell

Puis-je exécuter TOUTES les applications Linux dans WSL ?Can I run ALL Linux apps in WSL?

Non !No! WSL est un outil destiné à permettre aux utilisateurs qui en ont besoin d’exécuter les principaux outils en ligne de commande Linux et Bash sur Windows.WSL is a tool aimed at enabling users who need them to run Bash and core Linux command-line tools on Windows.

WSL n’a pas pour but de prendre en charge les applications ou les ordinateurs de bureau GUI (par exemple, GNOME, KDE, etc.)WSL does not aim to support GUI desktops or applications (e.g. Gnome, KDE, etc.)

De plus, même si vous pouvez exécuter de nombreuses applications serveur connues (par exemple, Redis), nous vous déconseillons WSL pour l’hébergement des services de production. Microsoft propose diverses solutions pour l’exécution des charges de travail Linux de production dans Azure, Hyper-V et Docker.Also, even though you will be able to run many popular server applications (e.g. Redis), we do not recommend WSL for hosting production services – Microsoft offers a variety of solutions for running production Linux workloads in Azure, Hyper-V, and Docker.

Dans quelles références SKU se trouve Windows WSL ?What Windows SKUs is WSL included in?

Le sous-système Windows pour Linux est disponible sur la version bureau de Windows pour Mise à jour anniversaire Windows 10 et Windows 10 Creators Update ou version ultérieure.Windows Subsystem for Linux is available on the desktop version of Windows for Windows 10 Anniversary and Creators update or later.

À partir de Fall Creators Update, WSL sera disponible à la fois sur les références SKU bureau et serveur de Windows.Beginning in the Fall Creators update WSL will be available on both the desktop and server SKUs of Windows.

Quels sont les processeurs pris en charge par WSL ?What processors does WSL support?

WSL prend en charge les processeurs x64 et ARM.WSL supports x64 and ARM CPUs.

Comment accéder à mon lecteur C: ?How do I access my C: drive?

Des points de montage pour les disques durs sur l’ordinateur local sont créés automatiquement et offrent un accès facile au système de fichiers Windows.Mount points for hard drives on the local machine are automatically created and provide easy access to the Windows filesystem.

/mnt/<drive letter>//mnt/<drive letter>/

Un exemple d’utilisation serait cd /mnt/c pour accéder à c:Example usage would be cd /mnt/c to access c:\

Comment configurer Git Credential Manager ?How do I set up Git Credential Manager? (Comment utiliser mes autorisations Windows Git dans WSL ?)(How do I use my Windows Git permissions in WSL?)

Git Credential Manager vous permet d’authentifier un serveur Git distant, même si vous disposez d’un modèle d’authentification complexe comme Azure Active Directory ou une authentification à deux facteurs.Git Credential Manager enables you to authenticate a remote Git server, even if you have a complex authentication pattern like Azure Active Directory or two-factor authentication. Git Credential Manager s’intègre au flux d’authentification des services tels que GitHub et, une fois que vous êtes authentifié auprès de votre fournisseur d’hébergement, demande un nouveau jeton d’authentification.Git Credential Manager integrates into the authentication flow for services like GitHub and, once you're authenticated to your hosting provider, requests a new authentication token. Il stocke ensuite le jeton de façon sécurisée dans le gestionnaire d’informations d’identification Windows.It then stores the token securely in the Windows Credential Manager. Après la première fois, vous pouvez utiliser Git pour communiquer avec votre fournisseur d’hébergement sans avoir à vous réauthentifier.After the first time, you can use git to talk to your hosting provider without needing to re-authenticate. Il accède simplement au jeton dans le gestionnaire d’informations d’identification Windows.It will just access the token in the Windows Credential Manager.

Pour configurer Git Credential Manager en vue de l’utiliser avec une distribution WSL, ouvrez votre distribution et entrez cette commande :To set up Git Credential Manager for use with a WSL distribution, open your distribution and enter this command:

git config --global credential.helper "/mnt/c/Program\ Files/Git/mingw64/libexec/git-core/git-credential-manager.exe"

À présent, toute opération git que vous effectuez dans votre distribution WSL utilise le gestionnaire d’informations d’identification.Now any git operation you perform within your WSL distribution will use the credential manager. Si vous avez déjà mis en cache les informations d’identification d’un hôte, celui-ci y accède à partir du gestionnaire d’informations d’identification.If you already have credentials cached for a host, it will access them from the credential manager. Si ce n’est pas le cas, vous recevez une réponse de boîte de dialogue demandant vos informations d’identification, même si vous êtes dans une console Linux.If not, you'll receive a dialog response requesting your credentials, even if you're in a Linux console.

Cette prise en charge s’appuie sur l’interopérabilité entre le sous-système Windows pour Linux et Windows lui-même.This support relies on the interoperability between Windows Subsystem for Linux and Windows itself.

Comment utiliser un fichier Windows avec une application Linux ?How do I use a Windows file with a Linux app?

L’un des avantages de WSL est la possibilité d’accéder à vos fichiers via des applications ou des outils Windows et Linux.One of the benefits of WSL is being able to access your files via both Windows and Linux apps or tools.

WSL monte les lecteurs fixes de votre ordinateur sous le dossier /mnt/<drive> de vos distributions Linux.WSL mounts your machine's fixed drives under the /mnt/<drive> folder in your Linux distros. Par exemple, votre lecteur C: est monté sous /mnt/c/For example, your C: drive is mounted under /mnt/c/

À l’aide de vos lecteurs montés, vous pouvez modifier le code dans, par exemple, C:\dev\myproj\ à l’aide de Visual Studio /ou VS Code et générer/tester ce code dans Linux en accédant aux mêmes fichiers via /mnt/c/dev/myproj.Using your mounted drives, you can edit code in, for example, C:\dev\myproj\ using Visual Studio / or VS Code, and build/test that code in Linux by accessing the same files via /mnt/c/dev/myproj.

REMARQUE IMPORTANTE : L’une des principales limitations de l’utilisation de WSL est que l’accès direct aux fichiers ou leur modification dans le système de fichiers des distributions Linux à l’aide d’applications ou d’outils Windows n’est pas pris en charge.IMPORTANT NOTE: One of the key limitations of using WSL is that directly accessing/changing files in your Linux distros' filesystem using Windows apps or tools is not supported. Voir : Do not change Linux files using Windows apps and toolsSee: Do not change Linux files using Windows apps and tools

Les fichiers du lecteur Linux sont-ils différents du lecteur Windows monté ?Are files in the Linux drive different from the mounted Windows drive?

  1. Les fichiers sous la racine Linux (autrement dit, /) sont contrôlés par WSL, ce qui reproduit le comportement spécifique de Linux, notamment mais sans s’y limiter :Files under the Linux root (i.e. /) are controlled by WSL which mimics Linux specific behavior, including but not limited to:

    • Fichiers qui contiennent des caractères de nom de fichier Windows non validesFiles which contain invalid Windows filename characters
    • Liens symboliques créés pour les utilisateurs non-administrateursSymlinks created for non-admin users
    • Changement des attributs de fichier via chmod et chownChanging file attributes through chmod and chown
    • Respect de la casse des fichiers/dossiersFile/folder case sensitivity
  2. Les fichiers des lecteurs montés sont contrôlés par Windows et présentent les comportements suivants :Files in mounted drives are controlled by Windows and have the following behaviors:

    • Prise en charge du respect de la casseSupport case sensitivity
    • Toutes les autorisations sont définies pour mieux refléter les autorisations WindowsAll permissions are set to best reflect the Windows permissions

Pourquoi autant d’erreurs sont retournées quand j’exécute apt-get upgrade ?Why are there so many errors when I run apt-get upgrade?

Certains packages utilisent des fonctionnalités que nous n’avons pas encore implémentées.Some packages use features that we haven't implemented yet. udev, par exemple, n’est pas encore pris en charge et provoque plusieurs erreurs avec apt-get upgrade.udev, for example, isn't supported yet and causes several apt-get upgrade errors.

Pour résoudre les problèmes liés à udev, procédez comme suit :To fix issues related to udev, follow the following steps:

  1. Écrivez le code suivant dans /usr/sbin/policy-rc.d et enregistrez vos modifications.Write the following to /usr/sbin/policy-rc.d and save your changes.

    #!/bin/sh
    exit 101
    
  2. Ajoutez des autorisations d’exécution à /usr/sbin/policy-rc.dAdd execute permissions to /usr/sbin/policy-rc.d

    chmod +x /usr/sbin/policy-rc.d
    
  3. Exécutez les commandes suivantesRun the following commands

    dpkg-divert --local --rename --add /sbin/initctl
    ln -s /bin/true /sbin/initctl
    

Comment désinstaller une distribution WSL ?How do I uninstall a WSL Distribution?

Sur les builds antérieures à 1709 (16299), ouvrez une invite de commandes et exécutez :On builds prior to 1709 (16299) open a command prompt and run:

lxrun /uninstall /full

Les distributions WSL installées à partir du Store peuvent être désinstallées comme n’importe quelle autre application Windows, en cliquant avec le bouton droit sur la vignette de l’application et en cliquant sur Désinstaller ou via PowerShell à l’aide de l’Remove-AppxPackageapplet de commande .WSL distributions installed from the store can be uninstalled like any other Windows app, by right-clicking on the app tile and clicking Uninstall, or via PowerShell using the Remove-AppxPackage cmdlet.

Pourquoi la commande ping génère des erreurs d’autorisation refusée ?Why does ping generate permission denied errors?

Dans les builds WSL antérieures à 14926, l’exécution de la commande ping via une console avec élévation de privilèges nécessitait WSL.In WSL builds < 14926, ping required WSL to run via an elevated Console. Ce problème a été résolu dans la build 14926 et ultérieur.This issue was fixed in Build 14926 and later.

Comment exécuter un serveur OpenSSH ?How do I run an OpenSSH server?

L’exécution d’un serveur OpenSSH dans WSL nécessite des privilèges d’administrateur dans Windows.Administrator privileges in Windows are required to run OpenSSH in WSL. Pour exécuter un serveur OpenSSH, exécutez Bash sur Ubuntu sur Windows en tant qu’administrateur, ou exécutez bash.exe à partir d’une invite de commandes CMD/PowerShell avec des privilèges d’administrateur.To run an OpenSSH server, run Bash on Ubuntu on Windows as an administrator, or run bash.exe from a CMD/PowerShell prompt with administrator privileges.

Pourquoi est-ce que je reçois « Erreur : 0x80040306 » pendant l’installation ?Why do I get "Error: 0x80040306" when I try to install?

WSL ne prend pas en charge l’exécution dans une console héritée.WSL does not support running in a legacy console. Pour désactiver la console héritée :To turn off legacy console:

  1. Ouvrez WSL, PowerShell ou CmdOpen WSL, PowerShell, or Cmd
  2. Cliquez avec le bouton droit sur la barre de titre, sélectionnez Propriétés, puis décochez Utiliser la console héritéeRight click title bar -> Properties -> Uncheck "Use legacy console"
  3. Cliquez sur OKClick OK

Pourquoi est-ce que je reçois « Erreur : 0x80040154 » quand j’exécute bash.exe après la mise à niveau de Windows ?Why do I get "Error: 0x80040154" when I run bash.exe after upgrading Windows?

La fonctionnalité Sous-système Windows pour Linux peut être désactivée au cours d’une mise à jour de Windows.The "Windows Subsystem for Linux" feature may be disabled during a Windows update. Dans ce cas, la fonctionnalité Windows doit être réactivée.If this happens the Windows feature must be re-enabled. Pour obtenir des instructions sur l’activation de la fonctionnalité Sous-système Windows pour Linux, consultez le guide d’installation.Instructions for enabling the "Windows Subsystem for Linux" feature can be found in the Installation Guide.

Comment changer la langue d’affichage de WSL ?How do I change the display language of WSL?

Le processus d’installation de WSL tente de changer automatiquement les paramètres régionaux d’Ubuntu de sorte qu’ils correspondent à ceux de votre installation Windows.WSL install will try to automatically change the Ubuntu locale to match the locale of your Windows install. Si vous souhaitez éviter ce comportement, vous pouvez exécuter cette commande pour changer les paramètres régionaux d’Ubuntu une fois l’installation terminée.If you do not want this behavior you can run this command to change the Ubuntu locale after install completes. Vous devrez relancer bash.exe pour que ce changement prenne effet.You will have to relaunch bash.exe for this change to take effect.

L’exemple ci-dessous applique les paramètres régionaux en-US :The below example changes to locale to en-US:

sudo update-locale LANG=en_US.UTF8

Pourquoi est-ce que je n’ai pas d’accès Internet à partir de WSL ?Why do I not have internet access from WSL?

Des utilisateurs ont signalé des problèmes posés par certaines applications de pare-feu, qui bloquent l’accès Internet dans WSL.Some users have reported issues with specific firewall applications blocking internet access in WSL. Les pare-feux signalés sont :The firewalls reported are:

  1. KasperskyKaspersky
  2. AVGAVG
  3. AvastAvast

Dans certains cas, la désactivation du pare-feu permet d’obtenir l’accès.In some cases turning off the firewall allows for access. Parfois, il semble que la simple installation du pare-feu bloque l’accès.In some cases simply having the firewall installed looks to block access.

Comment accéder à un port à partir de WSL dans Windows ?How do I access a port from WSL in Windows?

WSL partage l’adresse IP de Windows, car il s’exécute sur Windows.WSL shares the IP address of Windows, as it is running on Windows. Par conséquent, vous pouvez accéder à n’importe quel port sur localhost ; par exemple, si vous avez du contenu web sur le port 1234, vous pouvez utiliser https://localhost:1234 dans votre navigateur Windows.As such you can access any ports on localhost e.g. if you had web content on port 1234 you could https://localhost:1234 into your Windows browser.

Comment sauvegarder mes distributions WSL ou les déplacer d’un lecteur à un autre ?How can I back up my WSL distros, or move them from one drive to another?

La meilleure façon de sauvegarder ou de déplacer vos distributions consiste à utiliser les commandes d’exportation/importation disponibles dans Windows version 1809 et ultérieure.The best way to backup or move your distros is via the export/import commands available in Windows Version 1809 and later. Vous pouvez exporter l’intégralité de votre distribution vers un tarball à l’aide de la commande wsl --export.You can export your entire distribution to a tarball using the wsl --export command. Vous pouvez ensuite réimporter cette distribution dans WSL à l’aide de la commande wsl --import, ce qui peut nommer un nouvel emplacement de lecteur pour l’importation. Vous pouvez ainsi sauvegarder et enregistrer les états de vos distributions WSL, ou déplacer ces dernières.You can then import this distro back into WSL using the wsl --import command, which can name a new drive location for the import, allowing you to backup and save states of (or move) your WSL distributions.

Notez que les services de sauvegarde classiques qui sauvegardent les fichiers dans vos dossiers Appdata (comme la sauvegarde Windows) n’endommageront pas vos fichiers Linux.Please note that traditional backup services that backup files in your Appdata folders (like Windows Backup) will not corrupt your Linux files.

Où puis-je envoyer des commentaires ?Where can I provide feedback?

Vous pouvez partager vos commentaires et poser vos questions via plusieurs canaux.You can share feedback and ask questions through multiple channels.

Si vous rencontrez des problèmes techniques ou si vous voulez demander de nouvelles fonctionnalités, accédez à notre suivi des problèmes Github :If you have technical issues, or want to request new features please go to our Github issue tracker:

Si vous voulez rester informé des dernières informations sur WSL, vous pouvez le faire sur :If you'd like to stay up to date with the latest WSL news you can do so with: