company_banner

Крутые лайфхаки для работы с WSL (Подсистема Windows для Linux )

Автор оригинала: Microsoft
  • Перевод
Я глубоко погружен в WSL (Windows Subsystem для Linux), и теперь, когда WSL2 доступен в Windows Insiders, это отличное время, чтобы по-настоящему изучить доступные опции. Очень интересная фича, которую я нашел в WSL, — возможность «чисто» перемещать данные между мирами. Это не тот опыт, который вы легко можете получить с полноценными виртуальными машинами, и он говорит о тесной интеграции Linux и Windows.

Под катом подробнее о некоторых интересных вещах, которые вы можете делать, смешивая арахисовое масло и шоколад!



Запустите Windows Explorer из Linux и получите доступ к файлам вашего дистрибутива


Когда вы находитесь в командной строке WSL / bash и хотите получить визуальный доступ к своим файлам, вы можете запустить «explorer.exe .», где находится текущий каталог, и вы получите окно проводника Windows, в котором ваши файлы Linux будут доставлены вам через сервер локальной сети plan9.



Используйте настоящие команды Linux (не CGYWIN) из Windows


Я уже писал об этом раньше, но теперь есть алиасы для функций PowerShell, которые позволяют вам использовать настоящие команды Linux изнутри Windows.

Вы можете вызвать любую команду Linux напрямую из DOS/Windows/чего угодно, просто поместив ее после WSL.exe, вот так.

C:\temp> wsl ls -la | findstr "foo"
-rwxrwxrwx 1 root root     14 Sep 27 14:26 foo.bat

C:\temp> dir | wsl grep foo
09/27/2016  02:26 PM                14 foo.bat

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

C:\temp> wsl ls -la /proc/cpuinfo
-r--r--r-- 1 root root 0 Sep 28 11:28 /proc/cpuinfo

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

Исполняемые файлы Windows можно вызывать/запускать из WSL/Linux, поскольку путь к Windows находится в $PATH до Windows. Все, что вам нужно сделать, это явно вызвать его с .exe в конце. Вот как работает «Explorer.exe.». Вы также можете сделать notepad.exe или любой другой файл.

Запустите Visual Studio Code и получите доступ к вашим приложениям Linux нативно на Windows


Вы можете запустить «code.», находясь в папке в WSL, и вам будет предложено установить расширения VS Remote.. Это эффективно разделяет Visual Studio Code пополам и запускает «headless» VS Code Server в Linux с клиентом VS Code в мире Windows.

Вам также необходимо установить Visual Studio Code и расширение Remote — WSL. При желании, установите бета-версию Windows Terminal для лучшего опыта работы с терминалом в Windows.

Вот отличная подборка статей из блога Windows Command Line.


Вот преимущества WSL 2

  • Виртуальные машины являются ресурсоемкими и создают очень независимый опыт.
  • Исходный WSL был очень «подключенным», но имел довольно низкую производительность по сравнению с VM.
  • WSL 2 предлагает гибридный подход с облегченными VM, полностью подключенным интерфейсом и высокой производительностью.

Запуск нескольких Linux в считанные секунды


Здесь я использую «wsl --list --all», и в моей системе уже есть три Linux.

C:\Users\scott>wsl --list --all
Windows Subsystem for Linux Distributions:
Ubuntu-18.04 (Default)
Ubuntu-16.04
Pengwin

Я могу легко запустить их, а также назначить профили, чтобы они появлялись в моем Windows Terminal.

Запустите X Windows Server под Windows с Pengwin


Pengwin -- это специальный Linux-дистрибутив WSL, который очень крут. Вы можете получить его в Windows Store. Объедините Pengwin с X Server, например X410, и вы получите очень классную интегрированную систему.

Простое перемещение дистрибутивов WSL между системами Windows.


Ana Betts отмечает эту замечательную технику, с помощью которой вы можете легко перенести свой идеальный дистрибутив WSL2 с одной машины на n машин.

wsl --export MyDistro ./distro.tar

# разместите его где-нибудь, Dropbox, Onedrive, где-то еще

mkdir ~/AppData/Local/MyDistro
wsl --import MyDistro ~/AppData/Local/MyDistro ./distro.tar --version 2 

Вот и все. Получите идеальную настройку Linux, синхронизированную на всех ваших системах.

Используйте провайдер учетных данных Windows Git внутри WSL


Все перечисленные фичи переткают в кульминацию в этом крутом посте от Ana Betts, где она интегрирует Windows Git Credential Provider в WSL, превращая /usr/bin/git-credential-manager в сценарий оболочки, который вызывает диспетчер git creds Windows. Гениально. Это было бы возможно только при условии чистой и тесной интеграции.

Пробуйте, устанавливайте WSL, Windows Terminal, и создавайте блестящую среду Linux на Windows..
Microsoft
393,36
Microsoft — мировой лидер в области ПО и ИТ-услуг
Поделиться публикацией

Похожие публикации

Комментарии 30

    +16

    С таким переводом знакомиться со статьей лучше в оригинале. При всем уважении к автору — вообще никакой адаптации под язык, машинный перевод буквально в каждом абзаце.


    хотите получить визуальный доступ к своим файлам

    вы получите окно проводника

    Вы также можете сделать notepad.exe

    создают очень независимый опыт

    Исходный WSL был очень «подключенным»

    Статья, как пользователю Linux, мне интересна, но абсолютно пропадает желание читать.

      +1

      Круто. А зачем?

        +1
        Чтобы постепенно стереть границу между Windows и Linux. Например при необходимости работы с специфическим софтом который есть только под одну ОС. Но выглядит пока не «user friendly»
          –2

          Границу между Windows и Linux?
          Полноте. Сравнили ж… закрытый код и открытый код. Это надо стирать, открывая для всех.


          А так — простая симуляция и эмуляция опенсорсного и известного в проприетарном и неизвестном.


          Я бы в одном лесу на Windows работать не стал, и печеньки бы свои ей (=им, Microsoft) не отдал. Поэтому не стоит так сильно радоваться новостям маркетологов, на то они и маркетологи, им важно продать продукт, показав лишь вершину. Обычным юзерам этого хватит, но им и не нужен линукс.
          А профессионалы своего дела (разработки или безопасности) выберут обычный, открытый и безопасный линукс. А не то, WSL в мешке.

          +4
          Некоторые задачи значительно удобнее делать в командной строке Linux. При этом есть куча программистов, которые могут делать свою основную работу только под Windows (специфика сферы). Теперь разницы почти нет. Работаешь себе в Windows, нужен тебе какой-нибудь grep или awk — запустил в один клик WSL и юзаешь.
            0
            Чтоб работать с linux серверами с windows машины.
              0
              На Delphi например удобно отлаживать backend и под win и под Linux
                0
                иногда копроративная политика требует юзания винды, такие вещи могут спасти, но первый WSL был не годен, второй пока не пробовал.
                  0
                  «А зачем?» Вы хоть в курсе, сколь людей этим уже пользуются? Даже я постоянно пользую vmware с ssd диском физическим, подключенным к ней. (Ну чтобы можно было грузить и как boot, и через vmware.) Но многим прикольнее из коробки пользовать. Кстати, кто в курсе, что можно грузиться с usb-c в видекартах Turing? Sata--usb-c и вперед))) очень удобно, там ведь уже usb 10 gbit))
                  +1
                  Что же такого особенного в Pengwin, что не умеют другие WSL-дистры?
                    –1
                    Еще бы был нормальный терминал под винду с поддержкой wsl
                      +1
                      В качестве «нормального терминала под винду» можно посмотреть на Windows Terminal.
                        0
                        Он ничего кроме вкладок не умеет. Было бы неплохо, если бы майки на него прикрутили ssh connection manager и больше кастомизации.
                          0

                          Для ssh никакого нового терминала не требуется, достаточно putty и стандартных возможностей Проводника.

                            0
                            Putty застрял в прошлом веке, у него лишь в скорости преимущество, и я не хочу под него генерировать отдельные серты.
                              0

                              А зачем их генерировать-то?


                                0
                                Ок не знал, но все равно putty и superputty мне не подходят)
                          –1
                          Поставил, поюзал. Он классный, быстрый. Но у него нет встроенного менеджера ssh соединений. Я уже думаю самому что ли на баше написать что ли.
                          0
                          попробуйте github.com/Eugeny/terminus

                          Далеко не идеален но с wsl справляется неплохо
                            0
                            Я его и юзаю. Не нравится то, что он на электроне.
                            0
                            Их куча, как только появился wsl первой версии. Например Cmder или новый Windows Terminal.
                              +1
                              C нормальными терминалами действительно сложно, я пока для себя ничего лучше mobaxterm не нашёл
                              +2

                              Я даже из-за подсистемы линукс решил таки после 18 лет использования линуксов на домашнем компе пересесть на windows10. Подсистема конечно слишком медленна из за высокой степени абстракции (я про первую версию) но работать можно. Я более менее успешно переехал с реактом + nodejs. В итоге конечно вернулся на линукс где то месяца через три, но по другим причинам. Не умею я в винду. Но подсистема линукс норм. Докер тоже помогает.


                              А перевод да, трудночитаем

                                +1

                                Самый крутой лайфхак — это просто полностью перейти на Linux.

                                  0

                                  Я перешёл с Linux на wsl2. И жду только phpstorm + goland. После этого, линукс можно деинсталлить.

                                    0

                                    Так phpstorm давно поддерживает wsl, как для php, так и для node js

                                  0
                                  А WSL разве уже доступен для всех редакций Windows 10 в том числе и Home?
                                  И для своей установки WSL перестал требовать LiveID и доступ к Windows Store?
                                    0
                                    LiveID не нужен. Store работает без него.
                                    Чтобы скачать и установить предпочтительные дистрибутивы, у вас есть три варианта:
                                    1. Скачайте и установите их из Microsoft Store (см. ниже).
                                    2. Скачайте и установите их с помощью командной строки или сценария (ознакомьтесь с инструкциями по установке вручную).
                                    3. Скачайте их, а затем вручную распакуйте и установите (инструкции для Windows Server доступны здесь).


                                    Про WSL и Home писали тут.
                                    +1

                                    advertka когда уже? Jetbrains, мы не хотим юзать vscode, нам нужен goland и phpstorm с wsl2

                                      0
                                      Подскажите, совместим ли WSL2 с виртуалбокс?

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

                                      Самое читаемое