百度360必应搜狗淘宝本站头条
当前位置:网站首页 > 技术教程 > 正文

如何从Win10访问Linux子系统中的文件

suiw9 2024-10-23 18:50 35 浏览 0 评论

在19H1(目前处于Insider Preview阶段,预计4月份正式推送)中,微软为适用于Linux的Windows子系统带来了一项有趣的功能,这项功能允许用户从Windows 10访问Linux子系统中的文件,今天的这期教程,我们来讨论这一功能的具体用法。

一、前提条件

在开始使用这一新功能之前,请确保你的设备正在运行的Windows 10系统满足以下条件:

在开始使用上文我们所提到的这一功能之前,请确保以下条件的满足:

  • Windows 10 系统须为19H1或更高版本;

  • Linux子系统已经安装并启用。

要在Windows 10中启用Linux子系统,请先确认你的计算机所使用的处理器支持虚拟化技术,且该项功能已经开启;

然后,我们需要在“控制面板”-“程序”-“启用或关闭Windows功能”中勾选“适用于Linux的Windows子系统”,接着重新启动Windows 10;

最后,我们需要在微软商店(过去叫Windows商店)中下载、安装并简单设置Linux子系统。

在适用于Linux的Windows子系统刚刚推出时,我们只有一个Ubuntu发行版可选,不过现在,除了Ubuntu之外,我们还可以选择openSUSE、SUSE Linux、Debian、Kali Linux等其他发行版。

今天的这期教程适用于微软商店中所提供的所有Linux发行版。

二、在资源管理器中访问文件

现在,我们已经可通过Windows 10中的文件资源管理器来Linux子系统中的文件,就像我们平时访问和管理Windows 10里的文件一样。对于Linux子系统中的文件,我们不仅可以使用Windows 10的文件资源管理器来执行移动、复制和粘贴等操作,我们甚至可以使用Notepad++或者Visual Studio Code来编辑它们。

当我们处于Linux子系统的命令行窗口时,只需输入并执行下面这行命令,我们即可以在Windows文件资源管理器中访问和管理Linux子系统中我们当前所处的文件路径下的文件:

explorer.exe .

提示:在输入和执行以上命令时,请注意,explorer.exe和.之间有个空格。

例如,当我们在正在运行的Linux子系统中执行下面这行命令:

cd /home/

那么我们所处的路径将为/home/

此时,我们若在Linux的命令行中执行下面这行命令:

explorer.exe .

那么Windows文件资源管理器将会访问Linux子系统中/home下的文件和文件夹。

同样地,我们可以通过这一原理访问Linux子系统中几乎所有的文件。

三、在PowerShell中访问文件

有些时候,我们需要在PowerShell中访问Linux子系统里的文件,这并非是件难事。

Linux子系统的文件目录在Windows文件资源管理器中的路径为:

\\wsl$\正在运行的Linux发行版的名称\

例如:

\\wsl$\Ubuntu

熟悉CMD或者PowerShell命令的同学可能已经猜到应该怎样做了。是的,用dir命令即可。

例如,如果我们想要使用PowerShell来访问Ubuntu子系统中的文件,那么我们一共需要执行两条命令,第一条命令是:

cd \\wsl$\Ubuntu

这条命令的作用是切换到Linux子系统根目录中的文件所在的路径;

第二条命令是:

dir

这条命令是获取当前文件路径下的文件(包括文件夹)列表。

四、已知问题

通过文件资源管理器来访问Linux子系统中的文件是Windows 10上的一个新功能(目前处于预览阶段),它可能并不完美,以下是微软在其官方博客中提到的一些已知问题:

1、就目前来说,只有当某一Linux子系统运行时,我们才可以从Windows文件资源管理器访问它里面的文件,据IT之家了解,微软将会在未来的Windows更新中提供文件资源管理器对处于非运行状态的Linux子系统中的文件的访问支持。

2、如果你想在命令提示符(CMD)中操作Linux子系统里的文件,那么请注意,由于CMD不支持将UNC路径作为当前目录,所以类似于:

cd \\wsl$\Ubuntu\home

这样的命令是无法执行的。

不过,类似于下面这样的命令执行起来则没有问题:

copy \\wsl$\Ubuntu\home\threeseven\MyFile\test.txt C:\LinuxFiles\

这行命令的作用是将Ubuntu系统/home/threeseven(用户文件夹)/MiFiles/test.txt复制到Windows系统C盘的LinuxFiles文件夹内。

3、不要通过AppData文件夹访问你的Linux子系统中的文件,因为这很有可能会导致Linux系统中的文件损坏。

五、导出Linux分区至Windows 10

如果当前Windows 10中有Linux子系统正在运行,那么在将Linux分区导出至Windows 10之前,请先结束目标Linux子系统的运行。方法如下:

首先,我们需要知道当前有哪些Linux发行版正在运行。为此,我们可以在Windows 10的命令提示符或者PowerShell中输入并运行这行命令:

wsl.exe --list --running

以Ubuntu为例,若要结束它的运行,那么我们需要执行的命令为:

wsl.exe --terminate Ubuntu

如果你嫌上面那行命令太长,那么运行这行命令也可以:

wsl -terminate Ubuntu

现在,我们已经结束了Linux子系统的运行。如果你忘了执行这一步也没关系,因为当我们开始把Linux分区导出至Windows 10时,Linux的运行将被强行终止。

要将Linux分区导出至Windows 10,我们需要打开命令提示符或者Powershell,然后执行这个命令:

wsl.exe --export Linux发行版的名称 要导出到的位置\导出的压缩文件的文件名

例如,我们想把Linux分区导出至桌面,那么以小编的电脑为例,我们应该在命令提示符或者PowerShell里面执行的命令为:

wsl --export Ubuntu C:\Users\ThreeSeven\Desktop\Ubuntu.tar

在导出文件时,请耐心等待,因为导出的过程需要一些时间。

导出完成后,我们可以在目标位置看到一个.tar格式的压缩文件,这个压缩文件里面的内容就是Linux分区中的全部文件。

六、将导出的Linux归档文件导入到一个新的Linux子系统

在上一小节,我们已经将Linux分区中的全部文件导出到Windows 10的桌面的一个归档文件里,现在,我们再尝试着把这些文件导入到一个新的Linux子系统当中。这一操作可以用于克隆Linux子系统。

要执行这一导入操作,我们可以在命令提示符或者PowerShell中执行这条命令:

wsl.exe --import 新的Linux子系统的名称 新的Linux子系统的目标位置 TAR归档文件的路径

例如:

wsl.exe --import Ubuntu_New C:\Ubuntu_New C:\Users\ThreeSeven\Desktop\Ubuntu.tar

在导入文件时,请耐心等待,因为导入的过程需要一些时间。

导入成功后,我们可以在新的Linux子系统的目标位置看到这样两个文件夹:

要运行新的Linux子系统,我们需要在命令提示符或者PowerShell中执行以下命令:

wsl --distribution 新的Linux子系统的名称

例如:

wsl --distribution Ubuntu_New

若要删除我们通过导入Linux归档文件而得到的这个新的Linux子系统,我们可以在命令提示符或者PowerShell中执行这条命令:

wsl.exe --unregister 目标Linux子系统的名称

例如:

wsl.exe --unregister Ubuntu_New

七、总结

在今天的这期教程中,我们讨论了在Windows 10的文件资源管理器和PowerShell中访问Linux文件的方法,此外,我们还了解了如何将Linux分区导出至Windows 10以及如何将Windows 10中的Linux归档文件导入到一个新的Linux子系统当中。文中所述的方法看起来非常简单,若亲自动手实践,你会发现它们做起来就和看起来一样简单。想要了解更多关于Windows的使用技巧,请继续关注IT之家学院。

相关推荐

俄罗斯的 HTTPS 也要被废了?(俄罗斯网站关闭)

发布该推文的ScottHelme是一名黑客,SecurityHeaders和ReportUri的创始人、Pluralsight作者、BBC常驻黑客。他表示,CAs现在似乎正在停止为俄罗斯域名颁发...

如何强制所有流量使用 HTTPS一网上用户

如何强制所有流量使用HTTPS一网上用户使用.htaccess强制流量到https的最常见方法可能是使用.htaccess重定向请求。.htaccess是一个简单的文本文件,简称为“.h...

https和http的区别(https和http有何区别)

“HTTPS和HTTP都是数据传输的应用层协议,区别在于HTTPS比HTTP安全”。区别在哪里,我们接着往下看:...

快码住!带你十分钟搞懂HTTP与HTTPS协议及请求的区别

什么是协议?网络协议是计算机之间为了实现网络通信从而达成的一种“约定”或“规则”,正是因为这个“规则”的存在,不同厂商的生产设备、及不同操作系统组成的计算机之间,才可以实现通信。简单来说,计算机与网络...

简述HTTPS工作原理(简述https原理,以及与http的区别)

https是在http协议的基础上加了一层SSL(由网景公司开发),加密由ssl实现,它的目的是为用户提供对网站服务器的身份认证(需要CA),以至于保护交换数据的隐私和完整性,原理如图示。1、客户端发...

21、HTTPS 有几次握手和挥手?HTTPS 的原理什么是(高薪 常问)

HTTPS是3次握手和4次挥手,和HTTP是一样的。HTTPS的原理...

一次安全可靠的通信——HTTPS原理

为什么HTTPS协议就比HTTP安全呢?一次安全可靠的通信应该包含什么东西呢,这篇文章我会尝试讲清楚这些细节。Alice与Bob的通信...

为什么有的网站没有使用https(为什么有的网站点不开)

有的网站没有使用HTTPS的原因可能涉及多个方面,以下是.com、.top域名的一些见解:服务器性能限制:HTTPS使用公钥加密和私钥解密技术,这要求服务器具备足够的计算能力来处理加解密操作。如果服务...

HTTPS是什么?加密原理和证书。SSL/TLS握手过程

秘钥的产生过程非对称加密...

图解HTTPS「转」(图解http 完整版 彩色版 pdf)

我们都知道HTTPS能够加密信息,以免敏感信息被第三方获取。所以很多银行网站或电子邮箱等等安全级别较高的服务都会采用HTTPS协议。...

HTTP 和 HTTPS 有何不同?一文带你全面了解

随着互联网时代的高速发展,Web服务器和客户端之间的安全通信需求也越来越高。HTTP和HTTPS是两种广泛使用的Web通信协议。本文将介绍HTTP和HTTPS的区别,并探讨为什么HTTPS已成为We...

HTTP与HTTPS的区别,详细介绍(http与https有什么区别)

HTTP与HTTPS介绍超文本传输协议HTTP协议被用于在Web浏览器和网站服务器之间传递信息,HTTP协议以明文方式发送内容,不提供任何方式的数据加密,如果攻击者截取了Web浏览器和网站服务器之间的...

一文让你轻松掌握 HTTPS(https详解)

一文让你轻松掌握HTTPS原文作者:UC国际研发泽原写在最前:欢迎你来到“UC国际技术”公众号,我们将为大家提供与客户端、服务端、算法、测试、数据、前端等相关的高质量技术文章,不限于原创与翻译。...

如何在Spring Boot应用程序上启用HTTPS?

HTTPS是HTTP的安全版本,旨在提供传输层安全性(TLS)[安全套接字层(SSL)的后继产品],这是地址栏中的挂锁图标,用于在Web服务器和浏览器之间建立加密连接。HTTPS加密每个数据包以安全方...

一文彻底搞明白Http以及Https(http0)

早期以信息发布为主的Web1.0时代,HTTP已可以满足绝大部分需要。证书费用、服务器的计算资源都比较昂贵,作为HTTP安全扩展的HTTPS,通常只应用在登录、交易等少数环境中。但随着越来越多的重要...

取消回复欢迎 发表评论: