
Я установил WSL 2 на свой Windows 10. У меня система Debian. Все работает отлично.
Я хочу запустить WSL из терминала PowerShell, поэтому ввожу команду wsl
. Получаю ошибку:
PS C:\Users\MyUser> wsl
wsl : The term 'wsl' is not recognized as the name of a cmdlet, function, script file, or operable program. Check the spelling of
the name, or if a path was included, verify that the path is correct and try again.
At line:1 char:1
+ wsl
+ ~~~
+ CategoryInfo : ObjectNotFound: (wsl:String) [], CommandNotFoundException
+ FullyQualifiedErrorId : CommandNotFoundException
Почему это?
Обновлять Как ни странно, когда я пытаюсь получить команду, я получаю отрицательный ответ:
PS C:\WINDOWS\system32> Get-Command wsl -All
Get-Command : The term 'wsl' is not recognized as the name of a cmdlet, function, script file, or operable program. Check the
spelling of the name, or if a path was included, verify that the path is correct and try again.
At line:1 char:1
+ Get-Command wsl -All
+ ~~~~~~~~~~~~~~~~~~~~
+ CategoryInfo : ObjectNotFound: (wsl:String) [Get-Command], CommandNotFoundException
+ FullyQualifiedErrorId : CommandNotFoundException,Microsoft.PowerShell.Commands.GetCommandCommand
Тем не менее, исполняемый файл wsl.exe
находится там C:\Windows\Syste32
, где ему и положено быть...
Если я установлю псевдоним с помощью:
Set-Alias -Name wsl -Value C:\Windows\system32\wsl.exe
При запуске ничего не меняется в выводе wsl
(возникает та же ошибка).
Характеристики Windows:
- Издание Windows 10 Pro
- Версия 2004 г.
- Сборка ОС 19041.572
PS C:\WINDOWS\system32> Get-WindowsOptionalFeature -Online -FeatureName Microsoft-Windows-Subsystem-Linux
FeatureName : Microsoft-Windows-Subsystem-Linux
DisplayName : Windows Subsystem for Linux
Description : Provides services and environments for running native user-mode Linux shells and tools on Windows.
RestartRequired : Possible
State : Enabled
CustomProperties :
ServerComponent\Description : Provides services and environments for running native user-mode Linux shells and
tools on Windows.
ServerComponent\DisplayName : Windows Subsystem for Linux
ServerComponent\Id : 1033
ServerComponent\Type : Feature
ServerComponent\UniqueName : Microsoft-Windows-Subsystem-Linux
ServerComponent\Deploys\Update\Name : Microsoft-Windows-Subsystem-Linux
решение1
С момента команды
wslconfig.exe /l
дал в качестве ответа
Windows Subsystem for Linux Distributions:
docker-desktop-data
docker-desktop
Debian
Я заметил, что значение по умолчанию не установлено. Поэтому я просто установил значение по умолчанию:
wslconfig.exe /setdefault "Debian"
Теперь у wslconfig.exe /l
меня получается:
Windows Subsystem for Linux Distributions:
Debian (Default)
docker-desktop-data
docker-desktop
и я могу запустить дистрибутив WSL 2 по умолчанию с wsl
.
решение2
На самом деле это вопрос не по коду Powershell, а «Как настроить и использовать WSL в Windows 10 и дистрибутиве Linux на виртуальной машине?»
WSL — это услуга...
... позволяя дистрибутивам Linux работать на Windows 10. Это не приложение/команда для запуска из PowerShell. Так что эта ошибка довольно специфична. Ваш дистрибутив должен быть запущен!
Вы ознакомились и применили необходимые шаги, показанные в видеороликах...
- WSL 2: Начало работы
- Как установить и включить WSL в Windows 10 (+ как получить доступ к файлам)
- Как установить WSL 2 на Windows 10 с помощью Powershell
...чтобы настроить WSL...
(Get-CimInstance -ClassName CIM_OperatingSystem).Version
# Results
<#
10.0.19041
#>
$PSVersionTable
# Results
<#
Name Value
---- -----
PSVersion 5.1.19041.546
PSEdition Desktop
PSCompatibleVersions {1.0, 2.0, 3.0, 4.0, 5.0, 5.1.19041.546}
BuildVersion 10.0.19041.546
CLRVersion 4.0.30319.42000
WSManStackVersion 3.0
PSRemotingProtocolVersion 2.3
SerializationVersion 1.1.0.1
#>
# Results
<#
Get-Command -Name wsl.exe
CommandType Name Version Source
----------- ---- ------- ------
Application wsl.exe 10.0.19... C:\WINDOWS\system32\wsl.exe
#>
Get-WindowsOptionalFeature -Online -FeatureName Microsoft-Windows-Subsystem-Linux
# Results
<#
FeatureName : Microsoft-Windows-Subsystem-Linux
DisplayName : Windows Subsystem for Linux
Description : Provides services and environments for running native user-mode Linux shells and tools on Windows.
RestartRequired : Possible
State : Enabled
CustomProperties :
ServerComponent\Description : Provides services and environments for running native user-mode Linux shells and tools on
Windows.
ServerComponent\DisplayName : Windows Subsystem for Linux
ServerComponent\Id : 1033
ServerComponent\Type : Feature
ServerComponent\UniqueName : Microsoft-Windows-Subsystem-Linux
ServerComponent\Deploys\Update\Name : Microsoft-Windows-Subsystem-Linux
#>
...и ваш дистрибутив настроен на использование этого дистрибутива Linux.
wsl --list --verbose
Windows Subsystem for Linux has no installed distributions.
Distributions can be installed by visiting the Microsoft Store:
https://aka.ms/wslstore