Wenn ich bash
unter Windows Subsystem für Linux starte, werde ich in das Verzeichnis verschoben
/mnt/c/Users/<username>
Als ich ls
dieses Verzeichnis, ich die Verzeichnisse sehe Desktop
, Documents
etc. , dass ich in ist sehen C:\Users\<username>
mit der Windows - Datei - Explorer. Da hier das bash
Programm gestartet wurde, erwartete ich, dass dies mein Ausgangsverzeichnis ist, aber wenn ich entweder eingebe cd
oder zu etwas cd ~
gebracht werde
/home/<username>
die enthält meine .bashrc
, .profile
usw. Datei , die ich erwarten würde in meinem Home - Verzeichnis in einer Linux - Box zu finden. Außerdem Eingabe cd ../..
von hier aus kann ich die Verzeichnisse sehen bin
, etc
und so weiter, wieder auf einer Linux - Box erwartet.
Ich habe dazu zwei Fragen:
- Womit genau wird
/mnt/c/Users/<username>
verglichenC:\Users\<username>
? Es scheint, als wären sie ein und dasselbe - also was ist das/mnt/c/
? - Wie kann ich die Dateien im
/home/<username>
Windows-Datei-Explorer anzeigen ? Nicht, dass ich es jemals wirklich wollte - ich versuche nur ein Gefühl dafür zu bekommen, wie Windows dieses Subsystem für Linux organisiert.
Antworten:
Für 2: Der aktuelle Pfad bezieht sich jetzt auf die Distribution, die Sie aus dem Microsoft Store installiert haben, und nicht mehr auf einen globalen Pfad. Für Ubuntu befindet es sich nun unter:
Ich gehe davon aus, dass sich die anderen Distributionen an einem ähnlichen Ort in ihren jeweiligen Ordnern befinden werden:
quelle
/mnt/c/
ist es, wo ich alles in der WSL speichere. Ich würde es lieben, wenn die WSL auf LWS umgestellt würde. Das heißt, es wäre fantastisch, wenn wir alle Ubuntu mit Linux-Subsystemen für Windows ausführen würden, um eine vollständige, in Ubuntu integrierte Windows 10-Kopie auszuführen. Ich weiß, das wäre viel schwieriger, aber man kann träumen./mnt/c
ist genau das gleiche wieC:\
. Es ist nur die Syntax, um von der WSL darauf zuzugreifen.C:\Users\<username>\AppData\Local\Lxss\rootfs
.quelle
C:\Users\[USERNAME]\AppData\Local\Packages\CanonicalGroupLimited.UbuntuonWindows_[CODE]\LocalState\rootfs\
Sie werden vielleicht merken, wie schlimm es ist, wenn Sie/
manuell bearbeitenÜber das Dateisystem gemountet auf
/mnt/c
Im Gegensatz zu Windows verwenden Linux (und die anderen auf Unix basierenden Systeme) eine einzelne Ordnerstruktur, unabhängig von der Anzahl der vorhandenen Festplatten. Wenn Sie mehrere Festplatten haben, alle diese Scheiben müssen mich montiert in der Ordnerstruktur an einem gewissen Punkt.
/mnt
/media
WSL verfügt über ein spezielles Dateisystem namens DrvFS, mit dem Sie auf die in Windows verwendeten Datenträger zugreifen können. Mit DrvFS können Sie nicht nur Ihr Windows-Dateisystem, sondern auch Netzwerklaufwerke und andere Medientypen bereitstellen.
C:
Festplatte in Windows unter gemountet/mnt/c
D:
Festplatte in Windows, wird diese unter gemountet/mnt/d
Die Dateien, die Sie sehen können,
/mnt/c
sind die gleichen, die Sie in habenC:
. Wenn Sie eine Datei ändern, werden die Änderungen auch in den Fenstern angezeigt.Sie können den
mount
Befehl verwenden, um auf andere Medientypen zuzugreifen (z. B. Wechseldatenträger oder Netzwerkfreigaben).Über den Standort von
/home/<username>
In WSL befindet sich das gesamte Linux-Dateisystem in einem Windows-Ordner. Der Speicherort des Ordners hängt von der Windows-Version und der von Ihnen verwendeten WSL-Distribution ab.
%LOCALAPPDATA%\Lxss\rootfs
%LOCALAPPDATA%\Packages\...\LocalState\rootfs
. Der Name des Pakets variiert je nach Distribution (zB ist es für Ubuntu anders als für Debian)Möglicherweise überprüfen Sie viele Optionen, um den Speicherort des WSL-Ordners zu ermitteln . Ich denke, die einfachste Möglichkeit ist zum Beispiel, lxRunOffline zu verwenden, um den Installationsordner zu kennen.
Sobald Sie den Speicherort des Installationsordners kennen,
/home/<username>
befindet sich der unter<installation folder>\rootfs\home\username
.c:\wsl\ubuntu
/home/<username>
ist inc:\wsl\ubuntu\rootfs\home\username
HINWEIS: Sowohl Linux als auch Windows speichern Dateiberechtigungen auf unterschiedliche Weise. Heutzutage speichert das WSL-DrvFS die Linux-Berechtigungen als Streams (Metadaten), die an die Dateien angehängt sind, die Sie in Windows sehen können. Microsoft empfiehlt nicht, Linux-Dateien mit Windows-Programmen zu ändern. Es ist möglich, dass einige Windows-Anwendungen die Linux-Berechtigungen beschädigen, ohne es zu bemerken.
quelle
Ich nehme an, es hängt davon ab, auf welchem Windows-Build Sie sich befinden, aber für mich kam es 2018 auf Windows 10 Pro 64-Bit, Version 1709 (OS Build 16299.522) und auch Version 1803 (OS Build 17134.165) [ironischerweise zu einem Windows-Update, als ich tippte dies] der Ort ist immer noch:
C:\Users\<username>\AppData\Local\lxss
Der Trick ist, wenn Sie gerade dabei sind
C:\Users\<username>\AppData\Local
, keinenlxss
Ordner zu sehen (es sei denn, Sie haben in Ihren Ordneroptionen das Kontrollkästchen "Geschützte Betriebssystemdateien ausblenden (empfohlen)" deaktiviert).Hängen Sie jedoch einfach
\lxss
in der Windows Explorer-Adressleiste an und Sie gelangen in den Ordner.(Hinweis Ich habe nicht haben ein
%LOCALAPPDATA%\Packages\CanonicalGroupLimited.UbuntuonWindows_79rhkp1fndgsc
oder ähnliches , die in Michael Bonds Antwort erwähnt wurde)Aktualisieren
Es stellte sich heraus, dass es eine ältere WSL gibt, die ich installiert hatte. Jetzt wird die WSL über eine Microsoft Store App bereitgestellt. Es gibt Versionen für Ubuntu 18.04 LTS und jetzt auch einige andere Linux-Varianten (zB Debian). Wenn Sie auf dem neuesten Stand sein möchten, können Sie ältere WSL- Versionen deinstallieren und die Microsoft Store-Version installieren .
Wo sich Ihr Home-Ordner befindet, hängt davon ab, welche dieser WSL-Typen Sie installiert haben.
quelle
quelle
In vier Schritten kann Windows 10 Pro Debian / Ubuntu / OpenSUSE $ HOME mit dem Startmenü von Windows verbinden:
Nun haben Sie Ihr Home-Verzeichnis an Ihr Startmenü angeheftet. Ich habe versucht, eine Verknüpfung zu erstellen, aber das ist nirgendwo verständlich.
quelle
Ich musste nur
/etc/environment
mit Ubuntu 16.04 suchen in Windows 10 NTFS-Speicher zu finden. Ich habe es hier gefunden:/mnt/c/
zurC:\
Windows-Nomenklatur./
zu\
aus demselben Grund geändert .USER_NAME
Ihren Windows-Benutzernamen ersetzen .sudo -H Nautilus
, um Berechtigungen zum Anzeigen der in WSL gespeicherten Benutzerdateien zu erhalten.Von der Linux-Seite (Ubuntu 16.04) wäre die Nomenklatur:
quelle
Mit dem aktuellen Windows 10 Insider (Fast Ring: Windows 10 Build 19025.1) können Sie Ihre Distribution als Netzwerklaufwerk einbinden. Auf die WSL kann zugegriffen werden, da
wls$
der Pfad Ihr Verteilungsname ist (wsl -l -q
).Beispielsweise
net use Z: \\wsl$\Debian /PERSISTENT:YES
quelle
Geben Sie in Bash Folgendes ein, um das aktuelle Verzeichnis im Windows-Datei-Explorer anzuzeigen:
Lassen Sie das "." Nicht aus. Dadurch wird der Windows Explorer im aktuellen Ordner geöffnet und Sie können sehen, wo sich alles in Bezug auf den Rest Ihres Windows-Systems befindet.
quelle