在家里玩就用WSL

WSL全称Windows Subsystem for Linux。就是一个win10内建的linux子系统。 我觉得在家分析的时候(没得服务器的时候),用虚拟机难免性能比较低,而且用WSL,基本达到了秒开秒关。还是比较爽快的。

要开启WSL,首先要进到控制面板,选择程序,然后启用或关闭windows功能。找到适用于Linux的Windows子系统,勾上前面的勾,然后需要重启电脑。(话说巨硬这中文水平。。我怎么都觉得应该是适用于Windows的Linux子系统才对,好吧,再读两次我自己都懵了,语文不好语文不好)

wsl_1

然后进入应用商店,搜索linux,就可以搜到适用的linux发行版。我装了ubuntu1804,是的,wsl是以应用的形式装在电脑里的。按照微软应用墓碑式杀后台的情况,这个ubuntu子系统一般来讲不能在后台运行(意思是窗口不能关,不是要一直置顶)。其实需要在后台运行也可以,详细的方法请自行google。

wsl_2

使用的时候,系统原本的硬盘都挂载在/mnt目录下,只要cd过去就能看到。

我使用的时候一开始觉得的违和感,就是满眼的绿油油,因为wsl里默认Windows里的文件权限是777。 要怎么解决这个问题呢?

只要创建一个脚本(自动运行,方便,不用每次重启都开):

sudo vi /etc/wsl.conf

然后在里面输入:

[automount]
enabled = true
root = /mnt/
options = "metadata,umask=22,fmask=11"
mountFsTab = false

把权限默认成644,就不用满眼绿光了。

但是会发现另外一个bug,就是创建的文件夹还是777。 这个时候,就要修改所用shell的配置文件了。

例如,我用的是bash,就修改.bashrc。

cd ~
vi .bashrc

加入

# Fix mkdir command has wrong permissions
if grep -q Microsoft /proc/version; then
    if [ "$(umask)" == '0000' ]; then
        umask 0022
    fi
fi

又,bash的字体调整后,如果打开vi,就又会变回宋体。 解决方法: 在注册表项目:

HKEY_CURRENT_USER
	\Console
		\C:_Program Files_WindowsApps_CanonicalGroupLimited.Ubuntu18.04onWindows_1804.2018.817.0_x64__79rhkp1fndgsc_ubuntu1804.exe

中添加:CodePage(DWORD类型、值0x01b5),解决问题。

另外,使用MobaXterm等终端软件可以直接连接WSL,这样熟悉的操作手感又回来了,而且也可以同时开几个窗口了。