WSL: доступ к файлам и запуск команд между Windows и Linux

Введение
Windows Subsystem for Linux (WSL) — это подсистема в Windows, которая запускает Linux-дистрибутивы без необходимости двойной загрузки или полноценных виртуальных машин. Ключевая ценность WSL — возможность одновременно запускать приложения и инструменты обеих систем и легко пересылать данные между ними.
Определение в одну строку: WSL — это совместимая среда для запуска Linux-бинарников внутри Windows с интеграцией файловой системы и процессов.
Important: WSL бывает нескольких версий (WSL 1 и WSL 2). WSL 2 использует виртуализированное ядро Linux и отличается поведением сети и производительностью ввода-вывода. Если релевантно — уточните используемую версию перед изменением конфигурации.
Что в этой статье
- Как открыть файлы Linux из Проводника Windows
- Как открыть файлы Windows из Linux (WSL)
- Запуск Windows-команд из Linux и наоборот
- Запуск GUI Linux-программ в Windows
- Команды-справочник, типичные ошибки и решения
- Контрольные списки для разработчика, администратора и пользователя
- Критерии приёмки и рекомендации по безопасности
Доступ к файлам Linux из Проводника Windows

WSL монтирует дистрибутивы так, что их файловые системы доступны из Проводника Windows. В левой боковой панели вы увидите значок Tux (пингвин) — щёлкните стрелку рядом, чтобы развернуть список установленных дистрибутивов и перейти в их корни. Альтернативно, в адресной строке Проводника введите:
\\wsl$Это откроет корневые точки всех дистрибутивов. Чтобы перейти прямо в конкретный дистрибутив, добавьте его имя, например:
\\wsl$\\Ubuntu\\Примечание: в путях Windows используются обратные слеши (\). Если вы копируете Linux-пути, замените прямые слеши (/) на обратные при работе в Проводнике.
Открытие текущей директории WSL в Проводнике (из командной строки WSL):
explorer.exe .Это демонстрирует тесную интеграцию: командная строка WSL может открыть Проводник в текущей директории.
Доступ к файлам Windows из Linux

С Windows-дисками можно работать прямо из WSL. Буквенные диски Windows монтируются по пути /mnt/<буква> — например, диск C: доступен как /mnt/c. Примеры:
- C:\Windows → /mnt/c/Windows
- C:\Users\Alice\Documents → /mnt/c/Users/Alice/Documents
Это применимо и для графических Linux-программ, которые могут открыть файлы Windows-проекта через /mnt/*.
Важно: скорость операций с файлами на /mnt/ может отличаться в зависимости от версии WSL (WSL 1 vs WSL 2) и от типа файловой системы на Windows (NTFS). Для интенсивной работы с файлами на Linux лучше хранить исходники внутри файловой системы дистрибутива (например, в /home), а не напрямую на /mnt/.
Запуск Windows-команд из Linux

В терминале WSL вы можете запускать исполняемые файлы Windows, добавив к имени .exe. Например:
notepad.exe fileПримеры интеграции с пайпами и фильтрами Linux:
powershell.exe dir "C:/" | grep 'Windows'Тонкости и хитрости:
- Windows-программы чувствительны к формату путей: лучше передавать пути в Windows-формате или корректно экранировать слеши.
- Windows команды нечувствительны к регистру имён файлов, Linux — чувствителен. Учтите это при комбинировании.
- Права доступа при запуске Windows-программы из WSL соответствуют правам процесса WSL и учётной записи пользователя Windows, с которой запущен процесс.
Если вы видите отказ в доступе к системным файлам (например, pagefile.sys), это нормально для непривилегированных пользователей. Используйте sudo в WSL, чтобы получить привилегии в Linux-части и просмотреть содержимое /mnt/c:
sudo ls /mnt/cОднако sudo не поднимает привилегии Windows-процесса: операции, требующие прав администратора Windows, всё ещё потребуют запуска от администратора в самой Windows.
Запуск Linux-команд из PowerShell

В PowerShell вы можете выполнить любую Linux-команду через команду wsl, например:
wsl ls /binКонтекст безопасности: процессы, запущенные через wsl из PowerShell, наследуют права той сессии, которая запустила Windows-команду. Если PowerShell запущен от имени администратора, команда wsl будет выполняться в повышенном контексте.
Запуск графических Linux-программ в Windows

В Windows 11 и современных версиях WSL поддерживается запуск GUI-приложений Linux прямо в Windows-окне. Есть два основных способа:
- Запустить программу из WSL-терминала, например:
emacs- Запустить из меню «Пуск»: установленные графические приложения появятся в папке дистрибутива.
Если приложение занимает терминал, отправьте его в фон, добавив &:
emacs &Чтобы перевести запущенный процесс в фон, используйте стандартные инструменты управления заданиями в shell:
- Ctrl+z — приостановить.
- bg — возобновить в фоне.
Замечание: поведение фоновых процессов зависит от используемого shell и оконного менеджера в WSL GUI-стеке.
Частые ошибки и их решения
- “Access denied” при ls /mnt/c: проверьте права Windows; некоторые системные файлы доступны только администраторам.
- Медленное чтение/запись на /mnt/c: для разработки храните репозитории в файловой системе дистрибутива (~/project).
- Проблемы с путями: будьте внимательны с / и \; при вызове Windows-приложений из Linux используйте форматы, понятные принимающей программе.
- Неправильная версия WSL: некоторые GUI-функции и поведение I/O зависят от WSL 2. Обновите ядро WSL или переключитесь на WSL 2 при необходимости.
Команды-справочник (полезные примеры)
- Открыть текущую директорию WSL в Проводнике:
explorer.exe .- Открыть файл в Notepad из WSL:
notepad.exe file- Найти строку “Windows” в выводе dir PowerShell через grep:
powershell.exe dir "C:/" | grep 'Windows'- Просмотреть C: из WSL с привилегиями:
sudo ls /mnt/c- Запустить Linux-команду из PowerShell:
wsl ls /bin- Запустить GUI-приложение в фоне:
emacs &- Приостановить и отправить в фон:
# Ctrl+z
bgРоли и контрольные списки
Разработчик:
- Хранить исходники в файловой системе WSL для скорости.
- Настроить .gitignore для кросс-платформенных файлов (например, .DS_Store, Thumbs.db).
- Проверять регистр имён файлов перед пушем и CI.
Системный администратор:
- Проверить версию WSL (wsl –list –verbose) и обновить ядро.
- Настроить резервное копирование важных конфигураций WSL.
- Контролировать права доступа при совместном использовании ресурсов.
Обычный пользователь:
- Использовать Проводник через \wsl$ для простого доступа к файлам дистрибутива.
- Запускать Windows-программы из WSL с .exe.
- В случае проблем — перезапустить дистрибутив (wsl –shutdown).
Критерии приёмки
- Убедитесь, что из WSL открывается Проводник командой explorer.exe . и видны ожидаемые файлы.
- Проверьте, что запуск notepad.exe file открывает файл в Windows.
- В PowerShell wsl ls /bin должен вернуть список файлов из /bin дистрибутива.
- GUI-приложение Linux должно запускаться и отображаться в окне Windows при вашей конфигурации WSL.
Риски и рекомендации по безопасности
- Права доступа: операции между средами наследуют права процессов — будьте осторожны при выполнении команд от имени администратора.
- Антивирус и резервное копирование: некоторые антивирусы могут вмешиваться в выполнение исполняемых файлов между системами; настройте исключения при необходимости.
- Конфиденциальные данные: если вы обрабатываете персональные данные, проверьте соответствие локальным требованиям по хранению и обработке (например, GDPR) — убедитесь, где именно данные сохраняются и кто имеет к ним доступ.
Альтернативные подходы и когда это не подходит
- Если вам нужна полная изоляция среды (например, тестирование низкоуровневых модулей ядра), используйте полноценные виртуальные машины или отдельные физические машины.
- Для приложений с высокими требованиями к I/O лучше тестировать на нативном Linux или конфигурировать WSL 2 и использовать файловую систему дистрибутива.
Шпаргалка по миграции и совместимости
- Проверяйте совместимость окружений: версии библиотек и бинарников в WSL могут отличаться от целевого Linux-сервера.
- Автоматизируйте сборку артефактов внутри WSL, чтобы избежать проблем с переносимостью между NTFS и ext4.
Краткий словарь терминов
- WSL — подсистема Windows для запуска Linux.
- /mnt/* — точка монтирования Windows-дисков внутри WSL.
- explorer.exe — Проводник Windows (можно вызывать из WSL).
- wsl — команда в Windows для выполнения Linux-команд.
Краткое резюме
WSL устраняет барьер между Windows и Linux: вы можете открывать файлы дистрибутива в Проводнике, запускать Windows-приложения из Linux и наоборот. Для производительного и безопасного использования учитывайте особенности файловых систем, права доступа и версию WSL.
Notes: Проверьте версию WSL и политики безопасности в вашей организации перед массовым переносом рабочих процессов.
Похожие материалы
Google Pixel 8: дата, ожидания и трансляция
Как скачивать Netflix для офлайн‑просмотра
Настройка Netflix: персонализация аккаунта
Как разблокировать отключённый iPad — пошагово
Android-криптоджекинг: защититесь от скрытого майнинга