0x1 Wsl总述

WSL是微软在win系统下实现的linux子系统,目标是在windows下运行linux系统(重点是系统),目前有两个实现方式:

  • WSL1
  • windows内核集成了针对linux二进制文件elf文件格式的解析功能
  • 此外windows系统将linux内核api转换成对应的windows版本
  • WSL2
  • 在windows内核中完整的虚拟出linux内核
  • 子系统中的api直接转给虚拟出的内核来操作

共同点/优点:

  1. 在不涉及硬件的情况下 wsl1/2 都可以完美运行/兼容任何linux程序
  2. 得益于windows的电源管理以及内核优化,性能比肩物理机
  3. windows的cmd指令中可以直接调用wsl中的linux系统指令
  4. 得益于优良的设计,wsl实际上是一个框架,根据本人之前撰写的半虚拟化大纲可以实现自定义任意linux系统
  5. windows系统和wsl系统都可以无缝访问对方的文件系统

不同点/缺点:

  1. 当某些linux指令涉及到驱动层面时需要借用wsl2才能完整实现
  2. wsl1的文件系统直接以文件夹的形式保存在windows系统中,可以随意修改
  3. wsl2的文件系统存在于vhdx虚拟磁盘中

总结:

  1. 一般情况下推荐使用wsl1,它各方面都由于wsl2
  2. 如果需要驱动层的支持,推荐直接使用虚拟机
  3. wsl2是给那些资深开发者使用的

0x2 安装Wsl

  • 首先打卡控制面板,在里面打开 linux子系统的功能

image-20210413094130689.png

  • 接着打开windows商店,在里面搜索关键字linux

image-20210413094244303.png

  • 根据需要安装需要的linux系统即可,安装完成后开始菜单中就会出现操作系统的终端

image-20210413094338119.png

  • 在这个系统中可以执行所有linux指令

image-20210413094426755.png

0x3 奇技淫巧

  • 到这里为止,wsl1就安装完成了,接下来介绍一些奇淫技巧
  • wsl之所以碾压虚拟机就因为wsl和win实际上是一个系统
  • 学完这两个技巧,你会爱上wsl

0x3.1 win下运行wsl指令

在win的任意路径下打开cmd窗口,可以利用bash直接运行linux下的指令

bash -c "uname -a"
bash -c "ls"

image-20210413094828980.png

0x3.2 wsl下运行win指令

cmd.exe /c dir

image-20210413095116729.png

0x4 奇怪的姿势

  • 看到这里你会产生一个奇怪的想法win10是最好的linux发行版没有之一
  • wsl实际上是可以安装出图形界面,感兴趣的可以自己琢磨下,也就是一句话的事情

商店里安装的linux系统都是wsl1.wsl2需要用下面的指令手动转换(真没必要用wsl2)

wsl --set-version ubuntu 2

有的时候希望直接以root身份登录系统,直接用下面这个命令即可

ubuntu config --default-user root
kali config --default-user root
  • 这里的 ubuntu 就是你安装的wsl系统
Last modification:April 15, 2021
如果觉得我的文章对你有用,请随意赞赏