win10系统数据架构(10版本1903中的WSL有什么新特性)

win10系统数据架构(10版本1903中的WSL有什么新特性)(1)

下一次Windows更新将很快到来,我们将给WSL带来激动人心的更新!包括在Windows中访问Linux文件系统,以及改进在命令行中管理和配置发行版的方式。

在Windows中访问Linux文件

过去,在Windows中创建和更改Linux文件会导致文件丢失或数据损坏。这是一项被高度要求和期待已久的功能。我们自豪地宣布,您现在可以在Windows中轻松访问Linux发行版中的所有文件。

在文件资源管理器中打开Linux文件

开始使用此功能的最佳方式是在文件资源管理器中打开Linux文件!为此,请打开您最喜欢的发行版,确保您当前的文件夹是您的Linux主目录,然后键入:

explorer.exe

这将打开一个文件资源管理器窗口,位于Linux发行版内部。

win10系统数据架构(10版本1903中的WSL有什么新特性)(2)

从这里,你可以访问你想要的任何Linux文件,就像通过文件浏览器访问任何其他文件一样。这包括一些操作,例如:将文件拖动到其他位置,复制和粘贴,甚至是有趣的场景,比如使用上下文菜单在WSL目录中打开VSCode!

win10系统数据架构(10版本1903中的WSL有什么新特性)(3)

即将到来文件资源管理器体验的改进

使用此功能时,您会注意到发行版文件通过以下路径展示: \wsl$<running_distribo_name>。这是Windows访问每个发行版内部文件的方式(您可以在下一节了解详细信息!)WSL团队正在积极研究如何在文件资源管理器中提高Linux文件的可发现性。

在命令行中

WSL主要是一个命令行工具,因此当然,这个特性也适用于命令行。您可以通过访问\wsl${distro name}来找到发行版的文件,其中{distribo name}是正在运行的发行版的名称。以下是使用PowerShell访问Debian的情况。

win10系统数据架构(10版本1903中的WSL有什么新特性)(4)

它是如何工作的

简而言之: 9P协议文件服务器处理文件相关请求,Windows充当客户端。

我们已经修改了WSL初始化守护程序,以包含9P服务器。此服务器包含支持Linux元数据的协议,包括权限。有一个Windows服务和驱动程序充当客户端,与9P服务器(运行在WSL实例内部)对话。客户端和服务器通过AF_UNIX套接字进行通信,因为WSL允许使用AF_UNIX在Windows应用程序和Linux应用程序之间进行互操作,如本文所述。

已知问题

这是一个新特性,它的某些部分可能无法完美工作。在使用此功能时,我们想让您了解一些已知问题:

  • 目前,发行版文件只能在发行版运行时从Windows访问(我们的目标是在将来的更新中增加对非运行发行版的支持)

    由于9P文件服务器在每个发行版内部运行,因此只有在该发行版运行时才能访问。该团队正在寻找帮助解决这一问题的方法。

  • 访问Linux文件被视为与访问网络资源相同,任何访问网络资源的规则仍然适用例如:当使用CMD时,cd \wsl$Ubuntuhome将不起作用(因为CMD不支持UNC路径作为当前目录),但是copy \wsl$Ubuntuhomesomefile.txt C:dev将起作用

  • 旧规则仍然适用,你不应该在AppData文件夹中访问你的Linux文件!如果你试图通过AppData文件夹访问你的Linux文件,你会绕过使用9P服务器,这意味着你将无法访问你的Linux文件,并且你可能会破坏你的Linux发行版。

提交反馈

我们的团队在听取您的反馈方面投入了巨大的精力,事实上,这整个功能是基于我们伟大的社区反馈而创建的!请将你发现的任何问题提交在Github页面:https://github.com/Microsoft/WSL,我们将尽最大努力解决这些问题。感谢社区帮助WSL成为一个了不起的工具!

改善wsl.exe命令行体验

通过将命令整合到wsl.exe并添加更多的命令行功能,我们还在最新的更新中改进了命令行体验。现在,您可以使用wsl.exe来执行配置和控制机器上的WSL所需的所有必要命令。你总是可以通过运行wsl.exe --help来检查你可以从wsl.exe运行的所有命令。

新命令

我们还添加了一些新命令,这些命令将在使用wsl.exe时为您提供更多功能。

现在,您可以以不同的用户运行命令,终止正在运行的发行版,甚至可以导出和导入不同的发行版!导出发行版是通过传入--export作为参数来实现的,并将输出当前发行版的tar文件。例如,您可以使用此功能与他人共享您的发行版设置。此外,如果你传入--import作为参数,你可以导入一个tar文件,其中包含Linux发行版的根文件系统,这允许你导入你想要的任何发行版,以及你想要的任何配置。这是我们添加到wsl.exe的命令的完整列表。

新添加的命令

  • --user, -u <UserName>

    以指定用户的身份运行

  • --export <DistributionName> <FileName>

    将发行版导出到tar文件。

    文件名可以是–用于标准输

  • --import <DistributionName> <InstallLocation> <FileName>

    将指定的tar文件作为新发行版导入。

    文件名可以是–用于标准输入

  • --terminate, -t <DistributionName>终止发行版

合并命令

wslconfig.exe内部存在的命令已经添加到wsl.exe,让你可以更容易地配置发行版。我们的目标是将您与WSL的交互方式整合为一个二进制文件。

从wslconfig.exe添加到wsl.exe的命令

  • --list , -l

    列出计算机上可用的所有发行版

    还可以包含其他选项:

      • --all

        列出所有发行版,包括当前正在安装或卸载的发行版

      • –running仅列出当前正在运行的发行版

  • --setdefault, -s <DistributionName>

    将发行版设置为默认值

  • --unregister <DistributionName>注销发行版

  • --upgrade <DistributionName>将发行版升级为WslFs文件系统格式

控制台改进

Windows控制台团队还做了一些改进,您会在使用WSL时注意到这些改进。控制台团队将很快发布Windows 10版本1903中的新特性的文章。保持关注!

英文原文:https://blogs.msdn.microsoft.com/commandline/2019/02/15/whats-new-for-wsl-in-windows-10-version-1903/ 译者:困顿少年 宁子谦

,

免责声明:本文仅代表文章作者的个人观点,与本站无关。其原创性、真实性以及文中陈述文字和内容未经本站证实,对本文以及其中全部或者部分内容文字的真实性、完整性和原创性本站不作任何保证或承诺,请读者仅作参考,并自行核实相关内容。文章投诉邮箱:anhduc.ph@yahoo.com

    分享
    投诉
    首页