Что такое домашний каталог подсистемы Windows для Linux?

когда я начинаю bash на подсистеме Windows для Linux, он падает меня в каталоге

/mnt/c/Users/<username>

Когда Я ls эта директория, я вижу директории Desktop,Documents, etc. что я вижу в C:Users<username> использование Проводника Windows. Поскольку это где bash программа началась, я ожидал, что это мой домашний каталог, но когда я типа cd или cd ~ меня привели к

/home/<username>

, который содержит мой .bashrc,.profile etc. файл, который Я ожидал бы найти в моем домашнем каталоге в коробке Linux. Кроме того, ввод cd ../.. отсюда я вижу каталоги bin,etc и так далее, опять же, как и ожидалось на коробке Linux.

у меня по этому поводу два вопроса:

  1. что именно /mnt/c/Users/<username> по сравнению с C:Users<username>? Кажется, они одни и те же - - - так что /mnt/c/?
  2. как просмотреть файлы в /home/<username> использование Проводника Windows? Не то чтобы я действительно всегда хочу-я просто пытаюсь понять, как Windows организует эту подсистему для Linux.
5
задан magicandre1981
источник

5 ответов

для 2: текущий путь теперь связан с дистрибутивом, установленным из магазина Майкрософт, а не с одним глобальным путем. Итак, для Ubuntu сейчас находится в:

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

Я предполагаю, что другие дистрибутивы будут находиться в аналогичном месте в соответствующих папках в:

%LOCALAPPDATA%\Packages\
23
отвечен Michael Bond 2018-08-13 12:17:03
источник
  1. /mnt/c - Это точно такой же, как C:\. Это просто синтаксис для получения к нему от WSL.
  2. посмотреть в C:\Users\<username>\AppData\Local\Lxss\rootfs.
15
отвечен Joseph Sible 2017-11-22 23:27:40
источник
  1. С помощью консоли WSL bash в домашнем каталоге создайте файл с произвольным конкретным именем, например " test_here.формат txt."
  2. затем в Проводнике, используя поле поиска, Поиск test_here файл.формат txt.
  3. на найденном файле > щелкните правой кнопкой мыши > открыть местоположение файла.
4
отвечен Ellis 2018-01-15 12:07:42
источник

о файловой системе, смонтированной на /mnt/c

  1. что именно находится в /MNT/С/Пользователи/ по сравнению с C:\Users\? Кажется, они едины в одном-так что же такое /mnt/c/?

в отличие от Windows, Linux (и другие системы, основанные на Unix) используют единую структуру папок независимо от количества дисков, которые у вас есть. Если у вас несколько дисков, все эти диски должны меня установлен в папку структура в какой-то момент.

  • как правило, все диски (отличные от используемых для загрузки системы)установлен в папке /mnt или /media

WSL имеет специальный тип файловой системы С именем DrvFS, который дает вам доступ к дискам, используемым в windows. DrvFS можно использовать для монтирования не только файловой системы windows, но и сетевых дисков и других типов носителей.

  • в WSL, по умолчанию,C: диск в окна монтируются под /mnt/c
  • если у вас есть другой диск, например D: диск в windows, он будет установлен под /mnt/d

файлы, которые вы можете увидеть в /mnt/c то же самое, что и в C:. Если вы измените какой-либо файл, вы также получите изменения в windows.

вы можете использовать mount команда для доступа к другим типам носителей (например, съемные диски или сетевые ресурсы).


о нахождении /home/<username>

  1. как просмотреть файлы в /home / с помощью Проводника Windows? Не то, чтобы я действительно когда-либо хотел-я просто пытаюсь понять, как Windows организует эту подсистему для Linux.

в WSL вся файловая система linux находится в папке Windows. Расположение папки зависит от версии Windows и используемый вами дистрибутив WSL.

  • начальные версии WSL сохраните файловую систему linux в %LOCALAPPDATA%\Lxss\rootfs
  • WSL дистрибутивы, установленные из магазина Windows, начиная с Windows Build 16215 (середина 2017), используйте папку типа %LOCALAPPDATA%\Packages\...\LocalState\rootfs. Имя пакета зависит от дистрибутива (например, для Ubuntu оно отличается от Debian)
  • дистрибутивы Linux, установленные с помощью других инструменты, например lxRunOffline или WSL-DistroLauncher может хранить файловую систему linux в любом месте.

вы можете узнать много вариантов, чтобы знать расположение папки WSL. Например, я думаю, что самый простой вариант - использовать lxRunOffline знать папку установки.

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

после того, как вы знаете расположение папки установки,/home/<username> под <installation folder>\rootfs\home\username.

  • например, если папка установки c:\wsl\ubuntu
  • /home/<username> находится в c:\wsl\ubuntu\rootfs\home\username

Примечание: Linux и Windows хранит файл разрешения по-разному. В настоящее время DrvFS WSL хранит разрешения Linux в виде потоков (метаданных), прикрепленных к файлам, которые вы можете видеть в Windows. Корпорация Майкрософт не рекомендует изменять файлы Linux с помощью программ Windows. Возможно, что некоторые Приложения тоже окна повредить Linux permissions без уведомления его.

4
отвечен Jaime 2018-08-09 12:58:03
источник

Я полагаю, это может зависеть от того, какие окна строить вы, но для меня в 2018 году на Windows 10 Профессиональная 64-разрядная, версия 1709 (сборка ОС 16299.522), а также версия 1803 (сборка ОС 17134.165) [обновления Windows по иронии судьбы произошло так, как я печатал этот] расположение по-прежнему:

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

трюк, когда вы находитесь в C:\Users\<username>\AppData\Local вы не увидите lxss папка (если вы случайно не сняли флажок "скрыть защищенные файлы операционной системы (рекомендуется)" в вашей папке опционы.)

однако просто добавьте \lxss в адресной строке проводника, и это приведет вас к папке.

(Примечание я сделал не есть %LOCALAPPDATA%\Packages\CanonicalGroupLimited.UbuntuonWindows_79rhkp1fndgsc или что-нибудь подобное, что было упомянуто в ответе Майкла Бондса)

2
отвечен User 2018-07-16 08:06:17
источник

Другие вопросы bash windows-10 windows-subsystem-for-linux