Что такое оболочка по умолчанию в подсистеме Windows для Linux (WSL )?

Вы правы в своем предположении, что это ГБ против ГиБ. lvcreate использует гигабайты, тогда как диски gnome -используют гигабайты

64 гигабайта = 68,72 гигабайта

-1
19.08.2020, 20:10
2 ответа

Краткий ответ

Дистрибутив по умолчанию для WSL — Ubuntu, а для Ubuntu:

  • Интерактивная оболочка по умолчаниюbash
  • Не-интерактивной оболочкой по умолчанию являетсяdash

Таким образом, под переходным свойством, предполагая, что вы имели в виду «интерактивный по умолчанию», я думаю, мы можем сказать, что оболочка по умолчанию для WSL — это bash.

Подробнее

Несколько дней назад я собирался ответить на этот вопрос, но, похоже, это не оправдывало "удара". Однако, поскольку бот сообщества выбрал этот вопрос сегодня, чтобы автоматически -поднять (, так как нет принятого ответа ), я дам ему несколько иную трактовку.

Во-первых, как я думаю, вы уже знаете, WSL поддерживает множество различных дистрибутивов Linux. Вы можете установить некоторые из них из Microsoft Store в Windows или импортировать rootfs для большинства других дистрибутивов.

И я действительно предпочитаю (и согласен с )определением Debian «по умолчанию», когда дело доходит до оболочек. Всегда есть:

  • интерактивная оболочка по умолчанию, которая по умолчанию назначается пользователям при создании (иroot).
  • не -интерактивная оболочка по умолчанию, которая по определению представляет собой все, что /bin/shсвязано для запуска системы и других сценариев «POSIX» максимально быстрым и совместимым образом.

Немного истории

  • Первые дни WSL

    Когда WSL был впервые анонсирован , он (, возможно, плохо )назывался «Bash на Ubuntu в Windows». В тот момент, я думаю, было бы довольно очевидно ответить на ваш вопрос «Баш».

    Было принято начинать сеанс WSL/Ubuntu с помощью команды bash.exeдля запуска WSL. Этот будет всегда запускаться в оболочке bashвнутри экземпляра Ubuntu, даже если оболочка пользователя была переопределена в /etc/passwd.

    С другой стороны, команда ubuntu.exe(или один из ее вариантов )запустит дистрибутив WSL Ubuntu в пользовательской оболочке /etc/passwd.

  • Новейшая история

    Затем мы подошли к серой зоне, где я не думаю, что можно было бы сказать, что для WSL существует какой-либо «дистрибутив по умолчанию». Сначала вы установили/включили WSL, а затем выбрали дистрибутив из Магазина Microsoft.

    Метод bash.exeзапуска был «полу-устаревшим» (, в документе Microsoft )он назывался «исторической командой», и новый wsl.exeзаменил его. Он всегда по умолчанию для пользовательской/etc/passwd-определенной оболочки, но любой исполняемый файл может быть запущен как родительский процесс черезwsl --execute <appname>(илиwsl -e).

    В то время было трудно ответить на ваш вопрос чем-то другим, кроме как «это зависит от дистрибутива», поскольку дистрибутива «по умолчанию» не существовало.

  • Сегодня

    Начиная с выпуска Windows 10 21H2 и Windows 11 появился новый процесс установки WSL. Базовая команда wslпоставляется с Windows, но ее необходимо активировать с помощью wsl --install. Эта команда, еще раз, делает по умолчанию Ubuntu в качестве дистрибутива по умолчанию.

    Итак, на данный момент справедливо (еще раз )сказать, что Ubuntu является дистрибутивом по умолчанию для WSL.

  • Завтра

    Кто знает? Очевидно, что за 5-летнюю историю WSL он сильно изменился, поэтому я уверен, что он может измениться снова :-).

1
06.10.2021, 14:46

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

Когда вы создаете учетную запись при первой настройке, вам предоставляется интерактивная оболочка дистрибутива по умолчанию. Обратите внимание, что в некоторых случаях это отличается от оболочки по умолчанию. Например, оболочка Debian и Ubuntu по умолчанию — /bin/sh, обычно это dash, но поскольку dashне является хорошей интерактивной оболочкой, bashявляется оболочкой по умолчанию для новых пользователей, если она не указана.

Вы можете использовать chshдля изменения оболочки пользователя, и если вы это сделаете, WSL загрузит эту оболочку, по крайней мере, для интерактивного использования. У меня установлено значение /bin/zsh.

В большинстве дистрибутивов Linux вы вряд ли найдете PowerShell в качестве жизнеспособного варианта, поскольку он заметно отличается от POSIX, а большинство программного обеспечения в Linux предполагает наличие оболочки POSIX. Многие части программного обеспечения также предполагают, что оболочка пользователя совместима с POSIX или, если нет, по крайней мере, с одним из cshили fish, и использование PowerShell может привести к непреднамеренной поломке.

0
18.03.2021, 23:12

Теги

Похожие вопросы