Windows 10版本1903中的WSL有什么新特性?

2019 年 3 月 11 日 Python程序员

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

在Windows中访问Linux文件

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

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

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

explorer.exe

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

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

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

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

在命令行中

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

它是如何工作的

简而言之: 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/
译者:困顿少年 宁子谦

登录查看更多
2

相关内容

Microsoft Windows(视窗操作系统)是微软公司推出的一系列操作系统。它问世于1985年,当时是DOS之下的操作环境,而后其后续版本作逐渐发展成为个人电脑和服务器用户设计的操作系统。
【2020新书】使用高级C# 提升你的编程技能,412页pdf
专知会员服务
57+阅读 · 2020年6月26日
德勤:2020技术趋势报告,120页pdf
专知会员服务
190+阅读 · 2020年3月31日
【干货】大数据入门指南:Hadoop、Hive、Spark、 Storm等
专知会员服务
95+阅读 · 2019年12月4日
【电子书】C++ Primer Plus 第6版,附PDF
专知会员服务
87+阅读 · 2019年11月25日
Windows开源无人机仿真工具:AirSim1.0 入门
无人机
25+阅读 · 2019年6月8日
VS Code Remote发布!真·远程开发
开源中国
6+阅读 · 2019年5月3日
支持多标签页的Windows终端:Fluent 终端
Python程序员
7+阅读 · 2019年4月15日
已删除
创业邦杂志
5+阅读 · 2019年3月27日
如何编写完美的 Python 命令行程序?
CSDN
5+阅读 · 2019年1月19日
Android P正式发布,你需要尽快做适配了
前端之巅
3+阅读 · 2018年8月7日
ROS 2正式版终于来了,还增加了这些新特性
量子位
3+阅读 · 2017年12月11日
Arxiv
24+阅读 · 2020年3月11日
Arxiv
35+阅读 · 2019年11月7日
Object Detection in 20 Years: A Survey
Arxiv
48+阅读 · 2019年5月13日
Feature Selection Library (MATLAB Toolbox)
Arxiv
7+阅读 · 2018年8月6日
VIP会员
相关VIP内容
【2020新书】使用高级C# 提升你的编程技能,412页pdf
专知会员服务
57+阅读 · 2020年6月26日
德勤:2020技术趋势报告,120页pdf
专知会员服务
190+阅读 · 2020年3月31日
【干货】大数据入门指南:Hadoop、Hive、Spark、 Storm等
专知会员服务
95+阅读 · 2019年12月4日
【电子书】C++ Primer Plus 第6版,附PDF
专知会员服务
87+阅读 · 2019年11月25日
相关资讯
Windows开源无人机仿真工具:AirSim1.0 入门
无人机
25+阅读 · 2019年6月8日
VS Code Remote发布!真·远程开发
开源中国
6+阅读 · 2019年5月3日
支持多标签页的Windows终端:Fluent 终端
Python程序员
7+阅读 · 2019年4月15日
已删除
创业邦杂志
5+阅读 · 2019年3月27日
如何编写完美的 Python 命令行程序?
CSDN
5+阅读 · 2019年1月19日
Android P正式发布,你需要尽快做适配了
前端之巅
3+阅读 · 2018年8月7日
ROS 2正式版终于来了,还增加了这些新特性
量子位
3+阅读 · 2017年12月11日
Top
微信扫码咨询专知VIP会员