之前我们在VMware、Hyper-V上安装Linux操作系统,然后使用vscode远程连接它们进行开发。但是WSL给我们提供了另外一种方案——直接使用vscode连接WSL虚拟机。
root账户连接
连接的方法也很简单,我们在vscode界面使用Ctrl+P唤出命令界面,输入
> WSL
然后找到Connect to WSL using distro
选择此项可以列出一系列本机上的WSL虚拟机。
然后选择输入进入的虚拟机名称即可。
但是有个问题,这样我们将以root权限进入。
而现实工作中,我们可能希望以其他用户登录。比如我一般用fangliang这个用户名登录。
这个时候我们可以直接输入下面命令切换到fangliang。
su fangliang
然后输入下面命令进入用户自己目录。
cd ~
但是这操作太繁琐了。而且我们在vscode中新建终端时,又会默认进入root账户。
下面我们就要介绍如何在vscode中,默认使用非root账户登录。
非root账户登录
网上有一种说法,认为在/etc/wsl.conf的[user]下新增default=fangliang的形式来解决这个问题,但是亲测无效。
比较有效的方法是通过修改注册表实现。
首先我们在Linux实例中找到要登录的用户ID
id -u fangliang
这儿返回的1002是10进制值。
然后Win键+R唤出Windows的“运行”界面,输入
regedit
在注册表编辑器中找到如下位置
\HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Lxss
这个注册表目录下有很多项,每一项对应一台WSL实例。
我们挨个点开项目,找到我们要连接的实例的对应项
双击DefaultUid
然后将10进制的值改成上面我们得到的fangliang这个用户的ID值
点击确定后,重启vscode或者Terminal(终端)这些连接WSL虚拟机的工具。
之后我们再进入这台虚拟机,就是以我们希望的用户名登录的了。