我在 WSL 之上使用 Windows 10 和 Ubuntu。Eclipse 和 Code 等工具作为传统 Windows 应用程序运行。我开发的服务器在 WSL 上运行;他们推出 Tomcat 和 NodeJS 服务器。问题是 Windows 看不到 Ubuntu 端口,并且 WSL 看不到 Windows 服务。
我相信 WSL 启动时就好像它是一台单独的机器一样,因此端口不同。是否可以让它共享主机网络?理想情况下,如果我在 Window 控制台中运行 netstat,我会看到 Tomcat 和 Node 服务器在 WSL 下启动,反之亦然。如果没记错的话,如果我使用 VirtualBox 将 Ubuntu 作为虚拟机运行,这是可能的。
我对 Docker 有类似的问题,但在这种情况下,我对非 Docker 相关服务特别感兴趣。
跟进:根据以下问题,我有 WSL 2:
wsl -l -v 名称状态版本 * Ubuntu-20.04 正在运行 2 openSUSE-Leap-15-1 已停止 2 docker-desktop-data 正在运行 2 fedoraremix 已停止 2 docker-desktop 正在运行 2
难以在与 WSL2 隔离的本地开发环境中安装证书。我在 macOS 和 Linux 中执行了完全相同的步骤,并且遇到了零问题。
步骤如下:
# Download and install mkcert
if [[ `uname` = "Darwin" ]] then
brew install mkcert
brew install nss
else
curl -Lo mkcert https://github.com/FiloSottile/mkcert/releases/download/v1.4.3/mkcert-v1.4.3-linux-amd64 && \
sudo install mkcert /usr/local/bin/
fi
# Installing tls certificate
mkcert -install
# Installing tls certificate
mkcert localhost 127.0.0.1 ::1
# Installing cert-manager locally
kubectl apply -f https://github.com/jetstack/cert-manager/releases/download/v1.2.0/cert-manager.yaml
# Add the certificates to secrets
kubectl create secret tls tls-localhost-dev --key=localhost+2-key.pem --cert=localhost+2.pem -n dev
# Create the tls service …Run Code Online (Sandbox Code Playgroud) ssl-certificate kubernetes windows-subsystem-for-linux cert-manager mkcert
我有 Windows 10 操作系统,启用了 WSL,并安装了 docker for windows。
当我在 PowerShell 中输入 docker 并点击 Tab 时,它会建议我使用工作目录中相应的文件夹和文件。
这里AndroidStudioProjects是我工作目录中的一个目录。

另一方面,当我在 WSL Ubuntu 中输入 docker 并点击选项卡时,它会建议可用的 docker 命令本身。(我的预期行为)

我希望 PowerShell 也像 WSL ubuntu 一样推荐。
powershell autocomplete tab-completion docker windows-subsystem-for-linux
我不知道为什么会发生这种情况。当我尝试在 Ubuntu (WSL 2) 上推送任何内容时,git 不断询问我的用户名和密码,但是当我在 Windows 上通过 bash 推送内容时,git 不会要求任何凭据,我可以直接推送。我是 WS2L 和 Ubuntu 的新手,所以我不知道这是否正常或是否有问题。
我在 Windows 终端中,我想在 WSL2 Ubuntu 中打开文件资源管理器中的目录。
我尝试输入“explorer.exe Desktop/”,但它会打开文档,事实上每次我尝试运行它时,它只会打开文档,除非我输入“explorer.exe .”,然后它会正确打开当前目录,但我希望它可以与我提供的任何目录一起使用。有任何想法吗?
编辑1:我找到了这个函数,只需将它添加到你的~/.bashrc中就可以了
start(){
path=$(wslpath -w "$1")
/mnt/c/Windows/explorer.exe "$path"
}
Run Code Online (Sandbox Code Playgroud)
输入不带引号的 start“Some Path”,它会在文件资源管理器中打开路径,我还发现我需要在 explorer.exe 的参数周围添加引号
我在 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) 从这篇文章中,它指出 Windows 11 原生支持在 wsl 上运行 X11 和 Wayland 应用程序。
我尝试通过 docker 容器执行相同的操作,设置环境变量DISPLAY="host.docker.internal:0.0"并运行 GUI 应用程序(如gedit)。但我却得到了这个错误:
Unable to init server: Could not connect: Connection refused
Gtk-WARNING **: 17:05:50.416: cannot open display: host.docker.internal:0.0
Run Code Online (Sandbox Code Playgroud) 我正在关注如何在 WSL 环境中运行 VSC。
我可以在 WSL 环境中的 VSC 中打开我的项目。
但我发现几乎每个命令都非常慢。例如,当我运行“git status”时,它每次都会建立索引,这会大大减慢速度。
我是否需要忍受它或者我做错了什么?如果是,我不确定使用 WSL 进行开发是否是一个可行的选择。
我将pycharm配置为在同一台计算机上的WSL(Linux的Windows子系统)上使用远程ssh python解释器,以运行python程序。但似乎遇到编码问题。我将所有的file_encoding更改为'utf8',但是不起作用。
raceback(最近一次通话最近):文件“ /home/yanhui/anaconda2/lib/python2.7/encodings/ init .py”,第74行,在search_function条目中= _cache.get(encoding,_unknown)AttributeError:'NoneType'对象没有属性“获取”
windows-subsystem-for-linux ×10
docker ×2
python ×2
ubuntu ×2
windows ×2
wsl-2 ×2
autocomplete ×1
bash ×1
cert-manager ×1
delphi ×1
firemonkey ×1
git ×1
kubernetes ×1
linux ×1
mkcert ×1
networking ×1
powershell ×1
pycharm ×1
wayland ×1
windows-11 ×1
x11 ×1