共计 3006 个字符,预计需要花费 8 分钟才能阅读完成。
WSL 应用阐明
对于卸载
wsl --shutdown
wsl --unregister xxxxx
- 卸载
Ubuntu
-
关上
Windows
性能敞开:- 实用于
Linux
的Windows
子系统 - 虚拟机平台
- 实用于
- 点击确定
对于导入导出
-
import
和export
只是针对磁盘,意思就是网上说的批改Ubuntu
目录用的导入导出办法的就是批改了磁盘的地位罢了。
上面是迁徙Ubuntu
时的操作:wsl --export Ubuntu E:\Wsl\Ubuntu\ubuntu.tar wsl --unregister Ubuntu wsl --import Ubuntu E:\Wsl\Ubuntu E:\Wsl\Ubuntu\Ubuntu.tar --version 2
对于 WSL
-
针对 Wsl 开发环境做以下总结:
- 尽管应用起来像是一个零碎,然而不是,这个肯定要留神
- 既然不是一个零碎,就不要关上 windowns 下的我的项目却应用 Ubuntu 下的环境。明天关上 Windowns 下的 Java 我的项目,用的是 Ubuntu 下的 Jdk 后果,死活不能给我的项目增加,平台外面是有的。
- 肯定要辨别 Ubuntu 软件和 Wsl.Ubuntu。装置的 Ubuntu 间接关上是 root 权限,Wsl.Ubuntu 是黄色图标。设置外面能够清晰看到执行的命令不一样。
- 切记,开发用一个零碎环境。要么 Windows 上面。把服务全副装置到 Ubuntu。要不都在 Ubuntu。
- 前一段时间 Flink 服务拜访不了,最初发现 Flink 服务 bind 配置须要改为 0.0.0.0 不能是 localhost。
-
用户权限
- 当第一次启动
Ubuntu
时,会让你创立用户,上面设置的就是这个用户。能够很好的解决在Windwos
下创立文件具备Root
权限的问题,还有Vscode
中的Terminal
也能够关上就是普通用户,不须要在进行设置。 -
在 cmd 或者 powershell 中执行如下命令
ubuntu config --default-user xxx # wsl 敞开 wsl --terminate Ubuntu # wsl 启动 -u 指定用户 wsl -d Ubuntu -u xxx
- 当第一次启动
对于代理
代理问题,肯定要开发代理软件的容许局域网。完了之后找到局域网的代理端口。
设置:source proxy.sh set 10811
勾销设置:source proxy.sh unset
#!/bin/sh
hostip=$(cat /etc/resolv.conf | grep nameserver | awk '{ print $2}')
wslip=$(hostname -I | awk '{print $1}')
set_proxy(){PROXY_HTTP="http://${hostip}:${port}"
PROXY_HTTPS="http://${hostip}:${port}"
export http_proxy="${PROXY_HTTP}"
export HTTP_PROXY="${PROXY_HTTP}"
export https_proxy="${PROXY_HTTPS}"
export HTTPS_PROXY="${PROXY_HTTPS}"
export all_proxy="${PROXY_HTTP}"
export ALL_PROXY="${PROXY_HTTP}"
echo "Host ip:" ${hostip}
echo "WSL ip:" ${wslip}
echo "Current http proxy: ${PROXY_HTTP}"
echo "Current https proxy: ${PROXY_HTTPS}"
echo "Note: You need to invoke this command with source, like: source proxy.sh set ${port}"
}
unset_proxy(){
unset http_proxy
unset HTTP_PROXY
unset https_proxy
unset HTTPS_PROXY
unset ALL_PROXY
unset all_proxy
echo "Unset done: http_proxy HTTP_PROXY https_proxy HTTPS_PROXY"
echo "Note: You need to invoke this command with source: source proxy.sh unset"
}
proxy_info(){echo "Host ip:" ${hostip}
echo "WSL ip:" ${wslip}
echo "Current http proxy: $http_proxy"
echo "Current https proxy: $https_proxy"
}
if ["$1" = "set"]
then
if ["$2" = ""]
then
port="10809"
echo "Use default port: ${port}"
else
port="$2"
fi
set_proxy
elif ["$1" = "unset"]
then
unset_proxy
elif ["$1" = "info"]
then
proxy_info
else
echo "Unsupported arguments: $1. Available aguments: set [port] unset info"
fi
对于 IDEA
idea
对 wsl2
的反对几乎不忍直视!心愿你们改好之后发个布告通知我能用了。
这几天我碰到了很多问题:
1,wsl2
普通用户创立的文件无奈关上。
2,idea
无奈切换到 wsl2
的普通用户下来。
3,idea
每次都要查看 jdk
,即便第一次查看后是没问题的。特地慢。
4,apt install
装置的 maven
无奈辨认。
5,特地容易卡死,奔溃!
对于开发
注:wsl2
不倡议跨系统文件调用。咱们思考以下几个情景。
- 将
wsl
作为服务器
只须要wsl
做为服务器,代码本地开发。
这样须要将本地代码开发完复制一份到wsl
目录。只能通过文件上传的模式,部署代码。即便在你看来,都在windows
上,很惋惜,因为不倡议跨零碎拜访文件,这个不倡议的准确度有多高呢?基本上就是说,一个ls
都会卡一阵。。。
还有,只能在windows
开发,近程就会有网络问题。 - 开发环境
全副应用wsl
目录,idea
不反对,vscode
示意适配的很好。jetbrains
的近程开发和vscode
差不多,都能应用。
简略来讲就是近程开发,即便你感觉他们都在你的windows
上,其实隔着很远很远。。。 - 不晓得说啥
全副在windows
,请敞开wsl2
这个垃圾。
对于网络
在 wsl2
中的所有服务,都只能本地拜访,如果想提供近程拜访,须要让 windows
转发。
波及两条命令:
netsh interface portproxy add v4tov4 listenport=[port] listenaddress=0.0.0.0 connectport=[port] connectaddress=[wsl ip]
netsh.exe advfirewall firewall add rule name=WSL2 dir=in action=allow protocol=TCP localport=[port]
一条通知 windows
转发 wsl
服务端口。一条通知 windows
凋谢防火墙
对于 docker
能够很开心的玩,然而因为网络起因,你不能提供近程服务。
总结
- 磁盘和网络问题不解决,请不要应用
wsl2
,还不如开个虚拟机。 - 倡议在
windows
本地开发,该装的都装,不要想着应用wsl2
来隔离开发环境。
正文完