Windows10中安装Ubuntn18.04子系统和一些基础的配置
介绍
适用于 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窗口系统)。
准备工作
Windows设置——>更新和安全——>针对开发人员——>开发人员模式
控制面板——>程序——>程序和功能——>启用或关闭Windows功能——>适用于Linux的Windows子系统——>确定 (然后重启)
下载并安装Ubuntu
在应用商店中搜索Ubuntu,选择Ubuntu18.04,点击获取进行下载及安装,安装完毕点击启动会打开bash命令行提示我们设置用户名(常用的不具有root权限的用户)和密码。完成之后就可以随意折腾你的linux系统了。万一我们不小心把子系统折腾崩了,只需要像应用软件一样卸载掉再重新安装就可以了,有需要的话我们甚至还可以安装多个不同版本的子系统,真的很方便实用。
子系统存放在 C:\用户\【你的windows用户名】\  下的隐藏AppData文件夹 
C:\用户\【你的windows用户名】\AppData\Local\Packages\CanonicalGroupLimited.Ubuntu18.04onWindows_79rhkp1fndgsc\LocalState\rootfs
文件地址中[Ubuntu18.04]为对应的 WSL 使用的 Linux 发行版本
查看当前系统版本:lsb_release -a
软件源配置
源列表文件位于/etc/apt/sources.list,可以使用vim打开该文件,将官方的源注释掉,然后加入新的软件源。
1  | cp /etc/apt/sources.list /etc/apt/sources.list_backup  | 
- 中科大的源  
1
2
3
4
5
6
7
8
9
10deb http://mirrors.ustc.edu.cn/ubuntu/ xenial main restricted universe multiverse
deb http://mirrors.ustc.edu.cn/ubuntu/ xenial-security main restricted universe multiverse
deb http://mirrors.ustc.edu.cn/ubuntu/ xenial-updates main restricted universe multiverse
deb http://mirrors.ustc.edu.cn/ubuntu/ xenial-proposed main restricted universe multiverse
deb http://mirrors.ustc.edu.cn/ubuntu/ xenial-backports main restricted universe multiverse
deb-src http://mirrors.ustc.edu.cn/ubuntu/ xenial main restricted universe multiverse
deb-src http://mirrors.ustc.edu.cn/ubuntu/ xenial-security main restricted universe multiverse
deb-src http://mirrors.ustc.edu.cn/ubuntu/ xenial-updates main restricted universe multiverse
deb-src http://mirrors.ustc.edu.cn/ubuntu/ xenial-proposed main restricted universe multiverse
deb-src http://mirrors.ustc.edu.cn/ubuntu/ xenial-backports main restricted universe multiverse - 阿里云的源  更新配置
1
2
3
4
5
6
7
8
9
10deb http://mirrors.aliyun.com/ubuntu/ bionic main restricted universe multiverse
deb http://mirrors.aliyun.com/ubuntu/ bionic-security main restricted universe multiverse
deb http://mirrors.aliyun.com/ubuntu/ bionic-updates main restricted universe multiverse
deb http://mirrors.aliyun.com/ubuntu/ bionic-proposed main restricted universe multiverse
deb http://mirrors.aliyun.com/ubuntu/ bionic-backports main restricted universe multiverse
deb-src http://mirrors.aliyun.com/ubuntu/ bionic main restricted universe multiverse
deb-src http://mirrors.aliyun.com/ubuntu/ bionic-security main restricted universe multiverse
deb-src http://mirrors.aliyun.com/ubuntu/ bionic-updates main restricted universe multiverse
deb-src http://mirrors.aliyun.com/ubuntu/ bionic-proposed main restricted universe multiverse
deb-src http://mirrors.aliyun.com/ubuntu/ bionic-backports main restricted universe multiverse1
2sudo apt update
sudo apt upgrade 
1  | wget git.io/superupdate.sh  | 
检查是否安装 wget 和 ca-certificates
1  | apt-get install -y wget && apt-get install -y ca-certificates  | 
开启SSH服务
先通过 bash 进入子系统修改配置
1  | vi /etc/ssh/sshd_config  | 
如果文件不存在说明尚未安装,则执行安装
1  | apt-get install openssh-server  | 
vi 编辑配置
1  | Port = 22 # 默认是22端口,如果和windows端口冲突或你想换成其他的否则不用动  | 
启动 ssh 服务
1  | service ssh start  | 
如果提示 sshd error: could not load host key 则需要重新生成 key
1  | dpkg-reconfigure openssh-server  | 
查看服务状态
1  | service ssh status  | 
重置密码
1  | passwd root ***  | 
配置防火墙开启端口才能被其他PC访问
- Windows Defender 安全中心——>高级设置——>入站规则——>新建规则
 - 端口——>tcp——>特定端口——>填入刚刚设置的 Port 默认 22——>允许连接——>提交
 
WSL 服务开机自启动
进入WSL 中,创建并编辑文件
1  | vi /etc/init.wsl  | 
vi 编辑 init.wsl 文件内容为
1  | #! /bin/sh  | 
WSL 中有很多有用的服务,你可以按需删改 /etc/init.wsl ,但没必要塞很多东西进去影响你的启动速度,比如 mysql/supervisord/mongodb,可以需要的时候再启动
设置init.wsl 文件权限为可执行,所有者为 root
1  | sudo /etc/init.wsl [start|stop|restart]  | 
编辑sudoers,避免使用root权限时输入密码
1  | sudo visudo  | 
sudoers内容添加一行
1  | sudo ALL=NOPASSWD: /etc/init.wsl  | 
也可以在 /etc/sudoers.d 目录下面建立 nopasswd 文件,内容为:
%sudo ALL=NOPASSWD: /etc/init.wsl
创建一个startservice.vbs脚本
1  | Set ws = WScript.CreateObject("WScript.Shell")  | 
放到Windows10启动文件夹下 实现开机自启
- 开始——>运行——>输入
shell:startup打开启动文件夹——>startservice.vbs脚本放进去——>重启系统 
Windows10下按照你 WSL 使用的 Linux 发行版创建相应的startservice.vbs脚本
- Debian  
1
2Set ws = CreateObject("Wscript.Shell")
ws.run "debian run sudo /etc/init.wsl start", vbhide - ubuntu 16.04  
1
2Set ws = CreateObject("Wscript.Shell")
ws.run "bash -c 'sudo /etc/init.wsl start'", vbhide 
结语
子系统安装完成,安装软件就没啥说的了,现在该装啥就装啥,跟平时操作 Linux 服务器基本上一样的
子系统和 win10 是使用的相同网络,端口也都是共用的,避免端口占用冲突
参考:









