玩转 WSL

1,775 阅读5分钟

玩转 WSL

很早就听说WSL了,作为一名前端一般来说是不需要跟linux打交道的毕竟各种ci都已经可以自动化运行了,但是作为一名程序员我觉得还是有需要了解下我们的代码的运行环境而WSL作为初次接触linux的介质再好不过了。

一:什么是WSL?

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

您可以:

  • 在 Microsoft Store 中选择你偏好的 GNU/Linux 分发版。
  • 运行常用的命令行软件工具(例如 grepsedawk)或其他 ELF-64 二进制文件。
  • 运行 Bash shell 脚本和 GNU/Linux 命令行应用程序,包括:
    • 工具:vim、emacs、tmux
    • 语言:NodeJS、Javascript、Python、Ruby、C/ C++、C# 与 F#、Rust、Go 等。
    • 服务:SSHD、MySQL、Apache、lighttpd、MongoDBPostgreSQL
  • 使用自己的 GNU/Linux 分发包管理器安装其他软件。
  • 使用类似于 Unix 的命令行 shell 调用 Windows 应用程序。
  • 在 Windows 上调用 GNU/Linux 应用程序。

官方文档:docs.microsoft.com/zh-cn/windo…

二:安装

1. 启用WSL

以管理员权限打开powershell运行以下命令:

dism.exe /online /enable-feature /featurename:Microsoft-Windows-Subsystem-Linux /all /norestart

这里我们用的是命令开启也可以在应用中开启适用于 Linux 的 Windows 子系统

如果你希望使用WSL1这样就可以了,这里我们需要更新WSL2

2. 更新WSL2

以管理员身份打开 PowerShell 并运行:

dism.exe /online /enable-feature /featurename:VirtualMachinePlatform /all /norestart

以上是开启虚拟机功能的命令

重新启动计算机,以完成 WSL 安装并更新到 WSL 2

**注:**如果你的cpu没有开启虚拟机功能,那么你需要去bios开启

3. 下载 Linux 内核更新包

下载Linux更新包并安装

x64构架:

wslstorestorage.blob.core.windows.net/wslblob/wsl…

ARM64构架:

wslstorestorage.blob.core.windows.net/wslblob/wsl…

4. 设置WSL2为默认版本

wsl --set-default-version 2

5. 安装Linux发行版

前往Microsoft Store下载

安装后打开首次需要设置root账户名和密码

三:设置图形桌面

安装WSL之后,我们所能看到的Linux 实际上只是个黑框框, 微软并没有为其配置图形界面。

习惯了Window系统的我们可能不太适应。有没办法实现图形桌面环境呢?

当然,主要途径有如下两种:

1.通过 在win10中安装X server, 及在WSL中安装ubuntu的图形桌面组件直接在win10桌面上显示ubuntu的图形桌面。 2.在WSL中安装并启动xrdpXubuntu-desktop等,通过SSH如远程连接服务器一般连接到WSL。

这里采用第二种方式。

1. 修改apt源

自带的软件源在国内连接网速会比较吃力,所以换成国内源,类似镜像站点。

sudo vi /etc/apt/sources.list

在最上方加入:

deb https://mirrors.tuna.tsinghua.edu.cn/ubuntu/ bionic main restricted universe multiverse
deb-src https://mirrors.tuna.tsinghua.edu.cn/ubuntu/ bionic main restricted universe multiverse
deb https://mirrors.tuna.tsinghua.edu.cn/ubuntu/ bionic-updates main restricted universe multiverse
deb-src https://mirrors.tuna.tsinghua.edu.cn/ubuntu/ bionic-updates main restricted universe multiverse
deb https://mirrors.tuna.tsinghua.edu.cn/ubuntu/ bionic-backports main restricted universe multiverse
deb-src https://mirrors.tuna.tsinghua.edu.cn/ubuntu/ bionic-backports main restricted universe multiverse
deb https://mirrors.tuna.tsinghua.edu.cn/ubuntu/ bionic-security main restricted universe multiverse
deb-src https://mirrors.tuna.tsinghua.edu.cn/ubuntu/ bionic-security main restricted universe multiverse
deb https://mirrors.tuna.tsinghua.edu.cn/ubuntu/ bionic-proposed main restricted universe multiverse
deb-src https://mirrors.tuna.tsinghua.edu.cn/ubuntu/ bionic-proposed main restricted universe multiverse

2. 更新apt

sudo apt update
sudo apt upgrade

3. 安装xrdp

sudo apt install -y xfce4 xrdp

xrdp是一个轻量级ubuntu桌面,里面的应用只能满足基本需求。就好像 ie 于windows一样

安装xfce4过程中会出现选择显示管理DM选择的提示,建议用lightdm

如果错过了安装过程中出现的这个向导,那么可以在安装完成后执行下面的命令重新设置DM

sudo dpkg-reconfigure lightdm

4. 修改xrdp默认端口

sudo vim /etc/xrdp/xrdp.ini
# 修改下面这一行,将默认的3389改成其他端口即可
port=3390

5. 为当前用户指定登录session类型

$ vim ~/.xsession

# 写入下面内容(就一行)
xfce4-session

6. 启动xrdp

sudo /etc/init.d/xrdp start # stop restart

7. 远程访问

在Windows系统中运行mstsc命令打开远程桌面连接,地址输入localhost:3390

image-20210401104550965.png

ok~

大功告成~

四:Windows Terminal

Microsoft Store下载后里面自动配置有WSL

image-20210401104719799.png

新命令行和WSL更配哦~

五:vscode连接WSL

微软全家桶怎么能少得了vscode呢?

其实主要是最近更新的vscode上出现了WSL的标志,才使我对此兴趣大增的。

image-20210401105340523.png

连接也很简单,点击红框中的位置

image-20210401105437878.png

选择一项,即可进入了WSL的文件

image-20210401105613058.png

六:安装最新版Node

作为前端我们第一时间肯定是安装Node了,可是apt里的版本都是比较低的,我们可以用以下方式来安装最新版Node

1. 安装npm

sudo apt install npm

2. 安装n模块

注:n 模块是用来安装各种版本的 node 的一个工具。参数 -g 表示全局安装

sudo npm install n -g

3. 安装长期支持版Node

sudo n lts
# 检查版本
node -v

4. n模块简介

n 模块可以安装各种版本的 node,非常方便。

  • latest – 最新版,但不一定稳定
  • stable – 最新的稳定版,比 latest 老一点,优点是稳定,但不是长期支持版(api 可能会变动)
  • lts – 最新的长期支持版,这是最推荐使用的版本。虽然比 stable 老,但是是长期支持的版本(当然也是稳定版本)。是 long term support 的缩写。

可以直接通过版本号,安装制定版本的 node

sudo n [版本号]

可以通过 n 模块的 use 命令,切换版本

sudo n use [版本] # 比如 sudo n use lts

于是就可以使用 lts 版本了。

七:来写代码吧~

cd ~ && mkdir web && cd web && mkdir test && cd test && touch index.js

创建完index.js后,初始化npm

npm init -y

初始化git

git init
touch .gitignore

node_modules加入.gitignore

编写代码

vscode打开当前wsl目录

image-20210401110353529.png

先来写一份简单的问答吧~

npm run serve

image-20210401110523053.png

nice~

运行成功~

结束语

就笔者而言体验很流畅,不需要使用第三方工具就能在windows上体验linux这是很不错的,在里面乱搞搞坏了也没事直接傻瓜式的卸载重装即可。