Lorsque je lance bash
sur un sous-système Windows pour Linux, il me dépose dans le répertoire
/mnt/c/Users/<username>
Lorsque je ls
de ce répertoire, je vois les répertoires Desktop
, Documents
, etc. que je peux voir se trouvent dans C:\Users\<username>
à l'aide de l'explorateur de fichiers Windows. Comme c’est là que le programme bash
a commencé, j’espérais que ce serait mon répertoire personnel, mais lorsque je tape soit cd
ou cd ~
, je suis amené à
/home/<username>
qui contient mon fichier .bashrc
, .profile
etc. que je m'attendrais à trouver dans mon répertoire personnel dans une machine Linux. De plus, en entrant cd ../..
à partir de là, je peux voir les répertoires bin
, etc
et ainsi de suite, toujours comme prévu sur une machine Linux.
J'ai deux questions concernant tout cela:
/mnt/c/Users/<username>
par rapport à C:\Users\<username>
? Il semble qu'ils soient un dans le même --- alors qu'est-ce que /mnt/c/
?/home/<username>
à l'aide de l'explorateur de fichiers Windows? Je ne voudrais pas vraiment jamais… J'essaie simplement de comprendre comment Windows organise ce sous-système pour Linux.Pour 2: le chemin actuel est maintenant lié à la distribution que vous avez installée à partir du Microsoft Store plutôt qu'à un seul chemin global. Donc, pour Ubuntu, il est maintenant situé à:
%LOCALAPPDATA%\Packages\CanonicalGroupLimited.UbuntuonWindows_79rhkp1fndgsc\LocalState\rootfs
Je suppose que les autres distributions seront dans un emplacement similaire sous leurs dossiers respectifs sous:
%LOCALAPPDATA%\Packages\
/mnt/c
est exactement le même que C:\
. C'est juste la syntaxe pour y accéder depuis WSL.C:\Users\<username>\AppData\Local\Lxss\rootfs
. À propos du système de fichiers monté sur /mnt/c
- Qu'est-ce exactement que/mnt/c/Users/comparé à C:\Users \? Il semble qu'ils soient un dans le même --- alors qu'est-ce que/mnt/c /?
Contrairement à Windows, Linux (et les autres systèmes basés sur Unix) utilise une structure de dossier unique, indépendante du nombre de disques que vous avez. Si vous avez plusieurs disques, vous devez tous monter dans la structure de dossiers à un moment donné.
/mnt
ou /media
WSL a un type spécial de système de fichiers nommé DrvFS qui vous donne accès aux disques utilisés dans Windows. Vous pouvez utiliser DrvFS pour monter, non seulement votre système de fichiers Windows, mais également des disques réseau et d'autres types de supports.
C:
de Windows est monté sous /mnt/c
D:
dans Windows, il sera monté sous /mnt/d
Les fichiers que vous pouvez voir dans /mnt/c
sont identiques à ceux que vous avez dans C:
. Si vous modifiez un fichier, vous obtiendrez également les modifications dans les fenêtres.
Vous pouvez utilisez la commande mount
pour accéder à d'autres types de supports (par exemple, des lecteurs amovibles ou des partages réseau).
À propos de l'emplacement de /home/<username>
- Comment afficher les fichiers dans/home/à l'aide de l'explorateur de fichiers Windows? Je ne voudrais pas vraiment jamais… J'essaie simplement de comprendre comment Windows organise ce sous-système pour Linux.
En WSL, tout le système de fichiers linux est situé dans un dossier Windows. L'emplacement du dossier dépend de la version de Windows et de la distribution WSL que vous utilisez.
%LOCALAPPDATA%\Lxss\rootfs
%LOCALAPPDATA%\Packages\...\LocalState\rootfs
. Le nom du paquet varie en fonction de la distribution (par exemple, il est différent pour Ubuntu que pour Debian)Vous pouvez vérifier plusieurs options pour connaître l'emplacement du dossier WSL . Par exemple, l'option la plus simple consiste à utiliser lxRunOffline pour connaître le dossier d'installation.
## You can use lxrunoffline to check which WSL distributions have installed
## using: lxrunoffline list
C:\> lxrunoffline list
backup
Ubuntu-18.04
## And you can use it to get the location of any of these WSL installations
## using: lxrunoffline get-dir -n <name of distribution>
C:\> lxrunoffline get-dir -n backup
c:\wsl\installed\backup
C:\> lxrunoffline get-dir -n Ubuntu
C:\Users\Jaime\AppData\Local\Packages\CanonicalGroupLimited.UbuntuonWindows_79rhkp1fndgsc\LocalState
Une fois que vous connaissez l'emplacement du dossier d'installation, le /home/<username>
se trouve sous <installation folder>\rootfs\home\username
.
c:\wsl\ubuntu
/home/<username>
est en c:\wsl\ubuntu\rootfs\home\username
REMARQUE: Linux et Windows stockent les autorisations de fichiers de différentes manières. De nos jours, WSL DrvFS stocke les autorisations Linux sous forme de flux (métadonnées) attachés aux fichiers que vous pouvez voir dans Windows. Microsoft déconseille de modifier les fichiers linux à l'aide de programmes Windows. Il est possible que certaines applications Windows endommagent les permissions de linux sans le notifier).
Je suppose que cela dépend de la version de Windows sur laquelle vous vous trouvez, mais pour moi, en 2018, sur Windows 10 Pro 64 bits, version 1709 (OS Build 16299.522) et 1803 (OS Build 17134.165) [une mise à jour de Windows a eu tapait ceci] l'emplacement est toujours:
C:\Users\<username>\AppData\Local\lxss
Le truc, c'est que lorsque vous êtes à C:\Users\<username>\AppData\Local
, vous ne verrez pas de dossier lxss
(à moins que vous n'ayez coché la case "Masquer les fichiers protégés du système d'exploitation (recommandé)" dans les options de dossier).
Cependant, il suffit d’ajouter \lxss
dans la barre d’adresse de l’explorateur Windows pour accéder au dossier.
(Remarque: j’avais pas _ un %LOCALAPPDATA%\Packages\CanonicalGroupLimited.UbuntuonWindows_79rhkp1fndgsc
ou quelque chose de similaire mentionné dans la réponse de Michael Bonds)
Mise à jour
Il se trouve qu’il existe un WSL hérité, que j’ai installé. Maintenant, WSL est fourni via une application de magasin Microsoft. Il existe des versions pour Ubuntu 18.04 LTS ainsi que quelques autres versions de Linux (par exemple, Debian). Si vous souhaitez être à jour, vous souhaiterez peut-être désinstaller WSL hérité et installer la version de la boutique Microsoft .
L’emplacement de votre dossier personnel dépend du type de WSL que vous avez installé.
Quatre étapes pour que Windows 10 pro fixe votre menu Debian/Ubuntu/OpenSUSE $ HOME au menu Démarrer de Windows:
Vous avez maintenant votre répertoire personnel épinglé à votre menu de démarrage. J'ai essayé de créer un raccourci mais cela ne va nulle part intelligible.
Dans Bash, pour afficher le répertoire actuel dans l'Explorateur de fichiers Windows, entrez simplement:
Explorer .
Ne laissez pas le "." Cela ouvrira Windows Explorer dans le dossier en cours et vous pourrez voir où tout se trouve par rapport au reste de votre système Windows.