Windows with linux shell

Как установить Linux в Windows 10

В Windows 10 появилась новая возможность для разработчиков — оболочка Ubuntu Bash, позволяющая запускать, устанавливать приложения Linux, использовать скрипты bash прямо в Windows 10, все это называется «Подсистема Windows для Linux». В версии Windows 10 1709 Fall Creators Update доступны уже три дистрибутива Linux для установки. Во всех случаях требуется 64-разрядная система для установки.

В этой инструкции — о том, как установить Ubuntu, OpenSUSE или SUSE Linux Enterprise Server в Windows 10 и некоторые примеры использования в конце статьи. Следует также учитывать, что есть некоторые ограничения при использовании bash в Windows: например, нельзя запускать GUI приложения (правда, сообщают об обходных путях с помощью X server). Кроме этого, командами bash нельзя запустить Windows-программы, несмотря на наличие полного доступа к файловой системе ОС.

Установка Ubuntu, OpenSUSE или SUSE Linux Enterprise Server в Windows 10

Начиная с версии Windows 10 Fall Creators Update (версия 1709) установка подсистемы Linux для Windows несколько изменилась по сравнению с тем, что было в предыдущих версиях (для предыдущих версий, начиная с 1607, когда функция была представлена в бета-версии, инструкция — во второй части этой статьи). Также обратите внимание, что в Windows 10 2004 можно установить Kali Linux с графическим интерфейсом.

Теперь необходимые шаги выглядят следующим образом:

  1. Прежде всего, необходимо включить компонент «Подсистема Windows для Linux» в «Панель управления» — «Программы и компоненты» — «Включение и отключение компонентов Windows».
  2. После установки компонентов и перезагрузки компьютера, зайдите в Магазин приложений Windows 10 и загрузите оттуда Ubuntu, OpenSUSE или SUSE Linux ES (да, теперь доступно три дистрибутива). При загрузке возможны некоторые нюансы, о которых далее в примечаниях.
  3. Запустите загруженный дистрибутив как обычное приложение Windows 10 и выполните первоначальную настройку (имя пользователя и пароль).

Для включения компонента «Подсистема Windows для Linux» (первый шаг) можно использовать команду PowerShell:

Теперь несколько примечаний, которые могут быть полезны при установке:

  • Вы можете установить сразу несколько дистрибутивов Linux.
  • При загрузке дистрибутивов Ubuntu, OpenSUSE и SUSE Linux Enterprise Server в русскоязычном магазине Windows 10 заметил следующий нюанс: если просто ввести название и нажать Enter, то нужных результатов в поиске не оказывается, но если начать вводить и затем нажать по появляющейся подсказке, автоматически попадаешь на нужную страницу. На всякий случай прямые ссылки на дистрибутивы в магазине: Ubuntu, OpenSUSE, SUSE LES.
  • Запускать Linux можно и из командной строки (не только с плитки в меню Пуск): ubuntu, opensuse-42 или sles-12

Установка Bash в Windows 10 1607 и 1703

Для того, чтобы установить оболочку bash, выполните следующие простые действия.

  1. Зайдите в параметры Windows 10 — Обновление и безопасность — Для разработчиков. Включите режим разработчика (должен быть подключен Интернет для загрузки необходимых компонентов).
  2. Зайдите в панель управления — Программы и компоненты — Включение или отключение компонентов Windows, отметьте пункт «Подсистема Windows для Linux».
  3. После установки компонентов, введите в поиске Windows 10 «bash», запустите предлагаемый вариант приложения и выполните установку. Вы можете задать свое имя пользователя и пароль для bash, либо использовать пользователя root без пароля.

По завершении установки вы можете запускать Ubuntu Bash на Windows 10 через поиск, или создав ярлык для оболочки там, где вам требуется.

Примеры использования Ubuntu Shell в Windows

Для начала отмечу, что автор не является специалистом по bash, Linux и разработке, а примеры ниже — просто демонстрация того, что в Windows 10 bash работает с ожидаемыми результатами для тех, кто разбирается в этом.

Приложения Linux

Приложения в Windows 10 Bash можно устанавливать, удалять и обновлять с помощью apt-get (sudo apt-get) из репозитория Ubuntu.

Использование приложений с текстовым интерфейсом ничем не отличается от такового на Ubuntu, например, вы можете установить Git в Bash и использовать его привычным образом.

Скрипты bash

Вы можете запускать скрипты bash в Windows 10, создать их можно в имеющемся в оболочке текстовом редакторе Nano.

Скрипты bash не могут вызвать программы и команды Windows, но возможен запуск скриптов и команд bash из bat файлов и сценариев PowerShell:

Также вы можете попробовать запускать приложения с графическим интерфейсом в Ubuntu Shell в Windows 10, на этот счет в Интернете уже имеется не одна инструкция и суть способа сводится к использованию Xming X Server для вывода GUI приложения. Хотя официально возможность работы с такими приложениями Майкрософт не заявлена.

Как было написано выше, я не тот человек, который может в полной степени оценить ценность и функциональность нововведения, но вижу как минимум одно применение для себя: различные курсы Udacity, edX и другие, связанные с разработкой проходить будет куда проще, работая с необходимыми инструментами прямо в bash (а в этих курсах обычно демонстрируется работа именно в терминале MacOS и Linux bash).

А вдруг и это будет интересно:

09.08.2016 в 08:56

Позавчера установил российский дистрибутив Линукса — ROSA Desktop Fresh R8, свежайший релиз. ВСЁ «искаропки». Это лучший дистрибутив Линукса. Снёс Десятку 1607. И никогда не вернусь.

09.08.2016 в 11:43

Да, после 29 июля народ побежал с Win 10 на семерку и Линукс. Десятка меня устраивала, но со временем возникло неприятное ощущение, что в компе хозяйничают посторонние. За информацию о дистрибутиве спасибо.

Читайте также:  Как исправить жесткий диск через windows

17.06.2018 в 19:54

Никогда не говори никогда!. Win10 лучшее решение Microsoft на базе ядра Linux. Удивлен? )
У тебя получилось так: уйду с Linux чтобы прийти к Linux и никогда не вернусь к Linux ) . Да win10 не Linux. Но как называть ОС на базе Linux . )
Или все таки ядра Linux не так хороши . ) По ходу чувак ты не в теме )

09.08.2016 в 23:48

Это слишком сложно. А можете описать, как поставить Линукс Убунту на вмртуальный бокс или стол? Спасибо!

10.08.2016 в 09:52

Здравствуйте. Да просто скачайте VirtualBox (с. оф. сайта) и образ ISO Ubuntu Linux. Там дальше все предельно понятно будет: создать виртуальную машину в VirtualBox, выбрать ISO, чтобы с него установилась система: все по-русски и с подсказками.

09.01.2017 в 17:27

Случилась такая беда, забыл пароль, как его сбросить? или как переустановить подсистему линукс для виндовс? после отката действий в обратном порядке и переустановке всего заново ничего не происходит.

10.01.2017 в 11:08

не знаю, сработает ли (не проверял, взял из предложенного гуглом):
1) командная строка (именно она, не bash) от администратора
2) lxrun /setdefaultuser другое_имя_пользователя
Вас запросят пароль для него (нового пользователя). А при следующем входе в bash вы уже будете под другим пользователем.
Также в качестве другое_имя_пользователя можно прописать root

11.02.2017 в 13:32

в CMD введи — lxrun /uninstall /full
сносит линь полностью. потом снова — bash
установка заново

26.02.2017 в 16:17

Ну наконец-то я теперь смогу установить свой любимый wine!

27.02.2017 в 11:49

Это шутка или я чего-то не допонимаю? Зачем может пригодиться Wine в Windows?

03.08.2018 в 10:44

Найс шутка, пожалуй запомню

05.03.2017 в 00:49

Не удаётся установить подсистему Linux для Windows. Windows 10 корпоративная.

C:\WINDOWS\system32>bash
— Бета-версия компонента —
Будет выполнена установка среды Ubuntu в Windows. Она предоставляется Canonical
и лицензирована в соответствии с условиями компании, с которыми можно ознакомиться здесь:
aka.ms/uowterms
Приложение, которое вы пытаетесь запустить, не поддерживается в этой версии Windows.

Подскажите в чем именно проблема, bash не доступна в корпоративной редакции Windows 10?

05.03.2017 в 09:16

Здравствуйте. Точно ответить не могу, но возможные варианты:
1) если LTSB, то там нету — так как bash пока в бета-версии.
2) требуется сборка не ниже 14316
Ну и на всякий случай: режим разработчика включили?

29.07.2017 в 22:54

Уважаемый Дмитрий! Не устану Вас благодарить за столь полезный сайт с прекрасным наполнением! Благодарю за Ваш труд и потраченное время, которые экономят время других!
P. S. (Удалить после прочтения). При беглом чтении статьи глаза увидели повторение слов («Для начала отмечу, что что автор не является специалистом по bash…).

30.07.2017 в 12:21

Спасибо за отзыв. Ошибку исправил, спасибо.

31.10.2017 в 12:51

Спасибо за статьи и вообще очень полезную информацию в одном месте!

P.S.
Только вот не понимаю что-то, статья (например эта) вышла 31.10.17, а время в комментариях аж за прошлый год есть

31.10.2017 в 18:04

Она обновлена 31.10.17, — дописано про то, как всё это теперь выглядит в Fall Creators Update. При этом я и дату обновляю (потому как если статья будет за 2015 год, а в ней «В Windows 10 Fall Creators Update….» — это тоже будет немного странно).

01.11.2017 в 09:24

спасибо за очень хороший сайт.

01.11.2017 в 11:20

Спасибо за отзыв.

04.11.2017 в 03:39

Дмитрий ,присоединяюсь к хвале и благодарности окружающих коментариев! Удивился ,что нельзя регистрироваться, подписался. Когда то мечтал о вселенной без логинов и паролей — так вот она — ваш сайт а ещё что бы язык был единый на планете для взаимопонимания (но это скоро в гугле)

может прочтёте мой вопрос — 1709 х64 монитор + телевизор = 2 экрана, оба 125 проц масштаба. Пользуюсь радиомышкой с дивана сенсорной клавиатурой. НО она на телике малюсенькая, а на мониторе застилает пол экрана. А мне надо ровно наоборот. То есть возможность видно есть, но она перепутана. Как их поменять местами?

А ещё появилась иконка микрофона-голос ввода, но как я не тыкался безуспешно.. а в гугл хроме пашет..

Добавлю что я уверенный пользователь, компы у меня от спектрума

У вас всё по делу,спасибо

04.11.2017 в 08:19

Здравствуйте.
Тут похоже, что у вас разрешение экрана малое, а телевизора — большое, вероятно, Full HD. Независимо поменять размер указателя мыши для экранов не получится, т.е. она в любом случае X на Y пикселей.
А вот насчет голосового ввода не понял… где именно у вас появилась такая иконка?

23.12.2017 в 15:00

Чем не угодила многим здесь Windows 10. Сбегать с нее на Linux это более чем странно. Куда ни глянь, везде программы под Windows, только в ней можно чувствовать себя, как рыба в воде. Ставлю периодически разные дистрибутивы Linux рядом с Windows 10, ковыряюсь, пытаюсь делать что-то. Но не имеет смысла все это. Linux для меня — это софт, который стоит освоить и научиться им пользоваться (интерес). Но операционная система должна сама быть домом для другого софта, а не сама быть проблемой. Вот только от безысходности можно на нее пересесть. Например, когда лицензии на Windows стоят больших денег, которых нет. Или железо не позволяет устанавливать Windows в принципе.

14.01.2018 в 02:13

Есть какой нибудь вариант запустить этот виндовый линух на win 10 ltsb
я попробовал и вот что пишет —
C:\Users\user>bash
— Бета-версия компонента —
Будет выполнена установка среды Ubuntu в Windows. Она предоставляется Canonical
и лицензирована в соответствии с условиями компании, с которыми можно ознакомиться здесь:

Читайте также:  Open run dialog windows

Приложение, которое вы пытаетесь запустить, не поддерживается в этой версии Windows.

14.01.2018 в 10:36

Самому не на чем проверить, но судя по обсуждениям, найденным благодаря гуглу, вроде как не работает…

16.02.2018 в 16:44

Здравствуйте! Не подскажете почему ни в одном из приложений в windows store нет кнопки получить или купить? как это исправить?

17.02.2018 в 11:13

Здравствуйте… Нет, не знаю, не встречался с таким. В теории может быть на локальных учетных записях такое в старых версиях Windows 10, но это не точно.

18.04.2018 в 16:13

Добрый день, пытаюсь поставить баш, и не выходит. Нажимаю галку в компонентах, комп перезагружается и ничего, галка со своего места исчезает. Режим разработчика типа включается в «Системе» но не скачивается как компонент, включил его в политике, в реестре записи есть. Такая же история. Попробовал включить через powershell — получил ошибку
Enable-WindowsOptionalFeature : Не удается прочитать параметр реестра.
Подскажите пожалуйста решение, кроме сноса винды)

19.04.2018 в 07:39

Здравствуйте. Странно конечно. Но: а после установки галки в компонентах и перезагрузки удается из магазина скачать Ubuntu (ну или иной дистрибутив)? Если да, то что происходит после его запуска?

Источник

Опыт настройки и использования WSL (подсистемы Linux в Windows 10)

К написанию данной статьи меня побудил вопрос на Тостере, связанный с WSL. Я, после нескольких лет использования систем на ядре Linux, около полугода назад перешел к использованию Windows 10 на домашнем ПК. Зависимость от терминала и Linux окружения в моей работе практически сразу привели меня к вопросу: или ставить виртуалку или попробовать WSL. Я выбрал второе, и остался вполне доволен.

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

Никогда не думал, что однажды вернусь на Windows, но повод попробовать мне дали стечения обстоятельств: жена, далекая от IT, дергала почти каждый раз, когда у нее возникала необходимость воспользоваться компом; проснулась ностальгия по одной игре, но она никак не хотела адекватно работать под wine; а тут еще мне подарили коробочную Windows 10 Pro. WSL я поставил чуть ли не сразу после установки системы, поигрался несколько вечеров, понял, что продукт для моих задач годный, но хочется более привычный терминал и вообще некоторых удобств.

Установка WSL и дистрибутива

Сразу оговорюсь, в интернете можно найти описание установки с помощью выполнения команды lxrun /install в командной строке или консоли PowerShell. Данный способ больше не работает (после выхода WSL в стабильный релиз). Насколько мне известно, сейчас WSL можно установить только из Microsoft Store вместе с предпочитаемым дистрибутивом.

Так же отмечу, что когда установку производил я, на выбор были доступны дистрибутивы OpenSUSE, SUSE Linux Enterprise и Ubuntu 16.04 — последний я и установил. Сейчас также доступны Ubuntu 18.04, Debian 9 и Kali Linux, возможно появятся и другие дистрибутивы. Действия по установке могут отличаться. Так же, часть проблем описанных в статье может быть уже исправлена.

Находим в магазине желаемый дистрибутив и устанавливаем. Установка пройдет быстро, так как скачает только эмулятор ядра Linux и утилиту для запуска подсистемы, которая окажется в системной папке в трех экземплярах: wsl.exe, bash.exe и ubuntu.exe (вместо ubuntu будет имя Вашего дистрибутива). Все они равнозначны и делают одно и то же — запускают собственный эмулятор терминала, в нем linux’овый bash работающий под эмулятором ядра. При первом же запуске нас попросят придумать логин и пароль для пользователя по умолчанию, а после произойдет непосредственно установка дистрибутива. В качестве пользователя по умолчанию указываем root без пароля — это потребуется для дальнейших шагов. Безопасность не пострадает, кроме того при подготовке материалов к статье, в англоязычном туториале, я наткнулся на информацию, что новые версии WSL теперь делают пользователем по умолчанию root без пароля без лишних вопросов.

Дожидаемся установки. Далее первым делом стоит обновить зеркала apt на ближайшие. Для этого понадобится CLI текстовый редактор. В комплекте только vi, я же больше предпочитаю nano, поэтому ставлю его:

sudo вводить не требуется, так как мы уже под root’ом. Отредактируем файл /etc/apt/sources.list:

У меня лучше всего работают зеркала Яндекса, поэтому мой файл выглядит так:

Нажимаем Ctrl+O для сохранения и Ctrl+X для выхода. Теперь можно обновить систему до актуального состояния:

После обновления можно создать нашего основного пользователя. В данной статье я назову его user1, Вы же можете задать привычное имя:

Далее переходим в папку юзера, зайдем под ним, установим пароль и отредактируем файл

Все, подсистема готова к использованию… почти.

Установка X-сервера, Xfce и прочих GUI’шных приложений

Первая же проблема, на которую я натолкнулся — bash-completion в предлагаемом эмуляторе терминала работал, мягко говоря, некорректно. Кроме того, данный эмулятор не умеет вкладки, а каждый его экземпляр запускает все в новом пространстве процессов, с отдельным init’ом (который кстати не заменить). Мне захотелось нормальный эмулятор терминала, некоторых других GUI приложений, а так же панельку, чтоб это все быстро запускать.

Когда я гуглил этот вопрос, я наткнулся на множество проблем, вроде необходимости перевода dbus на tcp протокол. На данный момент всех этих проблем нет. В подсистеме нормально работают unix-domain-socket’ы и все спокойно общается через них.

Читайте также:  Linux для windows rus

Первым делом нам понадобится X-сервер, притом установленный в основную систему (в Windows). Лично я использую для этих целей VcXsrv — порт X11 на Windows. Официальный сайт указанный в about самой утилиты его сейчас не предоставляет, поэтому гуглим установщик и устанавливаем все по умолчанию.

Пока идет установка возвращаемся в терминал WSL, командой exit выходим обратно в root’а. Первым делом настроим русские локали:

Далее установим некоторые компоненты Xfce. Можно конечно установить его целиком из мета-пакета, но большинство компонентов нам не понадобится, а модульная архитектура Xfce позволяет нам поставить только необходимое:

Запускать каждый раз окружение руками не очень удобно, поэтому я автоматизировал данный процесс. Для этого в основной системе создадим в удобном для нас месте папку, а в ней 3 файла для запуска:

    config.xlaunch — файл настроек для VcXsrv

x-run.vbs — WSL всегда запускается со своим эмулятором терминала, если его закрыть — завершатся все его дочерние процессы. Чтоб данное окно не мозолило глаза, неплохо его запускать скрытым. К счастью в Windows встроен интерпретатор VBScript, который позволяет это сделать в одну строчку:

Поясню, что здесь происходит. Мы говорим VBscript выполнить приложение wsl с параметром cd /home/user1; DISPLAY=:0 LANG=ru_RU.UTF-8 su user1 -c xfce4-session , папка запуска нам не важна, поэтому пустая строка, действие open — запуск, 0 — скрытый режим. Самому wsl мы отдаем команду на выполнение: переход в папку пользователя, затем с установкой переменных окружения DISPLAY (дисплей X-сервера) и LANG (используемая локаль) мы запускаем xfce4-session от имени нашего пользователя user1 (благодаря команде su)

  • start.bat — batch файл для запуска, по желанию его можно засунуть в автозагрузку
  • Далее можем запустить наш start.bat и настроить панель Xfce под себя. Замечу, что здесь я наткнулся на еще одну проблему — панель прекрасно отображается поверх всех окон, но вот выделить себе место, как панель на рабочем столе Windows она не может. Если кто знает решение данной проблемы, поделитесь в комментариях.

    Ну и под конец данной части, скриншот моего рабочего стола:

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

    Запускать Linux приложения напрямую из Windows можно через те же 3 команды — bash, wsl или ubuntu. Не забываем, что по умолчанию запуск идет от root, поэтому стоит понижать привилегии через su , так же нужно не забывать передавать переменную окружения DISPLAY=:0 если приложению требуется X-сервер. Так же нужно менять папку, из которой должно работать приложение, через cd внутри WSL. Пример, посчитаем md5 для file.txt на диске D средствами Linux’овой md5sum:

    Доступ к файловой системе Linux так же имеется, лежит она в %localappdata%\Packages\CanonicalGroupLimited.UbuntuonWindows_79rhkp1fndgsc\LocalState\rootfs . Читать таким образом файлы можно, а вот писать — не желательно, можно поломать файловую систему. Думаю проблема в том, что Windows не умеет работать с правами и владельцами файловой системы Linux.

    Из Linux так же можно запускать Windows приложения. Просто запускаем exe-шник и он выполнится в основной системе.

    Диски Windows монтируются в /mnt в соответствии со своими буквами в нижнем регистре. Например диск D будет смонтирован в /mnt/d . Из Linux можно свободно читать и писать файлы Windows. Можно делать на них симлинки. Права у таких файлов всегда будут 0777, а владельцем будет root.

    Сетевой стек у подсистемы общий с Windows. Сервер поднятый в Linux будет доступен на localhost в Windows и наоборот. Однако unix-domain-socket для Windows будет просто пустым файлом, работать с этим можно только внутри Linux. Выход во внешнюю сеть у Linux так же есть, в том числе можно слушать порты, если этого не запрещает фаервол.
    ifconfig в Linux и ipconfig в Windows выдают одинаковую информацию о сетевых интерфейсах.

    Из диспетчера задач Windows можно спокойно прибить процесс внутри подсистемы Linux. Однако Linux увидит только свои процессы.

    Особенности, ограничения и подводные камни

    Ядро Linux в WSL не настоящее. Это всего лишь прослойка-эмулятор, которая часть Linux-специфичных задач выполняет сама, а часть проксирует напрямую в ядро winNT. Большая часть api в нем реализована, но не все. Свое ядро собрать не получится, как и не получится подключить модули ядра (.ko, Kernel Object).

    Init процесс у WSL тоже свой и заменить его, например, на system.d не выйдет. У меня давно есть желание написать менеджер демонов на go, который бы работал с файлами юнитов system.d и предоставлял бы схожий интерфейс, да все руки не доходят.

    Нет поддержки openFUSE, соответственно примонтировать виртуальную или удаленную файловую систему не получится. Так же нельзя сделать mount из файла, mount вообще ничего кроме bind здесь, похоже, не умеет.

    Так же нет никакой возможности разбить файловую систему Linux на несколько разделов/дисков.

    Прямой доступ к железу практически отсутствует. Все таки мы находимся в песочнице Windows, а не в полноценном Linux. /dev и /sys заметно пустуют, в них лишь проц да виртуальные устройства. Доступ к GPU — только через X-сервер, напрямую — никак, так что нейросети обучать придется в Windows.

    В JS разработке столкнулся с тем, что electron.js отказался запускаться в WSL, пришлось дублировать окружение node.js в Windows.

    Итоги

    Статья получилась довольно длинной, надеюсь, что она окажется еще и полезной.
    WSL для меня лично оказался инструментом вполне юзабельным, решающим мои задачи fullstack backend разработчика. Виртуалка с Linux за полгода так и не понадобилась. По общим ощущениям Windows+WSL намного функциональнее, чем Linux+Wine.

    Пока писал статью, обнаружил, что в Microsoft Store появилась сборка WSL с Debian 9.3, данный дистрибутив мне более симпатичен, чем Ubuntu, поэтому буду пробовать ставить.

    Источник

    Оцените статью