Linux(WSL)的Windows子系统允许在Windows 10及更高版本以及Windows Server 2019及更高版本上运行Linux二进制可执行文件。WSL通过Hyper-V特征的子集使用真正的Linux内核。
大家想知道如何为Windows安装WSL的话,请参阅 如何在Windows 10及更高版本上本地运行Linux。
在本教程中,我们将从一些简单的示例开始,并以Linux,PowerShell和DOS(CMD.EXE)命令一起使用。
1.WSL入门
首先,请按照以下方式打开安装的Linux发行版:
第1步: 选择 开始 菜单,然后选择您安装的Linux发行版 – 对于我们安装了Ubuntu的示例。
现在,您应该在Linux命令提示下进行发行:
立即注意的一件事是运行过程的数量 – 在这种情况下为12。这突出了一个事实,就Linux而言,它是用自己的”机器”运行的。在这种情况下,Windows实际上正在运行236个进程(包括WSL):
这个示例强调了您可以从WSL Linux环境运行PowerShell命令的事实。在以上,请注意围绕PowerShell命令的引号(并非所有WSL PowerShell命令都需要引号 powershell.exe get-process)。该虚拟机行为也可以通过运行Linux看到 最佳 命令:
在上述第四行,我们看到”物理”内存有11911.9 MIB(或旧版MB)。要确定系统的实际物理内存,您可以从WSL内部运行以下Windows命令:
systeminfo.exe | finstr.exe
这表明实际上有15,289 MB的物理记忆:
换句话说,将Windows的物理内存的一部分分配给Linux虚拟机。
接下来,我们将检查WSL Linux和Windows文件系统以及它们如何相互接触。
2.WSL和Windows文件系统
从WSL中运行以下命令:
cd /
ls -lah
例如:
这是典型的Linux根目录列表。但是,如果我们在 nt 目录,我们可以看到Windows文件系统如何通过WSL公开(Note命令):
在上面,我们看到标准的Windows文件夹,例如程序文件,用户,Windows和。
现在,在Windows的侧面,我们可以访问WSL文件系统,如下所示:
1. 打开Windows Explorer和地址栏中,键入网络驱动器 \\ wsl $, 如图所示:
请注意,上图意味着您可以同时安装多个Linux发行版,这确实是这种情况。
2. 双击您安装的Linux发行版(在此示例中进行Ubuntu)。这提供了对WSL文件系统的访问:
3.WSL和Windows DU命令
接下来,让我们检查Windows真正具有的Linux命令-DU命令。在Windows中,按大小对文件和目录进行排序可能具有挑战性。对于Linux,此任务相对简单:
du -aSh 2>&1 | sort -n -r | head -n 5
一个示例如下:
对于上述:
- du -ash 2>&1 返回文件/目录大小信息,忽略任何权限错误。
- 排序-n -r 按大小对文件/目录列表进行分类,从最小到最大。
- 头-N 5 返回前5个最大的文件/目录。
现在,如果Windows可以做到这一点,那不是很好吗?好吧,感谢WSL,现在可以。从高架Windows命令提示符(CMD.EXE)中运行以下内容:
wsl du -aSh 2>&1 | wsl sort -n -r | wsl head -n 5
这导致输出类似:
注意 WSL 在每个Linux命令之前。这需要让Windows知道我们正在运行Linux命令(来自您的已安装分发),而不是错误的Windows命令。
接下来,让我们在组合Linux,PowerShell和dos(cmd.exe)命令方面进行更深入的研究。
4.混合Linux和Windows命令
这是WSL Linux命令提示符中混合命令的一个示例。这结合了Linux,Powershell和DOS:
powershell.exe Get-ChildItem -Recurse -ErrorAction SilentlyContinue | findstr.exe "karlito" | awk '{print $2}'
我们首先运行 Get-Childitem PowerShell命令,然后将其输送到DOS中 Findstr 命令,最后将其输送到Linux 尴尬 命令。为了更好地了解命令流,我们将从代表开始 Get-Childitem 输出:
然后我们使用 Findstr DOS命令选择包含” Karlito”的输出:
最后,我们使用Linux选择第二列 尴尬 命令:
接下来,我们将从PowerShell命令提示符中运行类似的命令,如图所示:
Get-ChildItem -Recurse -ErrorAction SilentlyContinue | findstr.exe "karlito" | wsl awk '{ print \$6 }'
同样,我们将逐步查看,从代表输出开始 Get-Childitem:
接下来,我们找到包含” Karlito::
请注意上面的六列(PM/AM数据被视为列)。因此,我们需要更改 尴尬 命令如下:
观察 \ 角色之前 $6 在里面 尴尬 命令。因为 $ 角色在Powershell中具有特殊的含义,因此我们必须使用 \, 如图所示。
最后一个示例运行相同的命令,但从Windows命令提示符(cmd.exe)运行:
注意使用 powershell.exe 运行PowerShell命令和 WSL 运行Linux命令。
总而言之,通过使用WSL将Linux分布附加到Windows上,您可以扩展窗户的功能和功能,并在指尖上放有方便的Linux外壳,希望本教程可以对你有所帮助。