多版本 WSL 下 Windows Terminal 初始路径的配置

问题描述

安装了 WSL Ubuntu 16.04 和 18.04 后,想要在 Windows Terminal App 里配置两者的终端比较简单,只需要在 Ubuntu 终端输入指令

uuidgen

生成 uuid,Terminal App 会自动将 uuid 写入 profile.json 中(或者手动添加 guid 字段)

但是,用 Terminal App 打开 WSL 有一个问题:进入终端后初始目录还在 Windows 文件系统的 %USERPROFILE% 下,如图:

原因是 Terminal App 的配置文件 Profile.json 中,startingDirectory 字段的默认值为 %USERPROFILE% ,导致每个新建的终端初始路径都是 Windows 文件系统的用户目录

现想要实现 Terminal App 进入 WSL 后的初始路径在 Linux 的用户主目录下,即 ~(/home/{Username}/下)

参考

解决方法

单版本 WSL

即只安装了一个 WSL 版本的情况

  1. 打开 Terminal App 的 Profile.json,在 WSL 的配置文件块内加入 commandLine 字段
    //...
            {
              "guid": "{[your uuid]}",
              "hidden": false,
              "name": "Ubuntu-16.04",
              "commandline" : "wsl.exe ~", //在 wsl 启动时进入 Linux 下的用户主目录
              "source": "Windows.Terminal.Wsl"
            },
    //...

多版本 WSL

即安装了多个 WSL 版本的情况

  1. 首先打开 Windows Powershell,输入指令
    wsl -l

    查看已经安装的所有 WSL 发行版,效果如下图

  2. 复制对应的版本号,打开 Profile.json,同单版本解决方法一样,在对应的 WSL Profile 下新建 commandLine 字段
    //...
            {
                "guid": "{}",
                "hidden": false,
                "name": "Ubuntu-18.04",
                "commandline" : "wsl.exe ~ -d Ubuntu-18.04", //此处添加 -d [版本名称] 参数指定 WSL 要开启的版本
                "source": "Windows.Terminal.Wsl"
            },
    //...

    与单版本不同的是要添加 -d [版本名称] 参数来指定开启的 WSL 版本

效果

One thought on “多版本 WSL 下 Windows Terminal 初始路径的配置

发表评论

电子邮件地址不会被公开。 必填项已用*标注

此站点使用Akismet来减少垃圾评论。了解我们如何处理您的评论数据