玩转 WSL 在 Win10 上打造 Linux 开发环境
WSL 是 Windows Subsystem for Linux 的简称, 可让开发人员按原样运行 GNU/Linux 环境 - 包括大多数命令行工具、实用工具和应用程序 - 且不会产生虚拟机开销。
安装 WSL
1.开启 WSL
首先需要使用管理员权限打开 PowerShell 执行如下命令
Enable-WindowsOptionalFeature -Online -FeatureName Microsoft-Windows-Subsystem-Linux
或者在程序和功能选打开 适用于 Linux 的 Windows 子系统
出现提示时,重启计算机。
2.下载 Linux 发行版
直接参考 WSL安装指南 使用 Microsoft Store 安装的方法无法将 Linux 安装到系统盘之外的分区,这里使用的是 手动下载 的方法。
单击以下链接下载您喜欢的 Linux 的发行版,这里选的是 Ubuntu 16.04
3.安装 Linux 发行版
使用 7-ZIP 或者其他工具解压下载的 appx 文件 ( 比如解压到 D:\WSL\Ubuntu
) 然后运行其中的 ubuntu1604.exe
需要等待一两分钟时间来完成安装,安装完成后,系统会提示创建新的用户帐户(及其密码)。
此用户帐户用于启动分发版时默认登录的非管理员用户。
可根据需要选择任何用户名和密码 - 它们与 Windows 用户名无关。
安装完成后即可通过 开始 -> 运行 中输入 wsl 打开终端
4.配置 apt 为 163 源
- 运行
sudo vim /etc/apt/sources.list
,替换为以下内容
deb http://mirrors.163.com/ubuntu/ xenial main restricted universe multiverse
deb http://mirrors.163.com/ubuntu/ xenial-security main restricted universe multiverse
deb http://mirrors.163.com/ubuntu/ xenial-updates main restricted universe multiverse
deb http://mirrors.163.com/ubuntu/ xenial-proposed main restricted universe multiverse
deb http://mirrors.163.com/ubuntu/ xenial-backports main restricted universe multiverse
- 运行
sudo apt update
更新源
5.配置 sudo 免密码
- 添加sudo文件的写权限
sudo chmod u+w /etc/sudoers
- 编辑sudoers文件
sudo vim /etc/sudoers
, 修改%sudo ALL=(ALL:ALL) ALL
为%sudo ALL=(ALL:ALL) NOPASSWD:ALL
6.设置系统语言为中文
# 安装中文支持
sudo apt install language-pack-zh-hans
# 设置默认语言
sudo update-locale LANG=zh_CN.UTF-8
配置开发环境
1.配置服务自启动
- 编辑
sudo vim /etc/init.wsl
文件添加如下内容
#! /bin/sh
# Filename: /etc/init.wsl
# Usage: sudo /etc/init.wsl [start|stop|restart]
service dbus start
- 开始 -> 运行 中输入 regedit 回车打开注册表编辑器
定位到 计算机\HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Run
后新建一个 REG_SZ 类型的值,名称随意,数值数据填写以下内容
mshta vbscript:CreateObject("WScript.Shell").Run("wsl -d Ubuntu-16.04 -u root bash /etc/init.wsl",0,TRUE)(window.close)
以后就可以向 /etc/init.wsl 追加服务,实现开启自启动了
2.安装 golang 环境
# 安装必要依赖
sudo apt install git g++ make
# 下载并解压
cd /usr/local
sudo wget https://dl.google.com/go/go1.13.4.linux-amd64.tar.gz
sudo tar zxf go*.tar.gz && rm -f go*.tar.gz
# 配置环境变量
sudo vim /etc/profile.d/golang.sh
# 修改 git 默认编辑器为 vim
git config --global core.editor vim
配置环境变量如下
export GO111MODULE=off
export GOPROXY=https://goproxy.cn,direct
export PATH=$PATH:/usr/local/go/bin
3.安装 nodejs 环境
# 安装 Node Version Manager
curl -o- https://raw.githubusercontent.com/nvm-sh/nvm/v0.35.1/install.sh | bash
# 安装 v10 的 Node
source ~/.bashrc
nvm install 10
4.安装 nginx + php 环境
# 添加 PHP 源
sudo apt-add-repository ppa:ondrej/php && sudo apt update
# 安装
sudo apt install nginx php-fpm
# 启动 fpm
sudo service php7.3-fpm start
# 启动 nginx
sudo service nginx start
# 编辑 nginx 配置
sudo vim /etc/nginx/sites-available/default
配置添加如下内容
location ~ .*\.php(\/.*)*$ {
include snippets/fastcgi-php.conf;
# 设置监听端口
fastcgi_pass unix:/run/php/php7.3-fpm.sock;
}
# 用于伪静态
if (-f $request_filename/index.html) {
rewrite (.*) $1/index.html break;
}
if (-f $request_filename/index.php) {
rewrite (.*) $1/index.php;
}
if (!-f $request_filename) {
rewrite (.*) /index.php;
}
卸载 WSL
cmd 下输入 wslconfig /l,可以看到所有已安装的发行版
rem 卸载删除wsl
wslconfig /u <DistributionName>