小编Not*_*1ds的帖子

wsl --set-default-version 2 服务无法启动,要么是因为它被禁用,要么是因为它没有与之关联的启用设备

我正在尝试使用 WSL2 在我的 Windows 10 家庭版 20H2 OS Build 19042.685 上再次安装 Ubuntu。

问题是 WSL2 安装没有完成。我在执行第 5 步 - 将 WSL 2 设置为默认版本时收到以下消息

PS C:\WINDOWS\system32> wsl
The service cannot be started, either because it is disabled or because it has no enabled devices associated with it.
Run Code Online (Sandbox Code Playgroud)

之前完成的步骤:

PS C:\WINDOWS\system32> dism.exe /online /enable-feature /featurename:Microsoft-Windows-Subsystem-Linux /all /norestart

Deployment Image Servicing and Management tool
Version: 10.0.19041.572

Image Version: 10.0.19042.685

Enabling feature(s)
[==========================100.0%==========================]
The operation completed successfully.
PS C:\WINDOWS\system32> dism.exe /online /enable-feature /featurename:VirtualMachinePlatform /all /norestart …
Run Code Online (Sandbox Code Playgroud)

failed-installation wsl-2

5
推荐指数
2
解决办法
2006
查看次数

有没有办法从 Windows 主机访问 WSL 文件夹,反之亦然?

我安装了 Windows 2010 home ed,并且最重要的是安装了 Windows 的 Ubuntu 扩展支持。

我已经开始在那里写我的项目,但不知道如何从我的 Windows 系统(主机)访问 Ubuntu 中的目录

有什么想法吗?提前致谢

我宁愿不使用任何外部工具。

windows windows-users windows-subsystem-for-linux

4
推荐指数
1
解决办法
7871
查看次数

将命令从 Windows Python 脚本传递到 WSL Shell

我在 Windows 上使用 PowerShell 和 WSL“Ubuntu 20.04 LTS”。我没有本机 Linux 发行版,并且由于嵌套设备原因,我无法使用虚拟化。

我的目的是在 PowerShell 中使用 Windows Python 脚本调用 WSL 将一些 avd 快照解密为原始图像。我已经尝试过了os.popensubprocess.Popen// run,,,call等等。win32com.clientmultiprocessing

我可以启动 WSL shell,但没有进一步的命令传递给它。有人知道如何让 shell 成为焦点并准备更多说明吗?

代码示例:

from multiprocessing import Process
import win32com.client
import time, os, subprocess

def wsl_shell():
    shell = win32com.client.Dispatch("wscript.shell")
    shell.SendKeys("Start-Process -FilePath C:\\Programme\\WindowsApps\\CanonicalGroupLimited.Ubuntu20.04onWindows_2004.2021.825.0_x64__79rhkp1fndgsc\\ubuntu2004.exe {ENTER}")
    time.sleep(5)
    os.popen("ls -l")
    
if __name__ == '__main__':
    ps = Process(target = wsl_shell)
    ps.start()
Run Code Online (Sandbox Code Playgroud)

python windows-subsystem-for-linux

4
推荐指数
1
解决办法
4665
查看次数

WSL 发展缓慢

我正在关注如何在 WSL 环境中运行 VSC。

我可以在 WSL 环境中的 VSC 中打开我的项目。

但我发现几乎每个命令都非常慢。例如,当我运行“git status”时,它每次都会建立索引,这会大大减慢速度。

我是否需要忍受它或者我做错了什么?如果是,我不确定使用 WSL 进行开发是否是一个可行的选择。

visual-studio-code windows-subsystem-for-linux

4
推荐指数
1
解决办法
6778
查看次数

检查承载令牌是否为 jwt

我有两种类型的令牌用于 http 请求。一种在授权标头中具有 JWT 令牌,另一种具有固定长度的 oauth 令牌。根据令牌的类型,我想执行一些操作。我如何区分它们?

我努力了

import java.util.regex.Matcher;
import java.util.regex.Pattern;
public class Main
{
    public static void main(String[] args) {

      String pattern="^[A-Za-z0-9-_=]+\\.[A-Za-z0-9-_=]+\\.^[A-Za-z0-9-_.+/=]*$";
      String line="eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJpYXQiOjE1MTYyMzkwMjJ9tbD.epxpstvGdW8TC3G8zg4B6rUYAOvfzdceoH48wgRQ";
      Pattern r = Pattern.compile(pattern);
      Matcher m = r.matcher(line);
      if (m.find( )) {  //is jwt
         System.out.println("jwt token");
      }else {
         System.out.println("NOt jwt");
      }
    }
}

Run Code Online (Sandbox Code Playgroud)

但这并没有按预期工作。有没有这样做的图书馆?或者我们可以修改上面的正则表达式吗?

java jwt spring-boot

3
推荐指数
2
解决办法
8756
查看次数

[进程退出,代码为 1],无法打开 WSL、zsh

[process exited with code 1]当我尝试访问 WSL 发行版时,我得到了这个信息。使用命令删除 zsh 后发生这种情况sudo apt-get remove zsh

错误的屏幕截图显示“进程已退出,代码为 1”

zsh windows-subsystem-for-linux

3
推荐指数
1
解决办法
5972
查看次数

Nushell 中的 while/until 循环

作者注:此问题使用旧版本 Nushell 中过时的语法和语句。请参阅下面的答案以了解更新的语法。

Nushell 脚本中如何执行 while/until 循环?

由于 Nushell 有一个相当令人惊叹的表/JSON 解析系统,我一直在尝试通过它使用Stack Exchange API

第一个挑战是循环访问 API 调用的多个可能的结果页面。我的(通常是程序性的,有时是面向对象的)背景让我在 Nushell 中找到了一个构造,例如:

let page = 1
let re = (http (echo "/2.3/questions?fromdate=1648771200&todate=1648944000&order=desc&sort=activity&site=askubuntu&page=" $page) | from json)
let questions = $re.items

while ($re.has_more) {
    let page = page + 1
    let re = (http (echo "/2.3/questions?fromdate=1648771200&todate=1648944000&order=desc&sort=activity&site=askubuntu&page=" $page) | from json)
    let questions = $questions | append $re.items
}
Run Code Online (Sandbox Code Playgroud)

...或等效的until构造。

我如何在 Nushell 中实现这一点?

注意 -在上面的示例中使用httpiegzip ,因为它会自动处理Stack API 所需的压缩( …

while-loop until-loop nushell

3
推荐指数
1
解决办法
938
查看次数

无法在 Windows 10 Pro 21H1 上安装 Docker Desktop

我尝试在 Windows 10 Pro 21H1 上安装 Docker Desktop,但不断收到以下错误:

Component CommunityInstaller.EnableFeaturesAction failed: Not found 
   at CommunityInstaller.InstallWorkflow.<DoHandleD4WPackageAsync>d__29.MoveNext()
--- End of stack trace from previous location where exception was thrown ---
   at System.Runtime.ExceptionServices.ExceptionDispatchInfo.Throw()
   at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task)
   at CommunityInstaller.InstallWorkflow.<DoProcessAsync>d__23.MoveNext()
Run Code Online (Sandbox Code Playgroud)

我尝试过删除:

C:\Program Files\
C:\Users\username\AppData\Local\Docker
C:\Users\username\AppData\Local\Docker Desktop
Run Code Online (Sandbox Code Playgroud)

...以及其他 Docker 相关文件夹多次。

我的 WSL2 在 Ubuntu 20 系统上运行良好。

sid_c06@LAPTOP-HJCDC6N0:~$ wsl.exe -l -v
  NAME            STATE           VERSION
* Ubuntu-20.04    Running         2
Run Code Online (Sandbox Code Playgroud)

我尝试在安装过程中取消选中 WSL2 选项,但在安装后尝试启动 Docker Desktop 时,在 WSL2 上启动 Linux 容器的步骤失败。

Unable to start
at Docker.Core.Pipe.NamedPipeClient.d__5.MoveNext()
--- End of stack …
Run Code Online (Sandbox Code Playgroud)

docker docker-desktop wsl-2

2
推荐指数
1
解决办法
4248
查看次数

提高 WSL2 下的 nofile 限制

我不是你所谓的高级 Linux 用户,所以我对一个可能愚蠢的问题表示歉意。

我正在尝试使用 WSL2 提高 UBUNTU 20.04 发行版的 NOFILE 限制,遵循本指南:cannot-increase-open-file-limit-past-4096-ubuntu

但是,当我尝试修改相应的.conf文件时,出现权限被拒绝的错误。当尝试从 Windows 和 VsCode 执行此操作时,我得到:

Failed to save 'system.conf': Command failed: "C:\Users\sague\AppData\Local\Programs\Microsoft VS Code\bin\code.cmd" --file-write "c:\Users\sague\AppData\Roaming\Code\code-elevated-mjlcag" "\\wsl$\Ubuntu-20.04\etc\systemd\system.conf" Error using --file-write: EPERM: operation not permitted, open '\\wsl$\Ubuntu-20.04\etc\systemd\system.conf'
Run Code Online (Sandbox Code Playgroud)

当尝试在 WSL2 终端(使用 Windows 终端)中使用 nano 执行此操作时,我得到:

 Error writing /etc/systemd/system.conf: Permission denied
Run Code Online (Sandbox Code Playgroud)

请帮忙,我被这个问题困扰了:')我很抱歉这可能是一个非常菜鸟的问题

config windows-subsystem-for-linux

1
推荐指数
1
解决办法
2158
查看次数

如何创建同时打开 WSL Ubuntu 和 Firefox 的 Windows 批处理脚本

我正在尝试编写一个非常简单的程序 - test.bat。当然,这将command.exe在 Windows 中执行。我希望这个程序能够在 Ubuntu 中启动 Firefox,同时让终端保持 Ubuntu 的运行状态。

我在批处理文件中尝试了以下几行:

ubuntu -c firefox
ubuntu /c firefox
ubuntu echo firefox
ubuntu firefox
ubuntu | firefox
Run Code Online (Sandbox Code Playgroud)

...但是这些命令都没有启动 Firefox。为什么?

换句话说,我想:

  • 在 Windows 桌面上创建批处理文件
  • 能够双击批处理文件运行
  • command.exe将运行批处理文件
  • 该批处理文件将在 WSL 中运行 Ubuntu
  • 该批处理文件将在 Ubuntu 中打开 Firefox

如何将正确的参数传递给ubuntu命令来执行此操作?

windows firefox cmd batch-file windows-subsystem-for-linux

1
推荐指数
1
解决办法
2813
查看次数