开启 Windows 10 的 Linux 子系统
2016年中旬微软发布了 Windows 环境下的基于 Ubuntu 的 Linux 子系统。虽然还有一些功能上的缺陷,但是对于 Web 开发人员来说还是值得一用的。下面就来做做看如何开启这个子系统。
首先,需要确认电脑上安装的 Windows 10 是合乎启动 Linux 子系统的版本。系统版本必须是 14393 以上,系统类型必须是 64 位操作系统。如果低于 14393 ,则需要更新到最新版本。
点击左下角开始 > 设置 > 系统 > 关于。 确认 版本 和 系统类型。
要安装并运行 Linux 子系统,需要以下两个步骤:
- 开启开发人员模式
- 开启适用于 Linux 的 Windows 子系统
开启开发人员模式
- 点击左下角开始 > 设置 > 更新和安全 > 针对开发人员
- 勾选开发人员模式,点击
开启适用于 Linux 的 Windows 子系统
- 点击左下角开始 > 搜索 “启用或关闭 Windows 功能”
- 勾选 适用于 Linux 的 Windows 子系统(beta) ,点击确定
开启开发人员模式和适用于 Linux 的 Windows 子系统后需要重启系统。
运行 Bash
- 打开 cmd
- 输入 bash 并运行
此时系统会开始安装 Ubuntu 的包,由于安装文件在 aka.ms 这个域名,所以访问速度会比较悲剧。如果没有稳定的代理,可能会需要多次下载安装。(特别坑的是命令行里没有断点续传,所以一旦连不上就要全部重新下载 …… 真的是大悲剧)。安装完毕后需要设置用户和密码。设置完毕后,就正式进入了和 Ubuntu 一样的 Linux 子系统了。为了提高安装速度,可以换源:
sudo sed -i 's/archive.ubuntu.com/mirrors.163.com/g' /etc/apt/sources.list
sudo sed -i 's/security.ubuntu.com/mirrors.163.com/g' /etc/apt/sources.list
基本调教
因为这个子系统毕竟不是正经(哈哈)的系统,所以有一些调整需要做。进入 shell 的时候如果输入了系统无法识别的内容就运行,会触发 Windows 系统提示音效,特别烦。可以用以下命令关闭:
sudo echo "set bell-style none" >> ~/.inputrc
但是这个操作还是不能取消 vim 等编辑器的提示音效,如果觉得受不了,可以直接关闭系统的报错音效:
打开控制面板 > 硬件和声音 > 更改系统声音 > 把 关键性停止 设为无
Windows 系统自带 cmd 是在丑和难用(关键是丑),这里推荐使用 cmder 来作为命令行工具。由于目前 cmder 和 bash 不是很兼容,直接输入 bash 进入子系统后无法使用方向键等功能键,这里需要通过命令进入子系统来解决。
%windir%\system32\bash.exe ~ -cur_console:p:n
如果不想每次都输入这个命令来进入子系统,可以把这个命令加入 cmder 的启动选项中:
打开 cmder 设置 > Startup > 勾选 Command line ,在输入框中加入以上命令
另外,个人比较习惯使用 zsh ,所以这里修改了启动命令:
%windir%\system32\bash.exe ~ -cur_console:p:n & zsh
由于这个子系统的文件系统是和 Widnows 相融合的,进入子系统后默认的路径是当前用户的文件夹,例如: /mnt/c/Users/xxx ,所以确保下载等操作的时候是切换到 home 目录(启动命令中已经设置)