日常开发中总会遇到一些只能在linux下运行的软件或者框架,让像我这样的windows重度使用者甚是烦恼,估计是微软良心发现了,终于出手在windows下也可以跑linux了,从此什么虚拟机、cygwin都见鬼去吧!本文将介绍如何在windows下安装linux并使用。
什么是WSL?
WSL是Windows Subsystem for Linux的简称,就是Windows系统上的一个Linux子系统,安装后,不用再安装臃肿的Vmware和VirtualBox等虚机机系统,就可以直接在Windows上体验原生的Linux应用了,目前微软主要是和Canocical进行合作,推出的是Ubuntu系统,未来将会有更多的发行版供选择。
能做什么?
Windows子系统Linux允许开发人员直接在Windows上运行GNU / Linux环境 - 包括大多数命令行工具,实用程序和应用程序 - 未经修改,无需虚拟机的开销。
开始安装Linux
准备
Tip
- 本文适用于Windows build 16215或更高版本,建议升级windows 10到最新版本。
- 在为WSL安装任何Linux发行版之前,必须确保启用“Windows Subsystem for Linux”可选功能,设置后需要重启电脑,注意重启前该保存的保存。
开启“Windows Subsystem for Linux”的两种方式:
- 以管理员身份打开PowerShell并运行:
Enable-WindowsOptionalFeature -Online -FeatureName Microsoft-Windows-Subsystem-Linux
- 打开“启用或关闭windows功能”(从微软小娜或者控制面板中搜索打开):
[图片上传失败...(image-1e0cba-1547642734845)]
选择Linux安装
- 打开Microsoft Store搜索Linux,会出现Linux的专题,点击“获取这些应用”按钮。
[图片上传失败...(image-a82b34-1547642734845)]
- 目前支持的Linux系统有 Ubuntu、SUSE、Debian、Kali,估计以后会支持更多的Linux发行版本,选择一个喜欢的Linux安装,此处我选择的是 Ubuntu 系统。
[图片上传失败...(image-9871fe-1547642734845)]
- 安装后需要进行初始化,启动一个新的实例,可以通过单击Windows应用商店应用中的“启动”按钮,或从“开始”菜单启动已安装的 Ubuntu 来执行此操作。
[图片上传失败...(image-3d59ef-1547642734845)]
- 第一次启动运行时,将打开一个控制台窗口,需要等待一两分钟才能完成安装。
初始化过程中,Linux系统文件被解压缩并存储在电脑上,以后可以随时使用。这可能需要大概一分钟左右,以后再次运行基本都是很快的。
- 安装完成后,系统将提示您创建新的用户帐户及密码,此账户和密码与windows系统没有任何关系。
[图片上传失败...(image-86bff5-1547642734845)]
当打开一个新的Linux命令行窗口后,是不需要输入用户名、密码的,但是如果使用sudo
命令则将被要求输入密码,建议密码尽量设置的简单一些。
- 更新软件包,执行以下命令:
sudo apt update && sudo apt upgrade
用户账户和权限
- 创建的Linux账户将是Linux系统的默认账户,会在Linux系统启动后自动登录,此帐号默认隶属于Linux管理员。
- 不同的Linux子系统的账户是相互独立的,每次安装新的Linux子系统时都需要创建新的账户。
- Windows和Linux的权限是相互独立互不影响的。Windows权限模型管理进程对Windows资源的权限;Linux权限模型控制进程对Linux资源的权限。
WSL管理和配置
- Unbutu 系统安装的 windows 目录
C:/Users/XXX/AppData/Local/Packages/CanonicalGroupLimited.UbuntuonWindows_79rhkp1fndgsc/LocalState/rootfs/
[图片上传失败...(image-8daa75-1547642734845)]
- 在Windows下运行Linux子系统的方法有:
- 在开始菜单中搜已安装的Linux子系统点击直接启动运行
- wsl.exe 或者 bash.exe
- wsl [command] 或者 bash -c [command]
在命令行中运行
wsl
会直接进入默认的Linux子系统,并保留当前的工作目录,而在命令行中运行Linux子系统(例如:ubuntu)则会进入主目录。常用命令
- Linux子系统启动后会自动将各个盘符下的目录挂载到
/mnt/
目录下
访问C盘:/mnt/c/
访问D盘:/mnt/d/
...
- 列出所有可用的Linux子系统
wslconfig /list
- 列出所有的Linux子系统,包括不可用的
wslconfig /list /all
- 设置默认的Linux子系统,设置后执行 wsl [command] 将会在此默认的Linux子系统中运行
wslconfig /setdefault <DistributionName>
- 卸载Linux子系统
wslconfig /unregister <DistributionName>
警告
卸载后,与该Linux子系统相关的所有数据、设置和软件将永久丢失。从商店重新安装将安装新的Linux子系统。
构建自定义的Linux子系统
WSL不仅仅支持 Windows Store 里的那几个 Linux 系统,其实还支持 RedHat、CentOS 等 Linux 系统,只不过微软官方没有去搞,而是留给了开发者自己去自定义创建和维护,具体创建可以参考其Github Distro Launcher GitHub存储库 上的说明创建自定义Linux发行版程序包。
但我觉得大部分有需求的基本都是想要个现成的系统来安装,Github https://github.com/yuk7/wsldl 这个项目就维护了不少 Linux 系统,包括:Alpine Linux、Arch Linux、Artix Linux、CentOS,参考说明即可很方便的安装。
[图片上传失败...(image-1f3481-1547642734845)]
由于服务器端一般都选择 CentOS 系统,所以为了保持开发和生产环境一直,我本机安装的是 CentOS,安装非常方便,下载下来安装包后,解压到安装目录下,以管理员身份运行
CentOS.exe即可,安装完成后通过执行命令 wslconfig /list
就会发现wsl下多了个 CentOS 系统。
[图片上传失败...(image-29b82f-1547642734845)]
这个 CentOS 其实是从 docker 里镜像过来的,是个精简版的操作系统,很多命令都是缺失的,如果想用需要自己去 yum
安装。
Tip
安装一定要以管理员身份去运行,否则可能会安装失败。
原创文章转载请注明:转载自:windows下安装linux子系统