我正在尝试使用 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) 我安装了 Windows 2010 home ed,并且最重要的是安装了 Windows 的 Ubuntu 扩展支持。
我已经开始在那里写我的项目,但不知道如何从我的 Windows 系统(主机)访问 Ubuntu 中的目录
有什么想法吗?提前致谢
我宁愿不使用任何外部工具。
我在 Windows 上使用 PowerShell 和 WSL“Ubuntu 20.04 LTS”。我没有本机 Linux 发行版,并且由于嵌套设备原因,我无法使用虚拟化。
我的目的是在 PowerShell 中使用 Windows Python 脚本调用 WSL 将一些 avd 快照解密为原始图像。我已经尝试过了os.popen,subprocess.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) 我正在关注如何在 WSL 环境中运行 VSC。
我可以在 WSL 环境中的 VSC 中打开我的项目。
但我发现几乎每个命令都非常慢。例如,当我运行“git status”时,它每次都会建立索引,这会大大减慢速度。
我是否需要忍受它或者我做错了什么?如果是,我不确定使用 WSL 进行开发是否是一个可行的选择。
我有两种类型的令牌用于 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)
但这并没有按预期工作。有没有这样做的图书馆?或者我们可以修改上面的正则表达式吗?
作者注:此问题使用旧版本 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 所需的压缩( …
我尝试在 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) 我不是你所谓的高级 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)
请帮忙,我被这个问题困扰了:')我很抱歉这可能是一个非常菜鸟的问题
我正在尝试编写一个非常简单的程序 - 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。为什么?
换句话说,我想:
command.exe将运行批处理文件如何将正确的参数传递给ubuntu命令来执行此操作?
windows-subsystem-for-linux ×6
windows ×2
wsl-2 ×2
batch-file ×1
cmd ×1
config ×1
docker ×1
firefox ×1
java ×1
jwt ×1
nushell ×1
python ×1
spring-boot ×1
until-loop ×1
while-loop ×1
zsh ×1