Kiedy uruchamiam bash
w Podsystemie Windows dla Linuksa, umieszcza mnie w katalogu
/mnt/c/Users/<username>
Kiedy ls
ten katalog, widzę, katalogi Desktop
, Documents
itp, które widzę są w C:\Users\<username>
użyciu pliku Windows Explorer. Ponieważ to jest, gdy bash
rozpoczął program Spodziewałem to mój katalog domowy, ale kiedy wpisz jedno cd
lub cd ~
mam prawidłowe
/home/<username>
który zawiera mój .bashrc
, .profile
itp plik który spodziewałbym się znaleźć w moim katalogu domowym w Linuksie. Ponadto, wchodząc cd ../..
stąd widzę, katalogi bin
, etc
i tak dalej, znowu zgodnie z oczekiwaniami na Linuksie.
Mam dwa pytania dotyczące tego wszystkiego:
- Z czym dokładnie się
/mnt/c/Users/<username>
porównujeC:\Users\<username>
? Wydaje się, że są jednym w tym samym --- co to jest/mnt/c/
? - Jak mogę wyświetlić pliki
/home/<username>
za pomocą Eksploratora plików Windows? Nie to, że naprawdę kiedykolwiek chciałbym --- staram się po prostu zrozumieć, w jaki sposób system Windows organizuje ten podsystem dla systemu Linux.
Odpowiedzi:
W przypadku 2: bieżąca ścieżka jest teraz związana z dystrybucją zainstalowaną ze sklepu Microsoft Store, a nie z jedną ścieżką globalną. W przypadku Ubuntu jest on teraz zlokalizowany pod adresem:
Zakładam, że inne dystrybucje będą w podobnej lokalizacji w odpowiednich folderach pod:
źródło
/mnt/c/
przechowuję wszystko w WSL. Bardzo bym chciał, gdyby WSL został odwrócony do LWS; co oznacza, że byłoby wspaniale, gdybyśmy wszyscy uruchomili Ubuntu z Linux Subsystems dla Windows, aby uruchomić pełną kopię Windows 10 zintegrowaną z Ubuntu. Wiem, byłoby to o wiele trudniejsze, ale można marzyć./mnt/c
jest dokładnie taki sam jakC:\
. To tylko składnia, aby dostać się do niego z WSL.C:\Users\<username>\AppData\Local\Lxss\rootfs
.źródło
C:\Users\[USERNAME]\AppData\Local\Packages\CanonicalGroupLimited.UbuntuonWindows_[CODE]\LocalState\rootfs\
Być może zdajesz sobie sprawę, jak źle, jeśli edytujesz/
ręcznieInformacje o podłączonym systemie plików
/mnt/c
W przeciwieństwie do Windows, Linux (i inne systemy oparte na Uniksie) używają struktury pojedynczego folderu niezależnie od liczby posiadanych dysków. Jeśli masz wiele dysków, wszystkie te dyski muszą w pewnym momencie zostać zamontowane w strukturze folderów.
/mnt
lub/media
WSL ma specjalny typ systemu plików o nazwie DrvFS, który zapewnia dostęp do dysków używanych w systemie Windows. Możesz użyć DrvFS do montowania, nie tylko systemu plików Windows, ale także dysków sieciowych i innych typów nośników.
C:
dysk w systemie Windows jest montowany pod/mnt/c
D:
dysk w systemie Windows, zostanie on zamontowany pod/mnt/d
Pliki, które możesz zobaczyć,
/mnt/c
są takie same, jak te, które maszC:
. Jeśli zmodyfikujesz jakiś plik, zmiany również otrzymasz w oknach.Możesz użyć tego
mount
polecenia, aby uzyskać dostęp do innych rodzajów mediów (np. Dyski wymienne lub udziały sieciowe).Informacje o lokalizacji
/home/<username>
W WSL cały system plików Linux znajduje się w folderze Windows. Lokalizacja folderu zależy od wersji systemu Windows i używanej dystrybucji WSL.
%LOCALAPPDATA%\Lxss\rootfs
%LOCALAPPDATA%\Packages\...\LocalState\rootfs
. Nazwa pakietu różni się w zależności od dystrybucji (np. Jest inna dla Ubuntu niż dla Debiana)Możesz sprawdzić wiele opcji, aby poznać lokalizację folderu WSL . Na przykład myślę, że najłatwiejszą opcją jest użycie lxRunOffline do poznania folderu instalacyjnego.
Gdy znasz lokalizację folderu instalacyjnego,
/home/<username>
jest poniżej<installation folder>\rootfs\home\username
.c:\wsl\ubuntu
/home/<username>
jest wc:\wsl\ubuntu\rootfs\home\username
UWAGA: Zarówno Linux, jak i Windows przechowują uprawnienia do plików na różne sposoby. Obecnie WSL DrvFS przechowuje uprawnienia systemu Linux jako strumienie (metadane) dołączone do plików, które można zobaczyć w systemie Windows. Microsoft nie zaleca modyfikowania plików linux za pomocą programów Windows. Możliwe, że niektóre aplikacje systemu Windows niszczą uprawnienia do systemu Linux bez uprzedzenia.
źródło
Podejrzewam, że może to zależeć od tego, na której wersji systemu Windows jesteś, ale dla mnie w 2018 roku na Windows 10 Pro 64-bit, wersja 1709 (kompilacja systemu operacyjnego 16299.522), a także wersja 1803 (kompilacja systemu operacyjnego 17134.165) [jak na ironię, aktualizacja systemu Windows pisał to] lokalizacja nadal:
C:\Users\<username>\AppData\Local\lxss
Sztuczka polega na tym, że gdy jesteś na
C:\Users\<username>\AppData\Local
stronie, nie zobaczyszlxss
folderu (chyba że masz zaznaczone pole „Ukryj chronione pliki systemu operacyjnego (zalecane)” w opcjach folderów).Wystarczy jednak dołączyć
\lxss
w pasku adresu Eksploratora Windows, aby przejść do folderu.(Uwaga: nie miałem
%LOCALAPPDATA%\Packages\CanonicalGroupLimited.UbuntuonWindows_79rhkp1fndgsc
ani nic podobnego, co zostało wspomniane w odpowiedzi Michaela Bondsa)Aktualizacja
Okazuje się, że jest już starszy WSL, który właśnie zainstalowałem. Teraz WSL jest zapewniany przez aplikację sklepu Microsoft. Istnieją wersje dla Ubuntu 18.04 LTS, a także teraz kilka innych smaków Linuksa (np. Debian). Jeśli chcesz być na bieżąco, możesz odinstalować starszą wersję WSL i zainstalować wersję sklepu Microsoft .
To, gdzie znajduje się folder domowy, będzie zależeć od tego, który typ WSL został zainstalowany.
źródło
źródło
Cztery kroki dla systemu Windows 10 pro, aby przypiąć Debian / Ubuntu / OpenSUSE $ HOME do menu Start systemu Windows:
Teraz masz przypięty katalog domowy do menu Start. Próbowałem utworzyć skrót, ale nie jest to zrozumiałe.
źródło
Musiałem tylko znaleźć
/etc/environment
za pomocą Ubuntu 16.04 patrząc na pamięć NTFS systemu Windows 10. Znalazłem to tutaj:/mnt/c/
sięC:\
do nomenklatury Windows./
na\
z tego samego powodu.USER_NAME
swoją nazwą użytkownika Windows.sudo -H Nautilus
aby uzyskać uprawnienia do przeglądania plików użytkownika przechowywanych w WSL.Od strony systemu Linux (Ubuntu 16.04) nazewnictwo wyglądałoby następująco:
źródło
Dzięki obecnemu niejawnemu testerowi systemu Windows 10 (Fast ring: Windows 10 build 19025.1) możesz zamontować swoją dystrybucję jako dysk sieciowy. WSL jest dostępny
wls$
, ponieważ ścieżka jest nazwą Twojej dystrybucji (wsl -l -q
).Na przykład
net use Z: \\wsl$\Debian /PERSISTENT:YES
źródło
Aby wyświetlić bieżący katalog w Eksploratorze plików systemu Windows, w Bash wystarczy wpisać:
Nie pomijaj „.” Spowoduje to otwarcie Eksploratora Windows w bieżącym folderze i możesz zobaczyć, gdzie wszystko jest w stosunku do reszty systemu Windows.
źródło