Linux 的 Windows 子系统不正式支持图形 GNU/Linux 桌面应用程序,因此我们无法保证我们选择的图形程序进行的调用将作为 Windows 系统调用实现。
您遇到的主要问题是这些程序缺少图形界面,称为“X-server”。我们可以尝试通过以下方式解决这个问题:
- 安装 X-server(如Xming)。
- 通过设置环境变量告诉 Linux 的 Windows 子系统将此 X-server 用作 DISPLAY。
对于(1),要安装Xming,您只需下载并接受默认设置,它将自动启动并等待图形程序显示。
要解决 (2),在运行图形程序之前,运行:
export DISPLAY=:0
以便 bash 知道将您正在运行的程序的图形输出发送到哪里。
然后你可以尝试运行一个简单的图形程序(例如gvim或python的turtle模块)。
同样,不能保证这适用于所有 GNU/Linux 应用程序,因为 Microsoft 并未将每个 Linux 系统调用都转换为 Windows 系统调用,并且如果您正在运行的图形程序进行这种不受支持的调用,您的程序可能会崩溃。
这些说明大部分来自以下指南,该指南展示了如何让 gvim 在适用于 Linux 的 Windows 子系统上运行:
http://www.howtogeek.com/261575/how-to-run-graphical-linux-desktop-applications-from-windows-10s-bash-shell/
编辑:由于您还询问了检查 DISPLAY 中的内容,我补充说您可以通过运行检查 DISPLAY 变量的值:
echo $DISPLAY
($ 确保 bash 将后面的内容解释为变量,而不是字符串文字。运行 echo DISPLAY 只会回显字符串 DISPLAY。)