WSL2即Windows上运行的Linux子系统第二代版本,适合不方便安装双系统或者单纯使用Linux系统的情况。
注意WSL2安装前需要更新Win10系统到19041及更高版本,或者Win11!!!
1. 安装WSL2
以管理员身份运行Windows PowerShell,执行wsl --install
安装WSL2。
执行wsl --set-default-version 2
将WSL默认版本设置为2,然后重启电脑。
Win11系统重启之后会自动打开终端窗口安装Ubuntu20.04,如有其他版本需要参考WSL2安装官网。
2. 打开子系统
第一次打开需要需要Win+q
,搜索ubuntu打开,如下图:
以后只需要打开Windows终端选择相应的窗口就行:
3. VS Code通过SSH远程连接子系统
类似于服务器,子系统首先需要安装并启动SSH,步骤如下:
sudo apt-get update
sudo apt-get install openssh-server
sudo ps -e |grep ssh# 此步可省略,目的在于查看是否启动ssh服务,终端打印sshd字样说明启动了
sudo service ssh start
安装好之后在系统上初始化公钥,即:
ssh-keygen -t rsa -C "youremail@example.com"
然后cd到~/.ssh
文件夹下,将公钥写入授权的key,即:
cat id_rsa.pub >> authorized_keys
这一步写不写无所谓,关键是得生成authorized_keys这个文件,然后把你需要ssh到子系统的控制端的公钥复制到子系统上的authorized_keys即可。
接着在子系统上执行ifconfig
(没有命令的自行按照提示安装相关依赖)找到设备一般是192.30.xxx.xxx
(前面两个跟windows的ip相同)。
查询到子系统的ip之后,执行ssh 子系统用户名@子系统ip
就可以成功ssh了,然后就能在VS Code上ssh远程连接子系统了。
注意是Windows子系统,除了当前Windows设备,其他设备就没办法ssh到该子系统了!!!
但是同时子系统有个很大的好处就是可以通过Windows的资源管理器随意在子系统上增删或与子系统之间交换文件,如下图(不过前提是你有足够的耐心,因为这种跨系统传文件同样需要网络,所以还是用SFTP为好):
4. 显示子系统GUI
有时需要显示子系统诸如gym.render
等样式的GUI窗口,一种方法就是通过MobaXterm(尽管不符合VS Code的口味),另外一种方法则墙裂推荐,参考VScode配置X11转发显示GUI窗口