Windows10上安装使用Linux子系统(WSL)

Windows10上安装使用Linux子系统(WSL),第1张

Linux的Windows子系统让开发人员可以直接在Windows上运行Linux环境(包括大多数命令行工具,实用程序和应用程序),而无需建立在虚拟机的开销之上,整个系统共200多M,但包含了你能用到的所有功能,并且和windows完美互 *** 作(省去Linux挂载本地windows分区或目录的 *** 作),目前Linux的windows子系统已经相当完善,可当作完整linux系统使用.

您可以:

从Windows应用商店中 选择您最喜爱的Linux发行版。

运行常用的命令行实用程序,如grep,sed,awk等。

运行Bash shell脚本和Linux命令行应用程序,包括:

工具:vim,emacs,tmux

语言:Javascript / node.js,Ruby,Python,C / C ++,C#和F#,Rust,Go等

服务:sshd,MySQL,Apache,lighttpd

使用发行版的内置包管理键毁器(apt-get)安装其他Linux工具。

从Linux控制台调用Windows应用程序。

在Windows上调用Linux应用程序。

1、打开 [控脊备制面板]

2、找到 [程序与功能] 处的 [启用或关闭windows功能]

3、在 [适用于linux的windows子系统] 一栏处打上勾

4、点击确定并重启电脑

注:以上步骤在win10专业版上测试,win10家庭版可能不支持

使用快捷键: 微软光标键+S 搜索稿野备 "功能"

进入功能

勾选适用于Linux的Windows子系统

或者直接PowerShell中运行以下命令

​然后出现提示重新启动计算机

在应用商店搜索“Linux”,选择您喜欢的Linux版本,推荐安装Ubuntu

注意:应用商店的程序使用默认路径,不要更换到其他盘符

安装完毕后开始菜单出现Ubuntu图标

现在可以在里面进行任何和linux相关的命令

或者在Windows商店里直接启动

进入Ubuntu系统会自动初始化并安装,稍等几分钟即可

Enjoy !

切记:小心执行 mkdir -rf mnt

我的WSL2使用的是ubuntu 20.04.2.LTS, Windows是10专业版 Build: 19043.1526。本文只讨论应用级别通过网络互相访问的问题,不涉及文件互访。

由于多物理网卡,虚拟机网卡等原因,Windows会有多个IP Address,我们需虚扰要找出能与WSL2连同的那个。

启动WSL2,键入如下命令:

输出中nameserver 后面的地址即是我们要找的地址。

如:

172.27.160.1 就是我们要找的迟世Windows的IP Address,后面会以 <win-ip>引用

启动WSL2,键入如下命令:

输出举例:

172.27.170.146 就是我们要找的WSL2的IP Address,后面会以 <wsl-ip>引用

默认情况下Windows的防火墙会阻止WSL2中应用对Windows的网络访问(see: Add "allow" rule to Windows firewall for WSL2 network · Issue #4585 · microsoft/WSL (github.com) ),解决办法是添加一条码誉肢防火墙规则允许WSL2对Windows的访问。请以管理员身份打开PowerShell并键入以下命令:

输出举例:

命令成功执行后,我们会在Windows的防火墙高级设置的入站规则里会看到一条名为 WSL 的新规则:

以上配置好后,我们就可以在WSL2中通过 <win-ip>和 <端口>访问Windows中的应用程序。

我们可以在Windows中通过 <wsl-ip>和 <端口>访问WSL2中的应用程序。

WSL 是适用于 Linux 的 Windows 子系统,可让开发人员按原样运行 GNU/Linux 环境 - 包括大多数命令行工具、实用工具和应用程序 - 且不会产生传统虚拟机或双启动设置开销。

WSL 分为两个版本,一个是 WSL1,一个是 WSL2,WSL2 是 WSL1 的升级版,主要优势是:

WSL2 建议不要跨 *** 作系统使用文件,若想获得最快的性能速度,请将文件存储在 WSL 文件系统中,在存储时,使用 Linux 文件系统根目录: wsl$Ubuntu-20.04home Project 。

访问 WSL2 文件系统,可以运行命令WIN+R 或在文件资源管理器地址栏中键入 wsl$ ,以查找相应的分发名称并访问其根文件系统。

大多数情况下我们会使用 WSL2,但在以下情况,请考散液虑使用 WSL1:

可以使用localhost 从 Windows 上访问 Linux 分发版中的应用。

如果要从 Linux 分发版访问 Windows 上运行的网络应用,则需要使用主机的 IP 地址。你可以执行以下步骤来使其可行。

当使用远程 IP 地址连接到应用程序时,它们将被视为来自局域网 (LAN) 的连接。这意味着你需要确保你的应冲做物用程序可以接受 LAN 连接。例如,你可能需要将应用程序绑定到0.0.0.0 而非 127.0.0.1 。

当使用 WSL 1 分发版时,如果计算机设置为可供 LAN 访问,那么在 WSL 中运行的应用程序也可供在 LAN 中访问。

这不是 WSL 2 中的默认情况,WSL 2 有一个带有其自己独一无二的 IP 地址的虚拟化以太网适配器。目前,若要启用此工作流,你需要执行与常规虚拟机相同的步骤。下面是一个示例 PowerShell 命令,用于添加侦听主机上的端口 4000 的端口代理并将其连接到端口 4000,并使用 IP 地址 192.168.101.100 连接到 WSL 2 VM。

使用wsl 可以在 CMD 或 PowerShell 运行 Linux 命令,示例:

以这种方式运行的命令使用的是同一个工作目录,并且以 WSL 默认用户的身份运行,拥有与调用方进程和终端相同的 Windows 管理权限。

WSL 可以使用[tool-name].exe 直接从 WSL 命令行运行 Windows 工具。例如, notepad.exe 。

以这种方式运行的应胡升用程序具有相同的工作目录,拥有与 WSL 进程相同的权限,以活动 Windows 用户的身份运行,显示在 Windows 任务管理器中。

WSL 还有一些高级用法,比如更改磁盘大小,文件权限,环境变量等,具体配置可以参考官方文档。


欢迎分享,转载请注明来源:内存溢出

原文地址: https://outofmemory.cn/yw/12383063.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-05-25
下一篇 2023-05-25

发表评论

登录后才能评论

评论列表(0条)

保存