Ubuntu windows 10 где файлы
Перейти к содержимому

Ubuntu windows 10 где файлы

  • автор:

Работа в файловых системах Windows и Linux

При работе с файловыми системами Windows и Linux следует учитывать ряд моментов. В этом пошаговом руководстве рассматриваются некоторые из них, а также приводятся примеры поддержки взаимодействия для смешанного использования команд на основе Windows и Linux.

Хранение файлов и производительность в файловых системах

Мы не рекомендуем работать с разными операционными системами, если на это нет особой причины. Для ускорения производительности сохраняйте файлы в файловой системе WSL, если используете командную строку Linux (Ubuntu, OpenSUSE и т. д.). Если вы работаете в командной строке Windows (PowerShell, командной строке), сохраняйте файлы в файловой системе Windows.

Например, при хранении файлов проекта WSL:

  • Используйте корневой каталог файловой системы Linux: \\wsl$\Ubuntu\home\\Project
  • Используйте корневой каталог файловой системы Windows: /mnt/c/Users//Project$ или C:\Users\\Project .

Если вы видите /mnt/ в пути к файлу в командной строке WSL, это означает, что вы работаете с подключенного диска. Поэтому диск C:/ ( C:\Users\\Project ) в файловой системе Windows при подключении в командной строке WSL будет выглядеть следующим образом: /mnt/c/Users//Project$ . Файлы проекта можно хранить на подключенном диске, но производительность может повыситься, если вы будете хранить их непосредственно на диске \\wsl$ .

Просмотр текущего каталога в проводнике Windows

Вы можете просмотреть каталог, в котором хранятся файлы, открыв проводник Windows из командной строки:

explorer.exe . 

Также можно использовать команду powershell.exe /c start . . Обязательно добавьте точку в конце команды, чтобы открыть текущий каталог.

Чтобы просмотреть все доступные дистрибутивы Linux и их корневые файловые системы в Windows проводнике, введите \\wsl$ в адресной строке.

View project files in Windows File Explorer

Учет регистра в именах файлов и каталогов

Чувствительность к регистру определяет, обрабатываются ли прописные (FOO.txt) и строчные буквы (foo.txt) как уникальные (с учетом регистра) или эквивалентные (без учета регистра) в имени файла или каталога. В файловых системах Windows и Linux чувствительность к регистру разная: в Windows он учитывается, а в Linux — нет. Дополнительные сведения о том, как настроить чувствительность к регистру, особенно при подключении дисков с помощью WSL, см. в статье Настройка чувствительности к регистру.

Взаимодействие между командами Windows и Linux

Средства и команды Windows и Linux в WSL могут использоваться взаимозаменяемо.

  • Запустить средства Windows (например, notepad.exe) из командной строки Linux (например, Ubuntu).
  • Запустить средства Linux (например, grep) из командной строки Windows (например, PowerShell).
  • Совместное использование переменных среды между Linux и Windows. (сборка 17063+)

Запуск инструментов Linux из командной строки Windows

Запускайте двоичные файлы Linux из командной строки Windows (CMD или PowerShell), используя wsl (или wsl.exe ).

C:\temp> wsl ls -la

Двоичные файлы вызываются следующим образом.

  • Используется тот же рабочий каталог, что и для текущей командной строки или сеанса PowerShell.
  • Файл выполняется от имени пользователя WSL по умолчанию.
  • Требуются те же права администратора Windows, что и у вызывающего процесса и терминала.

Команда Linux после wsl (или wsl.exe ) обрабатывается как любая команда, выполняемая в WSL. Можно выполнять sudo, конвейерную передачу и перенаправление файлов.

Пример использования sudo для обновления дистрибутива Linux по умолчанию:

C:\temp> wsl sudo apt-get update 

Имя пользователя дистрибутива Linux по умолчанию будет указано после выполнения этой команды, и вам будет предложено указать пароль. После правильного ввода пароля дистрибутив скачает обновления.

Смешивание команд Linux и Windows

Ниже приведено несколько примеров смешиваний команд Linux и Windows с помощью PowerShell.

Чтобы выполнить команду Linux ls -la для вывода списка файлов и команду PowerShell findstr для фильтрации результатов слов, содержащих git, объедините команды:

wsl ls -la | findstr "git" 

Чтобы выполнить команду PowerShell dir для вывода списка файлов и команду Linux grep для фильтрации результатов слов, содержащих git, объедините команды:

C:\temp> dir | wsl grep git 

Чтобы использовать команду Linux ls -la для вывода списка файлов и команду PowerShell > out.txt для вывода этого списка в текстовый файл с именем out.txt, объедините команды:

C:\temp> wsl ls -la > out.txt 

Команды, передаваемые в wsl.exe , перенаправляются в процесс WSL без изменения. Пути к файлам должны быть указаны в формате WSL.

Чтобы выполнить команду Linux ls -la для вывода списка файлов в пути файловой системы Linux /proc/cpuinfo с помощью PowerShell, сделайте следующее:

C:\temp> wsl ls -la /proc/cpuinfo 

Чтобы выполнить команду Linux ls -la для вывода списка файлов в пути файловой системы Windows C:\Program Files с помощью PowerShell, сделайте следующее:

C:\temp> wsl ls -la "/mnt/c/Program Files" 

Запуск инструментов Windows из Linux

WSL может запускать средства Windows непосредственно из командной строки WSL с помощью [tool-name].exe . Например, notepad.exe .

Приложения, выполняемые таким образом, обладают следующими свойствами.

  • Рабочим каталогом остается каталог командной строки WSL (в большинстве случаев; исключения описаны ниже).
  • Они имеют те же разрешения, что и процесс WSL.
  • Они выполняются от имени активного пользователя Windows.
  • Они отображаются в диспетчере задач Windows так, как если бы они выполнялись непосредственно из командной строки.

Исполняемые файлы Windows, выполняемые в WSL, обрабатываются аналогично собственным исполняемым файлам Linux — конвейерной передаче, перенаправлению и даже фоновому режиму работы.

Чтобы запустить средство Windows ipconfig.exe , использовать средство Linux grep для фильтрации результатов IPv4, а также средство Linux cut для удаления полей столбцов из дистрибутива Linux (например, Ubuntu), введите:

ipconfig.exe | grep IPv4 | cut -d: -f2 

Давайте рассмотрим пример сочетания команд Windows и Linux. Откройте дистрибутив Linux (например, Ubuntu) и создайте текстовый файл: touch foo.txt . Теперь используйте команду Linux ls -la , чтобы отобразить список файлов прямого доступа и сведения об их создании, а также средство Windows PowerShell findstr.exe , чтобы отфильтровать результаты и отобразить только файл foo.txt :

ls -la | findstr.exe foo.txt 

Средства Windows должны иметь расширение файла, его регистр символов должен совпадать с регистром в имени файла и эти файлы должны быть исполняемыми. Неисполняемые файлы, в том числе сценарии пакетного выполнения и собственные команды командной строки, такие как dir , можно выполнять с помощью команды cmd.exe /C .

Например, отобразите список содержимого каталога C:\ файловой системы Windows, введя:

cmd.exe /C dir 

Или выполните команду ping , чтобы отправить запрос проверки связи на веб-сайт microsoft.com:

ping.exe www.microsoft.com 

Параметры передаются в двоичный файл Windows без изменений. Например, следующая команда откроет C:\temp\foo.txt в notepad.exe .

notepad.exe "C:\temp\foo.txt" 

Этот способ также будет работать:

notepad.exe C:\\temp\\foo.txt 

Совместное использование переменных среды между Windows и WSL с помощью WSLENV

Решение WSL и Windows совместно используют WSLENV — специальную переменную среды, созданную для взаимодействия Windows и дистрибутивов Linux, запущенных в WSL.

Свойства переменной WSLENV :

  • она используется совместно и существует в средах Windows и WSL;
  • это список переменных среды, которые совместно используют Windows и WSL;
  • она позволяет форматировать список переменных среды для корректного использования в Windows и WSL.
  • она может использоваться в потоке между WSL и Win32.

До выпуска сборки 17063 единственной переменной среды Windows,, к которой могла получить доступ WSL, была PATH (это позволяло запускать исполняемые файлы Win32 из WSL). Начиная со сборки 17063, WSLENV поддерживается. WSLENV учитывает регистр.

Флаги WSLENV

В WSLENV доступны четыре флага, влияющие на способ преобразования переменной среды.

  • /p преобразовывает пути WSL и Linux в пути Win32 и наоборот;
  • /l указывает, что переменная среды представляет собой список путей;
  • /u указывает, что эту переменную среды следует добавлять только при запуске WSL из Win32;
  • /w указывает, что эту переменную среды следует добавлять только при запуске Win32 из WSL.

При необходимости флаги можно комбинировать.

Узнайте больше о WSLENV, ознакомившись с часто задаваемыми вопросами и примерами установки значения WSLENV для объединения других предварительно определенных переменных среды с суффиксом в виде косой чертой и флагами для указания способа перевода значения и передачи переменных скрипту. В этой статье также показано, как настроить среду разработки с помощью языка программирования Go для совместного использования GOPATH с WSL и Win32.

Отключение взаимодействия

Пользователи могут отключить возможность запуска средств Windows для отдельного сеанса WSL, выполнив следующую команду в качестве привилегированного пользователя.

echo 0 > /proc/sys/fs/binfmt_misc/WSLInterop 

Чтобы повторно включить возможность запуска двоичных файлов Windows, закройте все сеансы WSL и повторно запустите bash.exe или выполните следующую команду от имени привилегированного пользователя.

echo 1 > /proc/sys/fs/binfmt_misc/WSLInterop 

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

Совместная работа с нами на GitHub

Источник этого содержимого можно найти на GitHub, где также можно создавать и просматривать проблемы и запросы на вытягивание. Дополнительные сведения см. в нашем руководстве для участников.

Windows Subsystem for Linux

Как получить доступ к файлам Linux/Ubuntu из Windows 10 WSL?

Этот вопрос проистекает из вопроса, как получить доступ к файлам Windows из Ubuntu Bash, но как я могу сделать обратное? В частности, мне нужно получить доступ к моему SSH-ключу из Windows, который находится в /home/mark/.ssh/id_rsa под Bash. И еще, как возможно открыть, например, в популярном редакторе phpStorm в винде проект расположенный на виртуальной машине (контейнере) Ubuntu? В качестве предисловия, я установил WSL в командной строке cmd, после чего выполнил команду:

wsl --install -d Ubuntu 

Затем проверил командой wsl -l -v в запуске убунты. После чего установил Docker Desktop for Windows и связал его с убунтой (виртуальной машиной) в настройках. Когда я перехожу в консоль убунты, пытаюсь ввести команду explorer.exe открывается окно с файлами и папками, но только увы содержимое это явно не файловая структура убунты.

Отслеживать
задан 8 фев 2023 в 6:10
IntegralAL IntegralAL
2,699 5 5 золотых знаков 62 62 серебряных знака 107 107 бронзовых знаков
Извините, а вообще на кой чёрт вы спрятали ваш ssh ключ внутри wsl?
8 фев 2023 в 6:45

1 ответ 1

Сортировка: Сброс на вариант по умолчанию

Вариант 1: набрать в консоли wsl

explorer.exe . 

Точка через пробел. Открывает содержимое текущего каталога 🙂

Вариант 2: в открытом эксполере ввести путь \\wsl$

Отслеживать
ответ дан 8 фев 2023 в 6:30
Sergey Mitrofanov Sergey Mitrofanov
2,428 1 1 золотой знак 11 11 серебряных знаков 20 20 бронзовых знаков

команда explorer.exe . открывает папку C:\Windows\System32 откуда начинается вызов командной строки от администратора. А второй вариант работает. И что же, как можно в phpStorm открыть каталог с проектом на убунте?

8 фев 2023 в 6:40

@IntegralAL чисто для искусства — да. Но там есть масса всяческих нюансов и странностей. Я пробовал в прошлом году Idea и отказался от этой затеи, так как была путаница с терминалами и в какой же системе запускать сборки 🙂 Возможно, в вашем случае будет проще intellij-support.jetbrains.com/hc/en-us/community/posts/… Я бы рекомендовал запускаться через Gateway jetbrains.com/ru-ru/remote-development/gateway

8 фев 2023 в 7:08

Не смог добраться до второй ссылки, про gateway, она битая. Спасибо за ответы. Поставлю ответ ваш, как правильный.

Где находятся файлы Ubuntu в Bash для Windows 10?

Устанавливая Bash для Windows 10, вы получаете практически полноценный дистрибутив Ubuntu с необходимым пользовательским окружением. При желании доступ к файлам Linux можно получить прямо из Проводника Windows.

Советы и инструкции
| 12 июля 2016 в 13:40

Файлы Bash on Ubuntu on Windows доступны в папке C:\Users\имя_пользователя\AppData\Local\lxss\. По умолчанию эта папка скрыта, для доступа к ней придётся предварительно включить отображение скрытых файлов (Вид → Скрытые элементы).

Где находятся файлы Ubuntu в Bash для Windows 10?

Как вы наверное уже поняли, эта папка создаётся для каждого пользователя Windows в отдельности, Так что подсистема Linux у каждого из них своя, при поиске или модификации файлов это нужно учитывать.

К слову, из Bash получить доступ к файлам в Windows даже проще: все диски компьютера автоматически монтируются в привычную для любого пользователя Linux директорию — /mnt. То есть для просмотра содержимого диска С: достаточно ввести команду ls /mnt/c, например.

Где находятся файлы Ubuntu в Bash для Windows 10?

В этом случае нужно помнить о том, что Bash запускается с правами текущего пользователя Windows. То есть если для управления некоторыми файлами или папками вам потребовались права администратора системы, то и Bash нужно перезапустить от имени администратора.

Where is the Ubuntu file system root directory in Windows Subsystem for Linux and vice versa?

I have installed Ubuntu subsystem on Windows 10 (after enabling feature in settings), but where is the Ubuntu file system root directory located in the drive?

909 10 10 silver badges 14 14 bronze badges
asked Apr 21, 2016 at 10:06
5,823 3 3 gold badges 11 11 silver badges 5 5 bronze badges

PLEASE NOTE We (the WSL team) STRONGLY recommend you do NOT spelunk into the Linux distro data folders ). If you do, data loss and/or corruption is VERY likely We are working to improve this interop scenario and will announce any progress on our blog: blogs.msdn.microsoft.com/commandline

Nov 14, 2017 at 18:34

@RichTurner I’ve found there’s a very specific (and annoying) reason — corporate policies marking the .ssh folder with the wrong permissions repeatedly means needing to mark the structure as «off limits» to the corporate scripts. But generally — I’d agree with you.

Mar 1, 2018 at 11:56
Although it looks like on boxes with more recent updates — this no longer happens.
Mar 1, 2018 at 12:04

@DannyStaple If you need to change the permissions on files/folders in your Linux distro from Windows, use wsl.exe , e.g. wsl chmod 600 ~/.ssh/id* — do not copy files into these folders via the Windows filesystem.

Mar 2, 2018 at 2:14

@mehrdad WSL implements a P9 fileserver, exposing/marshalling files from/to the distro’s filesystem as any P9 fileserver would. This way there is no NTFS metadata to marshal. Please watch Craig Loewen & Ben Hillis’ session at Build 2919 for more info

May 30, 2019 at 2:58

6 Answers 6

For Ubuntu installed from the Windows store:

Each distribution you install through the store is installed to that application’s appdata directory. For example: C:\Users\\AppData\Local\Packages\CanonicalGroupLimited.UbuntuonWindows_79rhkp1fndgsc\LocalState — benhillis

For WSL2 you can access to home directory from windows (Windows 10 build 18342) like this :

In earlier iterations of Windows Subsystem for Linux, the Ubuntu file system was at %localappdata%\Lxss (e.g., C:\Users\Username\AppData\Local\Lxss — replace the Username with your Username on Windows). See the WSL blog post on File System Support:

The primary file system used by WSL is VolFs. It is used to store the Linux system files, as well as the content of your Linux home directory. As such, VolFs supports most features the Linux VFS provides, including Linux permissions, symbolic links, FIFOs, sockets, and device files.

VolFs is used to mount the VFS root directory, using %LocalAppData%\lxss\rootfs as the backing storage. In addition, a few additional VolFs mount points exist, most notably /root and /home which are mounted using %LocalAppData%\lxss\root and %LocalAppData%\lxss\home respectively. The reason for these separate mounts is that when you uninstall WSL, the home directories are not removed by default, so any personal files stored there will be preserved.

CAUTION

Creating/modifying any files within the Linux subsystem using Windows apps & tools can cause Data corruption and data loss in Ubuntu subsystem! (Thanks to Rich Turner for suggesting these words of caution!) This is absolutely not supported. From the same blog post:

Interoperability with Windows

While VolFs files are stored in regular files on Windows in the directories mentioned above, interoperability with Windows is not supported. If a new file is added to one of these directories from Windows, it lacks the EAs needed by VolFs, so VolFs doesn’t know what to do with the file and simply ignores it. Many editors will also strip the EAs when saving an existing file, again making the file unusable in WSL.

Your Windows file system is located at /mnt/c in the Bash shell environment.

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *