- Работа в файловых системах Windows и Linux
- Хранение файлов и производительность в файловых системах
- Просмотр текущего каталога в проводнике Windows
- Учет регистра в именах файлов и каталогов
- Взаимодействие между командами Windows и Linux
- Запуск инструментов Linux из командной строки Windows
- Смешивание команд Linux и Windows
- Запуск инструментов Windows из Linux
- Совместное использование переменных среды между Windows и WSL с помощью WSLENV
- Флаги WSLENV
- Отключение взаимодействия
- Установка консольной Linux в Windows 10
- Активация Bash или WSL
- Установка дистрибутива Linux
- Добавление учетной записи пользователя Linux
- Изменение рабочего каталога по умолчанию
- Справочник по командам для WSL
- Основные команды
- Установка
- Установка определенного дистрибутива Linux
- Список доступных дистрибутивов Linux
- Список установленных дистрибутивов Linux
- Указание версии WSL (1 или 2)
- Указание версии WSL по умолчанию
- Указание дистрибутива Linux по умолчанию
- Запуск определенного дистрибутива Linux из PowerShell или CMD
- Обновление WSL
- Проверка состояния WSL
- Команда help
- Домашний каталог
- Shutdown
- Завершение
- Экспорт дистрибутива в TAR-файл
- Импорт нового дистрибутива
- Отмена регистрации или удаление дистрибутива Linux
- Подключение диска или устройства
Работа в файловых системах Windows и Linux
При работе с файловыми системами Windows и Linux следует учитывать ряд моментов. В этом пошаговом руководстве рассматриваются некоторые из них, а также приводятся примеры поддержки взаимодействия для смешанного использования команд на основе Windows и Linux.
Хранение файлов и производительность в файловых системах
Мы не рекомендуем работать с разными операционными системами, если на это нет особой причины. Для ускорения производительности сохраняйте файлы в файловой системе WSL, если используете командную строку Linux (Ubuntu, OpenSUSE и т. д.). Если вы работаете в командной строке Windows (PowerShell, командной строке), сохраняйте файлы в файловой системе Windows.
Например, при хранении файлов проекта WSL:
- Используйте корневой каталог файловой системы Linux: \\wsl$\Ubuntu-18.04\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 из командной строки:
Также можно использовать команду powershell.exe /c start . . Обязательно добавьте точку в конце команды, чтобы открыть текущий каталог.
Чтобы просмотреть все доступные дистрибутивы Linux и их корневые файловые системы в Windows проводнике, введите \\wsl$ в адресной строке.
Учет регистра в именах файлов и каталогов
Чувствительность к регистру определяет, обрабатываются ли прописные (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 ).
Двоичные файлы вызываются следующим образом.
- Используется тот же рабочий каталог, что и для текущей командной строки или сеанса PowerShell.
- Файл выполняется от имени пользователя WSL по умолчанию.
- Требуются те же права администратора Windows, что и у вызывающего процесса и терминала.
Команда Linux после wsl (или wsl.exe ) обрабатывается как любая команда, выполняемая в WSL. Можно выполнять sudo, конвейерную передачу и перенаправление файлов.
Пример использования sudo для обновления дистрибутива Linux по умолчанию:
Имя пользователя дистрибутива Linux по умолчанию будет указано после выполнения этой команды, и вам будет предложено указать пароль. После правильного ввода пароля дистрибутив скачает обновления.
Смешивание команд Linux и Windows
Ниже приведено несколько примеров смешиваний команд Linux и Windows с помощью PowerShell.
Чтобы выполнить команду Linux ls -la для вывода списка файлов и команду PowerShell findstr для фильтрации результатов слов, содержащих git, объедините команды:
Чтобы выполнить команду PowerShell dir для вывода списка файлов и команду Linux grep для фильтрации результатов слов, содержащих git, объедините команды:
Чтобы использовать команду Linux ls -la для вывода списка файлов и команду PowerShell > out.txt для вывода этого списка в текстовый файл с именем out.txt, объедините команды:
Команды, передаваемые в wsl.exe , перенаправляются в процесс WSL без изменения. Пути к файлам должны быть указаны в формате WSL.
Чтобы выполнить команду Linux ls -la для вывода списка файлов в пути файловой системы Linux /proc/cpuinfo с помощью PowerShell, сделайте следующее:
Чтобы выполнить команду Linux ls -la для вывода списка файлов в пути файловой системы Windows C:\Program Files с помощью PowerShell, сделайте следующее:
Запуск инструментов 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), введите:
Давайте рассмотрим пример сочетания команд Windows и Linux. Откройте дистрибутив Linux (например, Ubuntu) и создайте текстовый файл: touch foo.txt . Теперь используйте команду Linux ls -la , чтобы отобразить список файлов прямого доступа и сведения об их создании, а также средство Windows PowerShell findstr.exe , чтобы отфильтровать результаты и отобразить только файл foo.txt :
Средства Windows должны иметь расширение файла, его регистр символов должен совпадать с регистром в имени файла и эти файлы должны быть исполняемыми. Неисполняемые файлы, в том числе сценарии пакетного выполнения и собственные команды командной строки, такие как dir , можно выполнять с помощью команды cmd.exe /C .
Например, отобразите список содержимого каталога C:\ файловой системы Windows, введя:
Или выполните команду ping , чтобы отправить запрос проверки связи на веб-сайт microsoft.com:
Параметры передаются в двоичный файл Windows без изменений. Например, следующая команда откроет C:\temp\foo.txt в notepad.exe .
Этот способ также будет работать:
Совместное использование переменных среды между 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, выполнив следующую команду в качестве привилегированного пользователя.
Чтобы повторно включить возможность запуска двоичных файлов Windows, закройте все сеансы WSL и повторно запустите bash.exe или выполните следующую команду от имени привилегированного пользователя.
Отключение взаимодействия не будет сохраняться между сеансами WSL, оно снова будет включено при запуске нового сеанса.
Источник
Установка консольной Linux в Windows 10
На данный момент консольные Linux свободно устанавливаются из Microsoft Store. Они идеально подходят для разработки, работы с файловой системой, удаленного администрирования и тысячи других задач. В этом руководстве я познакомлю вас с настройкой подсистемы Windows для Linux (WSL) на вашем компьютере с Windows, чтобы вы могли в полной мере использовать свои навыки работы с командной строкой UNIX. Для активации подсистемы Windows для Linux на вашем компьютере должна быть установлена 64-разрядная Windows 10 версии 1607 и выше. Если ваша версия ниже вам придется обновить Windows, прежде чем активировать подсистему.
Активация Bash или WSL
Подсистема Windows для Linux (WSL) является встроенной функцией Windows 10, но ее необходимо включить вручную, и есть несколько способов это сделать:
С помощью команды.
Для этого запускаем командную строку — Power Shell, от имени администратора. Далее набираем следующую команду:
Система попросит перезагрузку — соглашаемся, набираем «Y» и нажимаем «Enter».
С помощью параметров.
Открываем параметры > Приложения > Приложения и возможности. Находим «Сопутствующие параметры» и нажимаем «Программы и компоненты». В открывшемся окне выбираем «Включение или отключение компонентов Windows». Ищем в списке «Подсистема Windows для Linux» и ставим галочку. Перезагружаем компьютер.
Установка дистрибутива Linux
После перезагрузки компьютера, следующим шагом будет установка дистрибутива Linux. Откройте Microsoft Store — поищите «Microsoft Store» в строке поиска Windows, или найдите его в меню «Пуск». В приложении магазина выполните поиск по запросу «Linux». Выберите необходимый вам дистрибутив (в большинстве случаев выбирают Ubuntu) и нажмите «Получить» и «Установить».
Добавление учетной записи пользователя Linux
После завершения загрузки и установки приложения — запускаем его. Откроется терминал, и система предложит создать учетную запись пользователя. Введите предпочитаемое имя пользователя и пароль. Это могут быть любые имя пользователя и пароль, не обязательно использовать ваше имя пользователя и пароль от Windows. Обратите внимание, что вам будет предложено ввести ваш пароль дважды, и ваш пароль не будет отображаться в терминале, во время его ввода.
После создания аккаунта вы можете посмотреть где находится текущий рабочий каталог введя команду:
Каталог по умолчанию может быть неудобен для работы с файлами в вашей файловой системе Windows, поэтому необязательным шагом, может быть изменение каталога по умолчанию, чтобы не приходилось каждый раз переходить в нужный вам каталог после запуска командной строки.
Изменение рабочего каталога по умолчанию
Чтобы изменить рабочий каталог по умолчанию, мы можем отредактировать .bashrc . В качестве примера для данного руководства, я установлю каталог по умолчанию расположенный по следующему пути:
Естественно вы должны заменить его на свой путь к каталогу, который хотите использовать для работы по умолчанию. Откройте файл .bashrc следующей командой:
Прокрутите его до конца и нажмите i , что бы перейти в режим редактирования. Затем необходимо ввести cd , после чего указать путь к новому каталогу по умолчанию. Обратите внимание, что в Ubuntu ваш диск C: находится внутри папки /mnt/ , в результате чего у вас должна получается, примерно такая запись:
Хорошим тоном будет добавление комментария # , чуть выше сделанной записи, который кратко сообщит о том, что делает новая команда:
Далее нажмите Esc для выхода из режима редактирования, а затем введите — :wq для того, чтобы сохранить изменения и выйти в командную строку. Для проверки, сохранились ли все изменения, вы можете посмотреть файл bashrc , с помощью команды:
Затем, что бы перезапустить командную строку вводим следующую команду:
Командная строка будет перезапущена с нашим новым каталогом по умолчанию в качестве рабочего каталога.
Источник
Справочник по командам для WSL
Ниже приведены основные команды WSL в формате, поддерживаемом PowerShell или командной строкой Windows. Чтобы выполнить эти команды из командной строки дистрибутива Bash или Linux, измените wsl на wsl.exe .
Основные команды
После установки WSL поддерживаются следующие основные команды.
Установка
Устанавливает WSL и дистрибутив Linux Ubuntu. Подробнее.
Установка определенного дистрибутива Linux
Назначьте дистрибутив Linux для установки помимо установленного по умолчанию (Ubuntu), заменив именем дистрибутива. Эту команду можно также указать так: wsl -d .
Список доступных дистрибутивов Linux
Выводит список дистрибутивов Linux, доступных в интернет-магазине. Эту команду можно также указать так: wsl -l -o .
Список установленных дистрибутивов Linux
Выводит список дистрибутивов Linux, установленных на компьютере под управлением Windows, в том числе состояние (независимо от того, запущен дистрибутив или остановлен) и версию WSL, в которой работает дистрибутив (WSL 1 или WSL 2). Применяется в WSL 1 и WSL 2. Эту команду можно также указать так: wsl -l -v . Дополнительные параметры, которые можно использовать с командой list: —all — для перечисления всех дистрибутивов, —running — для вывода списка только тех дистрибутивов, которые запущены в данный момент, —quite — для отображения только имен дистрибутивов.
Указание версии WSL (1 или 2)
Чтобы указать версию WSL (1 или 2), в которой работает дистрибутив Linux, измените на имя дистрибутива, а — на число 1 или 2. Применяется в WSL 1 и WSL 2.
Указание версии WSL по умолчанию
Чтобы задать WSL 1 или WSL 2 как версию по умолчанию, измените на число 1 или 2, чтобы указать версию WSL, которая будет использоваться по умолчанию для установки новых дистрибутивов Linux. Например, wsl —set-default-version 2 . Применяется в WSL 1 и WSL 2.
Указание дистрибутива Linux по умолчанию
Чтобы задать дистрибутив Linux по умолчанию, который команды WSL будут использовать для запуска, измените на имя предпочитаемого дистрибутива Linux.
Запуск определенного дистрибутива Linux из PowerShell или CMD
Чтобы запустить определенный дистрибутив Linux от имени конкретного пользователя, измените на имя предпочитаемого дистрибутива Linux (например, Debian), а — на имя существующего пользователя (например, root). Если указанный пользователь не существует в дистрибутиве WSL, появится сообщение об ошибке. Чтобы ввести имя текущего пользователя, выполните команду whoami .
Обновление WSL
Позволяет обновить версию ядра WSL Linux вручную. Можно также использовать команду wsl —update rollback для отката к предыдущей версии ядра WSL Linux.
Проверка состояния WSL
Отображает общие сведения о конфигурации WSL, такие как тип дистрибутива по умолчанию, дистрибутив по умолчанию и версия ядра.
Команда help
Отображает список параметров и команд, доступных в WSL.
Домашний каталог
можно использовать с WSL для запуска в домашнем каталоге пользователя. Чтобы в командной строке WSL вернуться в домашний каталог из другого, можно использовать команду cd
Shutdown
Немедленно завершает работу всех запущенных дистрибутивов и облегченной служебной виртуальной машины с WSL 2. Эта команда может потребоваться в экземплярах, требующих перезапуска среды виртуальных машин WSL 2, например при изменении ограничений использования памяти или внесении изменений в файл .wslconfig.
Завершение
Чтобы завершить работу определенного дистрибутива или остановить его выполнение, замените именем нужного дистрибутива.
Экспорт дистрибутива в TAR-файл
Экспорт дистрибутива в TAR-файл. Именем файла может быть «-» для стандартного вывода.
Импорт нового дистрибутива
Импорт указанного TAR-файла в качестве нового дистрибутива. Именем файла может быть «-» для стандартного ввода. С этой командой также можно использовать параметр —version , чтобы указать, где будет выполняться импортированный дистрибутив: в WSL 1 или WSL 2.
Отмена регистрации или удаление дистрибутива Linux
Позволяет отменить регистрацию определенного дистрибутива или удалить его, заменив именем целевого дистрибутива. Это приведет к удалению дистрибутива из WSL, а также всех связанных данных. Вы также можете удалить приложение дистрибутива Linux на компьютере под управлением Windows так же, как и любое другое приложение из Store.
Подключение диска или устройства
Позволяет подключить физический диск во всех дистрибутивах WSL 2, изменив на путь к каталогу или файлу, где расположен диск. См. статью Подключение диска Linux в WSL 2. Возможны следующие значения.
- wsl —mount —bare : подключение диска к WSL 2 без подключения к файловой системе.
- wsl —mount —type : тип файловой системы, используемой при подключении диска, если не указано значение по умолчанию (ext4). Эту команду можно также указать так: wsl —mount -t . Тип файловой системы можно определить с помощью команды blkid , например: blkid .
- wsl —mount —partition
: номер раздела для подключения согласно индексу, если не указан вариант по умолчанию (весь диск).
Источник