How to WSL

 

WSL的全称是Windows Subsystem Linux,可以在Windows下使用部分Linux的软件,介绍WSL的文章很多,这里就给出几篇个人觉得不错的,然后给出个人配置的思路以及积累的一些使用技巧

WSL的全称是Windows Subsystem Linux,可以在Windows下使用部分Linux的软件,介绍WSL的文章很多,这里就给出几篇个人觉得不错的,然后给出个人配置的思路以及积累的一些使用技巧

为什么要使用WSL

  • 有大量方便的命令行工具,同时因为平时在Windows下方便调用和熟悉
  • 学习Linux的过程中容易把系统玩坏,WSL在沙盒中运行方便备份,玩坏了不影响正常的工作
  • 相对于虚拟机要轻量很多,启动速度很快
  • 偶尔一些环境和依赖不想在Windows下面操作,丢到WSL里面就好了,同时也方便迁移到VPS上
  • 之前又大量的人对WSL进行了探索,微软也比较重视,WSL即将成为最好的Linux发行版….

配置方面可以参考的文章

距离写下这篇文章已经过一段时间了,深感这种类型文章的提供信息的及时性完全依赖于个人的使用情况,例如我一年半重装一次Win10才有机会去看最新的配置方法,例如: 最开始的WSL安装方式是命令行,之后是应用商店,下载的速度都很感人,现在使用scoop+aria2可以快速安装arch的wsl

scoop bucket add extras
scoop install archwsl
wsl -d arch

就发行版而言,个人Ubuntu用的多一点,工具相对更加熟悉,之前有使用过wsl的debian,就发现某些ubuntu下常用的工具是没有的,而且安装起来也不是apt install那么简单

Windows10内置Linux子系统初体验,这篇文章写的很详细,并且保持更新了一段时间,值得参考 解决Linux子系统中文字体渲染惨不忍睹的情况,早期的版本有,之后的不太清楚

个人的配置思路

首先就是权限问题,大概是为了省事,所以安装的时候直接选的root用户

GUI方面,有需要可以安装,但是Linux的精髓还是在命令行,另外就是部署开发环境在WSL上,这里特别推荐一个项目: Dev on Windows with WSL

顺带推荐下作者的博客,部分文章的主题和个人的博客差不多,但是写的更好

终端

尽管win10安装WSL之后会给一个单独的cmd终端,但是字体简直惨不忍睹,顺带就把终端的给换了,cmder或者ConEmu都是不错的,定制方面可以做些工作,比如说添加右键菜单,方便随时在当前目录调出终端,然后需要修复下方向键的问题

Linux Bash on Win10 (WSL)在cmder下使用vim时方向键失灵问题解决

另外一个推荐的终端软件就是微软推出的Windows Terminal,一般来说微软开发的软件兼容性和效率都要好些,可以参考配置Windows下的终端与Shell

使用技巧

关于挖坑和填坑,一般比较难找

WSL与Win的互通

在WSL和Windows的程序是可以互相调用的,各自的使用新式如下 WSL下使用 软件名.exe win下使用 WSL的命令

#wsl下使用win的文件管理器打开当前目录
explorer.exe .
#win下调用 wsl的字数统计
cat C:\Users\USER/.ssh/id_rsa | wsl wc

大小写敏感

偶尔可能会遇到WSL和Win文件系统的大小写问题: Win下不区分,WSL系统下区分,但是使用Win的目录时文件系统却是不区分的,例如WSL编译OpenWrt时会报错,需要做些修改

fsutil.exe file setCaseSensitiveInfo <path> enable

其他

据说是由于Windows防火墙的存在,WSL下的网络功能是残缺的,比如说ping和traceroute完全无法使用

WSL2

Announcing WSL 2,最大的变化在于在Win10内置了完整的Linux内核,在Win10 2004更新终于带来了这一重磅功能,但是这里要先说明的是,暂时WSL2还不支持GPU,但是在不久的将来就会更新并支持,这里必须给微软点个赞,下面是我所感知到的变化:

  • 不再有文件系统的大小写敏感的问题,文件系统向Linux靠近,已经可以直接编译OpenWrt了
  • 网络功能如traceroute,mtr正常
  • 上面提到的Win可以运行WSL的命令,但是WSL2不能再使用Win10的explorer.exe的图形化界面的文件管理器了
  • 使用WSL2依然需要安装WSL1,这部分可以通过教程查到