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 是使用的相同网络,端口也都是共用的,避免端口占用冲突
参考: