Commit 6130c25c authored by Andy Lee's avatar Andy Lee
Browse files

feat(intro/wsl): add content. fix format.

1. Add content.
A new way to enable optional feature: by using PowerShell cmdlet.
2. Update resources.
3. Fix format.
4. Fix content errors.
There's no need to enable developer mode according to Microsoft Docs.
parent d5b4737a
Loading
Loading
Loading
Loading
+53.7 KiB (121 KiB)
Loading image diff...
+254 KiB (310 KiB)
Loading image diff...
+71 −37
Original line number Diff line number Diff line
author: Anti-Li

![头图](./images/WSL1.png)

* * *
@@ -8,7 +10,6 @@
![NOI 竞赛的环境要求](./images/WSL2.png)

<div align='center'> NOI 竞赛的环境要求 </div>

或许大家对自己 Windows 环境下的 Dev-C++ 等都已熟识,但是当场景突然切换到 Linux 的时候,你会不会不知所措?

> 「想用<kbd>Ctrl</kbd>+<kbd>C</kbd>复制,结果退出了程序」  
@@ -17,50 +18,80 @@
![平台差异(转自百度文库”NOIP 标准评测系统及相关问题“)](./images/WSL3.png)

<div align='center'> 平台差异(转自百度文库“NOIP 标准评测系统及相关问题”) </div>
    
为了防止考场上出现此类尴尬情况,我们必须要提前熟悉下 Linux 系统的操作方法。

虽然在 NOI 的官网已经放出了 NOI Linux 的 ISO 镜像,但是如果跑虚拟机的话,配置也相当麻烦,包括激活 VMware,用 VMware 装系统开虚拟机等步骤,且 NOI Linux 默认自带图形界面,两个系统一起运行是低配党的噩梦。

Windows 10 作为微软的新一代操作系统,紧跟时代潮流,在一周年更新时推出了 Linux 子系统(WSL),可以供装不起 VMware 等虚拟机的同学食用。  
缺点是没有 NOI 评测用的 **Arbiter** ,但是在各大 OJ 背书的情况下谁在乎呢……
???+ note "补充资料:何为 Linux 子系统(WSL)?(via 百度百科)"
     Windows Subsystem for Linux(简称 WSL)是一个为在 Windows 10 上能够原生运行 Linux 二进制可执行文件(ELF 格式)的兼容层。它是由微软与 Canonical 公司合作开发,目标是使纯正的 Ubuntu, OpenSUSE, Kali Linux 和 Debian 映像能下载和解压到用户的本地计算机,并且映像内的工具和实用工具能在此子系统上原生运行。  
WSL 提供了一个微软开发的 Linux 兼容内核接口(不包含 Linux 代码),来自 Linux 的用户模式二进制文件在其上运行。  
此子系统起源于命运多舛的 Astoria 项目,其目的是允许 Android 应用运行在 Windows 10 Mobile 上。此功能组件从 Windows 10 Insider Preview build 14316 开始可用。
???+ note "补充资料:何为 Linux 子系统(WSL)?(via 维基百科)"
     适用于 Linux 的 Windows 子系统(英语:Windows Subsystem for Linux,简称WSL)是一个为在Windows 10和Windows Server 2019上能够原生运行Linux二进制可执行文件(ELF格式)的兼容层。

     WSL提供了一个由微软开发的Linux兼容的内核接口(不包含Linux内核代码),然后可以在其上运行GNU用户空间,例如Ubuntu,openSUSE,SUSE Linux Enterprise Server,Debian和Kali Linux。这样的用户空间可能包含Bash shell和命令语言,使用本机GNU/Linux命令行工具(sed,awk等),编程语言解释器(Ruby,Python等),甚至是图形应用程序(使用主机端的X窗口系统)。
     
     WSL仅在版本1607之后的64位版本的Windows 10中可用。它也可在Windows Server 2019中使用。

* * *
## 启用WSL

???+ warning
    本部分适用于Windows 10 Fall Creators Update(也即内部版本 16215)和更高版本。

在安装适用于 WSL 的任何 Linux 分发版之前,你必须在下述两种方法中选择一种,以确保启用“适用于 Linux 的 Windows 子系统”可选功能: 

### 使用Powershell
1. 以管理员身份打开 PowerShell 并运行: 
   ```powershell
   Enable-WindowsOptionalFeature -Online -FeatureName Microsoft-Windows-Subsystem-Linux
   ```
2. 出现提示时,重启计算机。

### 使用GUI
![](./images/WSL4.png)

## 准备
1. 打开“控制面板”

首先,你需要一个最新的 Windows 10 操作系统,这点不必多说。  
其次,你需要配置一下开发人员模式环境。
2. 访问“程序和功能”子菜单“打开或关闭Windows功能”

1.  设置 -> 更新与安全 -> 开发人员模式框选 -> 是![来,跟着箭头走](./images/WSL4.png)<br /><div align='center'>来,跟着箭头走</div>
2.  控制面板 -> 程序 -> 启用和关闭 Windows 功能 -> 框选“适用于 Linux 的 Windows 子系统”-> 确定 -> 重启![自行忽略乱码](./images/WSL5.png)给系统盘留下足够的空间,毕竟装好的 Linux 没法迁移。
    这次演示我们会安装 Ubuntu,因为 NOI Linux 正是 Ubuntu 的修改版。
    只要学会了方法,你也可照葫芦画瓢,安装 Windows 应用商店中的其他子系统。
3. 选择“适用于Linux的Windows子系统”

## 开搞
4. 点击确定

去 Windows 自带的应用商店,搜索 "Ubuntu",然后选第一个安装。  
5. 重启

## 使用Ubuntu

这次演示我们使用 Ubuntu,因为 NOI Linux 正是基于 Ubuntu 14.04 LTS 的 Linux 发行版。

只要学会了方法,你也可照葫芦画瓢,安装其他 Linux 发行版。

### 安装
![](./images/WSL5.png)
进入 Microsoft Store ,搜索 "Ubuntu",然后选第一个安装。  
亦可打开 <https://www.microsoft.com/zh-cn/p/ubuntu/9nblggh4msv6>   

???+ warning
    Windows 10 商店的第一个 Ubuntu 随着 Ubuntu 的更新而更新,因此内容可能会有所改变。
    可使用 `sudo lsb_release -a` 查看自己的 Ubuntu 版本。
    也可安装带有版本号的旧 Linux 版本(如本次演示使用了 **16.04** )。
安装完后,打开 Ubuntu,等待一段时间,让其自己配置,不久就会提示你设置用户名和密码。  
(这里看你喜好,推荐设置短点,毕竟 **本地环境不怕攻击**
    Microsoft Store 的 Ubuntu 随着 Ubuntu 的更新而更新,因此内容可能会有所改变。
    
 **Linux 区分大小写!** 
    如果你想获取稳定的 Ubuntu 长期支持版 ,可以在 Microsoft Store 安装 Ubuntu 的 LTS 版本。
    
![](./images/WSL6.png)这样之后,一个纯净的 Ubuntu 系统安装完成了!
    如本次演示中使用的是 **Ubuntu 16.04 LTS**

## 基础配置
### 运行Ubuntu
打开“开始”菜单找到 Ubuntu 并启动,或使用 wsl 命令从 Windows 命令行启动。

 **以下命令均可直接右键复制粘贴进窗口哦!** 
可以为 Ubuntu 创建应用程序磁贴或固定至任务栏,以在下次方便地打开。

![](./images/WSL7.png)正如图片所示,这个系统纯净到连个编译器都没有,所以这一节来看看基础的环境配置。
### 初始化
第一次运行 Ubuntu ,需要完成初始化。

等待一两分钟时间,系统会提示创建新的用户帐户及其密码,请确保选择一个容易记住的密码。
![](./images/WSL6.png)

## 基础配置

![](./images/WSL7.png)
正如图片所示,这个系统纯净到连个编译器都没有,所以这一节来看看基础的环境配置。

### 更换为国内软件源

@@ -69,7 +100,7 @@ Ubuntu 默认的软件源在国外,我们可以换为国内的加快速度,
可以访问 [TUNA 的页面](https://mirrors.tuna.tsinghua.edu.cn/help/ubuntu/) 来获得国内源的信息。

???+ warning  
     **请在页面中寻找与自己系统版本相配的源(可使用 `sudo lsb_release -a` 查看,具体详见 `0x03` )**  **除非你知道你在做什么,否则不要使用与自己的系统版本不匹配的源!** 
     **请在页面中寻找与自己系统版本相配的源(可使用 `sudo lsb_release -a` 查看 Ubuntu 版本 )**  **除非你知道你在做什么,否则不要使用与自己的系统版本不匹配的源!** 

使用的命令

@@ -204,7 +235,6 @@ xfce4-session
![](./images/WSL20.png)

<div align='center'> 达成成就:Windows+Linux 二合一 </div>

### 与 Windows 内原硬盘分区交互

硬盘分区作为文件夹在 `/mnt/` 里放着,因此可以直接交互,比如说直接编译个二进制文件,或者往 Ubuntu 里传文件什么的……  
@@ -231,16 +261,20 @@ xfce4-session

这里列举了文中提到的链接,以便查阅。

1.   [NOIP 标准评测系统及相关问题,smart0326, 2014-05-19, 百度文库](https://wenku.baidu.com/view/8246d96cdd36a32d72758143.html) 
2.   [WSL, 百度百科](https://baike.baidu.com/item/wsl/20359185) 
3.   [Run Bash on Ubuntu on Windows, Mike Harsh, 2016-05-30, Windows Blog](https://blogs.windows.com/buildingapps/2016/03/30/run-bash-on-ubuntu-on-windows/#cie8WdR3uSjgR5Ru.97) 
4.   [Windows Subsystem for Linux Documentation, MSDN](https://docs.microsoft.com/zh-cn/windows/wsl/about) 
5.   [NOI 系列活动标准竞赛环境,2016-11-08, NOI 官网](http://www.noi.cn/2016-11-08-03-42-01) 
6.   [购买 Ubuntu, Microsoft Store](https://www.microsoft.com/zh-cn/p/ubuntu/9nblggh4msv6) 
7.   [Ubuntu 镜像使用帮助,清华 TUNA](https://mirrors.tuna.tsinghua.edu.cn/help/ubuntu/) 
8.   [Ubuntu 的 man 命令帮助如何设置中文版,Frank 看庐山,2017-06-09](https://blog.csdn.net/qq_14989227/article/details/72954523) 
9.   [Xming X Server for Windows, SourceForge](https://sourceforge.net/projects/xming/) 
10.  [Sudo, Wikipedia](https://zh.wikipedia.org/wiki/Sudo) 
1.   [适用于 Linux 的 Windows 子系统安装指南 (Windows 10), Microsoft Docs](https://docs.microsoft.com/zh-cn/windows/wsl/install-win10)
2.   [适用于 Linux 的 Windows 子系统, Wikipedia](https://zh.wikipedia.org/zh-hans/%E9%80%82%E7%94%A8%E4%BA%8E_Linux_%E7%9A%84_Windows_%E5%AD%90%E7%B3%BB%E7%BB%9F)
3.   [WSL-Ubuntu维基, ubuntu wiki](https://wiki.ubuntu.com/WSL)
4.   [Windows 10版本1803中命令行的新增功能, Microsoft Devblogs](https://devblogs.microsoft.com/commandline/windows10v1803/)
5.   [NOIP 标准评测系统及相关问题,smart0326, 2014-05-19, 百度文库](https://wenku.baidu.com/view/8246d96cdd36a32d72758143.html) 
6.   [WSL, 百度百科](https://baike.baidu.com/item/wsl/20359185) 
7.   [Run Bash on Ubuntu on Windows, Mike Harsh, 2016-05-30, Windows Blog](https://blogs.windows.com/buildingapps/2016/03/30/run-bash-on-ubuntu-on-windows/#cie8WdR3uSjgR5Ru.97) 
8.   [Windows Subsystem for Linux Documentation, MSDN](https://docs.microsoft.com/zh-cn/windows/wsl/about) 
9.   [NOI 系列活动标准竞赛环境,2016-11-08, NOI 官网](http://www.noi.cn/2016-11-08-03-42-01) 
10.   [购买 Ubuntu, Microsoft Store](https://www.microsoft.com/zh-cn/p/ubuntu/9nblggh4msv6) 
11.   [Ubuntu 镜像使用帮助,清华 TUNA](https://mirrors.tuna.tsinghua.edu.cn/help/ubuntu/) 
12.   [Ubuntu 的 man 命令帮助如何设置中文版,Frank 看庐山,2017-06-09](https://blog.csdn.net/qq_14989227/article/details/72954523) 
13.   [Xming X Server for Windows, SourceForge](https://sourceforge.net/projects/xming/) 
14.  [Sudo, Wikipedia](https://zh.wikipedia.org/wiki/Sudo) 

## 延伸内容