2017-03-04 01:59:01 +0000 2017-03-04 01:59:01 +0000
113
113

Czym jest katalog domowy w systemie Windows Podsystem dla systemu Linux?

Kiedy uruchamiam program bash na Windows Subsystem for Linux, upuszcza mnie on w katalogu

/mnt/c/Users/<username>

Kiedy ls ten katalog, widzę katalogi Desktop, Documents, itd. które widzę, że są w C:\Users\<username> używając Windows File Explorer. Ponieważ jest to miejsce, w którym program bash wystartował, spodziewałem się, że jest to mój katalog domowy, ale kiedy wpisuję cd lub cd ~, zostaję przeniesiony do

/home/<username>

, który zawiera mój plik .bashrc, .profile itp., który spodziewałbym się znaleźć w moim katalogu domowym w systemie Linux. Co więcej, wpisując cd ../.. z tego miejsca widzę katalogi bin, etc i tak dalej, ponownie zgodnie z oczekiwaniami na pudełku z Linuksem.

Mam dwa pytania dotyczące tego wszystkiego:

  1. Czym dokładnie jest /mnt/c/Users/<username> w porównaniu do C:\Users\<username>? Wygląda na to, że to jedno i to samo - więc czym jest /mnt/c/?
  2. Jak mogę przeglądać pliki w /home/<username> używając Eksploratora plików Windows? Nie żebym kiedykolwiek chciał - po prostu staram się zorientować jak Windows organizuje ten podsystem dla Linuksa.

Odpowiedzi (11)

132
132
132
2017-12-29 12:07:21 +0000

Dla 2: Bieżąca ścieżka jest teraz związana z dystrybucją, którą zainstalowałeś z Microsoft Store, zamiast jednej globalnej ścieżki. Tak więc dla Ubuntu znajduje się ona teraz pod adresem:

%LOCALAPPDATA%\Packages\CanonicalGroupLimited.UbuntuonWindows_79rhkp1fndgsc\LocalState\rootfs

Zakładam, że pozostałe dystrybucje będą w podobnej lokalizacji pod swoimi folderami pod:

%LOCALAPPDATA%\Packages\
```.
33
33
33
2017-03-04 02:59:20 +0000
  1. /mnt/c jest dokładnie takie samo jak C:1./mnt/c` jest dokładnie takie samo jak . Jest to tylko składnia, aby dostać się do niego z WSL.
  2. Poszukaj w C:\Users\<username>\AppData\Local\Lxss\rootfs.
21
21
21
2018-08-09 12:58:03 +0000

O systemie plików zamontowanym na /mnt/c

  1. Czym dokładnie jest /mnt/c/Users/ w porównaniu do C:/Users? Wygląda na to, że są one jednym w tym samym - więc czym jest /mnt/c/?

W przeciwieństwie do Windows, Linux (i inne systemy oparte na Uniksie) używa pojedynczej struktury folderów, niezależnej od liczby posiadanych dysków. Jeśli masz wiele dysków, wszystkie te dyski muszą być montowane do struktury folderów w pewnym momencie.

  • Zazwyczaj wszystkie dyski (inne niż te używane do uruchamiania systemu) są montowane w folderze o nazwie /mnt lub /media

WSL posiada specjalny typ systemu plików o nazwie DrvFS, który daje dostęp do dysków używanych w Windows. Możesz używać DrvFS do montowania nie tylko systemu plików windows, ale także dysków sieciowych i innych typów mediów.

  • W WSL, domyślnie, dysk C: w windows jest montowany pod /mnt/c
  • Jeśli masz inny dysk, na przykład dysk D: w windows, będzie on montowany pod /mnt/d

Pliki, które widzisz w /mnt/c są takie same jak te, które masz w C:. Jeśli zmodyfikujesz jakiś plik, zmiany pojawią się również w windowsie.

Możesz użyć polecenia mount, aby uzyskać dostęp do innych typów nośników (np. dysków wymiennych lub udziałów sieciowych).


O lokalizacji /home/<username>

  1. Jak mogę przeglądać pliki w /home/ za pomocą Eksploratora plików Windows? Nie żebym kiedykolwiek chciał - po prostu staram się zorientować, jak Windows organizuje tę sprawę z podsystemem dla Linuksa.

W WSL, cały linuksowy system plików znajduje się pod folderem Windows. Lokalizacja folderu zależy od wersji Windows i dystrybucji WSL, której używasz.

  • Wstępne wersje WSL przechowują system plików linuksowych w folderze %LOCALAPPDATA%\Lxss\rootfs
  • Dystrybucje WSL instalowane z Windows Store , począwszy od Windows Build 16215 (połowa 2017), używają folderu takiego jak %LOCALAPPDATA%\Packages\...\LocalState\rootfs. Nazwa pakietu różni się w zależności od dystrybucji (np. jest inna dla Ubuntu niż dla Debiana)
  • Dystrybucje linuksowe instalowane za pomocą innych narzędzi , takich jak lxRunOffline lub WSL-DistroLauncher mogą przechowywać linuksowy system plików w dowolnej lokalizacji.

Możesz sprawdzić wiele opcji, aby poznać lokalizację folderu WSL . Na przykład, myślę, że najłatwiejszą opcją jest użycie lxRunOffline aby poznać folder instalacyjny.

## 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

Gdy już znasz lokalizację folderu instalacyjnego, /home/<username> jest pod <installation folder>\rootfs\home\username.

  • Na przykład, jeśli twój folder instalacyjny jest c:\wsl\ubuntu
  • /home/<username> jest w c:\wsl\ubuntu\rootfs\home\username

UWAGA: Zarówno Linux jak i Windows przechowuje uprawnienia do plików w różny sposób. Obecnie WSL DrvFS przechowuje uprawnienia linuksowe jako strumienie (metadane) dołączone do plików, które można zobaczyć w Windows. Microsoft nie zaleca modyfikowania plików linuksowych za pomocą programów Windows. Jest możliwe, że niektóre aplikacje Windows uszkadzają uprawnienia linuksowe bez zauważenia tego.

7
7
7
2019-02-20 18:35:13 +0000

W Bashu, aby wyświetlić bieżący katalog w Eksploratorze plików Windows wystarczy wpisać:

explorer.exe .

Nie pomijaj “.”.

To otworzy Eksploratora Windows na bieżącym folderze i będziesz mógł zobaczyć, gdzie wszystko jest w stosunku do reszty systemu Windows.

6
6
6
2018-07-16 08:06:17 +0000

Przypuszczam, że może to zależeć od tego, na jakim buildzie systemu Windows jesteś, ale dla mnie w 2018 roku na Windows 10 Pro 64-bit, wersja 1709 (OS Build 16299.522), a także wersja 1803 (OS Build 17134. 165) [aktualizacja systemu Windows miała miejsce, gdy to pisałem] lokalizacja jest nadal:

C:\Users\<username>\AppData\Local\lxss

Sztuczka polega na tym, że gdy jesteś w C:\Users\<username>\AppData\Local, nie zobaczysz folderu lxss (chyba że przypadkiem odznaczyłeś “Ukryj chronione pliki systemu operacyjnego (Zalecane)” w opcjach folderów).

Jednakże wystarczy dodać \lxss w pasku adresu eksploratora Windows i zostaniesz przeniesiony do folderu.

(Zauważ, że nie miałem %LOCALAPPDATA%\Packages\CanonicalGroupLimited.UbuntuonWindows_79rhkp1fndgsc lub czegoś podobnego, co zostało wspomniane w odpowiedzi Michaela Bondsa)

Update

Okazuje się, że jest starszy WSL, który jest tym, co miałem zainstalowane. Teraz WSL jest dostarczany za pośrednictwem aplikacji 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 chcieć odinstalować starszą wersję WSL i zainstalować wersję ze sklepu Microsoft .

To gdzie znajduje się twój folder domowy zależy od tego, który z tych typów WSL masz zainstalowany.

4
4
4
2018-01-15 12:07:42 +0000
  1. Za pomocą konsoli WSL bash, w swoim katalogu domowym, utwórz plik o dowolnej nazwie, np. “test\tutaj.txt”.
  2. Następnie za pomocą Eksploratora Windows, korzystając z pola wyszukiwania, wyszukaj plik test\tutaj.txt.
  3. Na znalezionym pliku \u0026apos; kliknij prawym przyciskiem myszy \u0026apos; Otwórz lokalizację pliku.
3
3
3
2019-11-16 15:21:34 +0000

Z aktualnym Windows 10 Insider (Fast ring: Windows 10 build 19025.1) możesz zamontować swoją dystrybucję jako dysk sieciowy. WSL jest dostępny jako wls$, ścieżka to nazwa dystrybucji (wsl -l -q).

Na przykład net use Z: \wsl$\Debian /PERSISTENT:YES

2
2
2
2019-01-11 16:56:17 +0000

Cztery kroki dla windows 10 pro, aby przypiąć $HOME Debiana/Ubuntu/OpenSUSE do menu startowego Windows:

  1. Z menu startowego uruchom Eksploratora plików
  2. W pasku adresu (nie pasku wyszukiwania) wpisz %LOCALAPPDATA%.
  3. W pasku wyszukiwania wyszukaj nazwę swojego katalogu $HOME, w moim przypadku był to ekenny. Będą około 3 wersje tego, ale chcesz tę z naprawdę długą ścieżką.
  4. Kliknij prawym przyciskiem myszy na swój katalog domowy i kliknij “Pin to Start”.

Teraz masz swój katalog domowy przypięty do menu start. Próbowałem utworzyć skrót, ale to nigdzie nie jest zrozumiałe.

0
0
0
2019-12-10 11:31:19 +0000

Jeśli zainstalowałeś swoją dystrybucję z Chocolatey , ścieżka do katalogu domowego to:

C:\ProgramData\chocolatey\lib\wsl-<distribution-name>\tools\unzipped\rootfs\home

Na przykład dla Ubuntu 18.04 :

C:\ProgramData\chocolatey\lib\wsl-ubuntu-1804\tools\unzipped\rootfs\home
```.
0
0
0
2019-12-19 09:08:46 +0000

Na mojej konfiguracji (WSL Ubuntu pod “Windows 10 development environment” pobrany z https://developer.microsoft.com/en-us/windows/downloads/virtual-machines ) folder AppData był domyślnie ukryty. Musiałem więc:

  • otworzyć windows explorer
  • przejść do `C:\Users\UserNa mojej konfiguracji (WSL Ubuntu pod “Windows 10 development environment” pobrany z [ https://developer.microsoft.com/en-us/windows/downloads/virtual-machines ]0x3&) folder AppData był domyślnie ukryty. Musiałem więc:

  • otworzyć windows explorer

  • przejść do

  • wybrać view na meny

  • zaznaczyć hidden items

  • wtedy folder AppData pojawia się pod C:\Users\User

  • i znalazłem moje /home/user pod C:\Users\User\AppData\Local\Packages\CanonicalGroupLimited.UbuntuonWindows_*\LocalState\rootfs\home\user (gdzie * jest prawdopodobnie lokalnym kodem lub kodem zależnym od wersji jakiegoś rodzaju)

Nie wiem, dlaczego jest tak schowany.

0
0
0
2019-04-15 11:34:10 +0000

Właśnie potrzebowałem znaleźć /etc/environment używając Ubuntu 16.04 patrząc w Windows 10 NTFS storage. Znalazłem to tutaj:

C:\Users\USER_NAME\AppData\Local\Packages\CanonicalGroupLimited.Ubuntu16.04onWindows_79rhkp1fndgsc\LocalState\rootfs\etc\environment
  • Zmieniłem /mnt/c/ na C:Właśnie potrzebowałem znaleźć/etc/environment` używając Ubuntu 16.04 patrząc w Windows 10 NTFS storage. Znalazłem to tutaj:
C:\Users\USER_NAME\AppData\Local\Packages\CanonicalGroupLimited.Ubuntu16.04onWindows_79rhkp1fndgsc\LocalState\rootfs\etc\environment
  • Zmieniłem /mnt/c/ na dla nomenklatury Windows.
  • Zmieniłem również wszystkie wystąpienia / na Właśnie potrzebowałem znaleźć/etc/environment` używając Ubuntu 16.04 patrząc w Windows 10 NTFS storage. Znalazłem to tutaj:
C:\Users\USER_NAME\AppData\Local\Packages\CanonicalGroupLimited.Ubuntu16.04onWindows_79rhkp1fndgsc\LocalState\rootfs\etc\environment
  • Zmieniłem /mnt/c/ na C:Właśnie potrzebowałem znaleźć/etc/environment` używając Ubuntu 16.04 patrząc w Windows 10 NTFS storage. Znalazłem to tutaj:
C:\Users\USER_NAME\AppData\Local\Packages\CanonicalGroupLimited.Ubuntu16.04onWindows_79rhkp1fndgsc\LocalState\rootfs\etc\environment
  • Zmieniłem /mnt/c/ na dla nomenklatury Windows.
  • Zmieniłem również wszystkie wystąpienia / na z tego samego powodu.
  • Musisz zastąpić USER_NAME swoją nazwą użytkownika Windows.
  • Musiałem użyć sudo -H Nautilus, aby uzyskać uprawnienia do przeglądania plików użytkownika przechowywanych w WSL.
  • NIGDY nie aktualizuj plików linuksowych w WSL za pomocą aplikacji Windows. Spowoduje to uszkodzenie danych linuksowych.

Ze strony Linuksa (Ubuntu 16.04) nomenklatura byłaby następująca:

$ sudo cat /mnt/c/Users/USER_NAME/AppData/Local/Packages/CanonicalGroupLimited.Ubuntu16.04onWindows_79rhkp1fndgsc/LocalState/rootfs/etc/environment

PATH="/mnt/e/bin:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/games:/usr/local/games"
export LIBGL_ALWAYS_INDIRECT=Yes
export DISPLAY=localhost:0.0
```.