我在 Windows 10 上的 WSL2 中安装了 Ubuntu-22.04。但是,我的 settings.json 中有两个 Windows Terminal 配置文件。其中一个一定是在更新后出现的,它从一开始就不存在。我仔细检查了这两个配置文件是否引用了同一个 linux WSL2 实例。更让我困惑的是,每个配置文件都导致不同的视觉外观。
我想知道“自动”添加终端配置文件的一般工作原理,以及在我的特定情况下究竟发生了什么。以下是 settings.json 的相关部分:
{
"guid": "{f9ceaf27-504c-58d7-927c-d1d6a7ac7d3c}",
"hidden": false,
"name": "Ubuntu 22.04.1 LTS",
"source": "CanonicalGroupLimited.Ubuntu22.04LTS_79rhkp1fndgsc"
},
{
"guid": "{07b52e3e-de2c-5db4-bd2d-ba144ed6c273}",
"hidden": false,
"name": "Ubuntu-22.04",
"source": "Windows.Terminal.Wsl"
}
答案1
我无法完全确定导致此问题的升级路径,但我确实在昨天发生的 WSL Ubuntu 升级中发现了一个单独的相关错误。
首先,让我们解释一下您看到的两个不同的终端配置文件:
第一个是 Canonical 专门为 Ubuntu 创建的配置文件。它是一个 Windows 终端JSON 片段扩展包含在 Store 包中。如果您愿意,可以通过打开管理 PowerShell 会话并运行以下命令来检查它:
Get-ChildItem -Recurse 'C:\Program Files\WindowsApps\' | Where-Object {$_.Name -eq 'terminal.json' }
您可能有多个。然后,您可以使用以下路径查看它:
Get-Content 'C:\Program Files\WindowsApps\CanonicalGroupLimited.Ubuntu20.04LTS_2004.4.5.0_x64__79rhkp1fndgsc\Terminal\Fragments\terminal.json'
如果您的包位置不同,请根据需要调整上述路径。
有一件事你应该看到的是这样的:
{ "updates": "{07b52e3e-de2c-5db4-bd2d-ba144ed6c273}", // We have to hide this autogenerated profile as we can't change the name of existing profiles. // This would use WSLID like "Ubuntu-20.04" which is hard to read. "hidden": true },
这应该标志着下一个个人资料被隐藏,但听起来升级后事情可能会变得有点“糟糕”。
第二个是自动生成的配置文件。当 Windows Terminal 启动时,它基本上会扫描您已安装的所有 WSL 发行版并为每个发行版自动生成一个配置文件。
只需关闭 Windows 终端并重新启动即可删除旧条目,并使用新的、更新的 GUID 重新扫描。
但无论如何,将自动生成的版本标记为“隐藏”绝对没有坏处。无论如何,这最终应该是这样的。然后您只会看到 Canonical/Ubuntu 版本,带有 Ubuntu 图标和配色方案。