WSL2的安装与使用-Windows与Linux双系统的新选择
Posted 得一寸
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了WSL2的安装与使用-Windows与Linux双系统的新选择相关的知识,希望对你有一定的参考价值。
文章目录
WSL2的安装与使用-Windows与Linux双系统的新选择
既要使用Windows系统满足日常生活,协作办公,又要使用Linux系统满足开发工作,双系统来回重启好麻烦,双主机成本高,远程服务器好多限制,WSL也许是更好的解决方案,可以摆脱以上困扰
1. WSL是什么
WSL全称Windows Subsystem for Linux,适用于Linux的Windows子系统
WSL就是Windows系统下的一个Linux子系统,可以像一个应用一样安装在Windows系统中,为在Windows系统下进行开发的人员提供基于Linux系统的开发环境,并且可以选择不同Linux发行版本,拥有与原生Linux系统相同的大部分功能
微软对WSL描述为:适用于 Linux 的 Windows 子系统可让开发人员按原样运行 GNU/Linux 环境 - 包括大多数命令行工具、实用工具和应用程序 - 且不会产生传统虚拟机或双启动设置开销
2. 为什么会有WSL
在通用计算机系统领域Windows拥有着无法撼动的地位,但是Linux具有免费、开源、高安全性、高可用性等特点,在服务器、嵌入式开发、软件开发等领域中,Linux仍是主流的选择。虽然Linux系统拥有诸多优点,但是大部分人日常生活的使用还是无法脱离Windows系统,所以有不少人更多是日常生活用Windows,开发工作用Linux
微软现任CEO纳德拉上任以来开始拥抱开源,微软一度成为开源项目最大贡献者,在收购GitHub之后,又推出了一系列开源产品,如VScode、TypeScript等
微软在2018年发布了WSL,在2019发布了WSL2,作为一个重要的升级,大大增加了文件系统的性能,增加了对全系统调用兼容性的支持,增加了对使用基于 GUI 的 Linux 应用程序的支持。目前,Windows Server 2022已支持WSL2 Linux发行版,也代表WSL2现在已经覆盖了Windows Desktop和Windows Server
当然,微软作为一个商业公司,此举还是为了吸引更多的用户使用Windows
3. 为要选择WSL2作为开发环境
3.1 WSL与WSL2有什么区别
从上面的比较表中可以看出,WSL2架构在几个方面优于WSL1,并且WSL2拥有完整的Linux内核。对于跨OS文件系统的性能,微软也给出了解决办法:可通过将项目文件存储在与处理项目时运行的工具相同的操作系统上进行处理
3.2 Windows与Linux系统的抉择
日常生活办公需要Windows,开发工作需要Linux,对于两者都有需求的人来讲,都不可避免的要来回切换不同的操作系统。虽然,部分人可以在一些Linux发行版上满足日常生活办公的需求,但是,不可否认Windows拥有更加强大的生态和便捷性,更重要的是大家都是合作办公,需要交互。针对双系统的需求,有几种不同的解决方案,各有利弊
解决方案 | 利 | 弊 |
---|---|---|
双主机分别安装Windows与Linux | 独立运行、物理隔离 | 成本高、不同系统数据传输不便 |
单主机双系统 | 真实操作系统 | 使用麻烦,需要重启切换 |
搭建远程服务器 | 真实操作系统 | 成本高、可能受到性能、带宽的限制 |
Linux系统虚拟机 | 使用与真实操作系统基本无差异 | 占用资源、运行效率低 |
WSL2 | 使用便捷、无缝切换、不会产生传统虚拟机或双启动设置开销 | 系统功能可能不完整、无法支持某些软件 |
对于Windows与Linux系统都有需求的人来说,WSL2是一个非常棒的解决方案,既能满足我们在日常生活办公中使用Windows,又能在开发工作中方便快捷的使用Linux
但是,WSL2毕竟是Windows下的Linux子系统,其运行稳定性的上限还是取决于其宿主Windows系统。若是追求高安全性与稳定性的专用服务器、工作站等,还是直接安装Linux系统
WSL2是一款优秀的产品,如果是只是进行日常开发工作,跑跑Demo,WSL2不失为一个好的解决方案。
4. WSL2的安装
4.1 安装条件
必须运行 Windows 10 版本 2004 及更高版本(内部版本 19041 及更高版本)或 Windows 11
Tips:若要检查 Windows 版本及内部版本号,选择 Windows 徽标键 + R,然后键入“winver”,选择“确定” 。
4.2 启用所需Windows功能
安装WSL2需要启用windows功能中的虚拟机平台和适用于Linux的Windows子系统
可以直接使用Windows+R快捷键,在打开的「运行」窗口中直接执行optionalfeatures
打开「Windows 功能」,或者在控制面板中打开「Windows 功能」启用需要的功能,然后重新启动
4.3 设置默认WSL版本
可以通过PowerShell或者cmd使用下面的命令设置默认版本
wsl --set-default-version <Version>
若要将默认版本设置为 WSL1 或 WSL2,请将<Version>替换为数字 1 或 2,表示对于安装新的 Linux 发行版,你希望默认使用哪个版本的 WSL,例如:
4.4 安装Linux发行版
可以在Microsoft Store里面,通过关键字搜素,查找相关应用,然后选择一个需要的Linux发行版安装
若Microsoft Store打开不顺畅,可以利用下面的方式安装Linux发行版
- 可以通过下面的命令查看可安装的Linux发行版
wsl --list --online
- 然后通过下面的命令安装指定的Linux发行版
wsl --install -d <Distribution Name>
安装指定的 Linux 发行版,请将 <Distribution Name> 替换为你首选的 Linux 发行版的名称(例如 Ubuntu-20.04)
4.5 打开Linux发行版
我们可以通过下面的命令查看已经安装的Linux发行版
wsl -l
- 可以在所有应用里面找到Ubuntu,然后打开,可以将其固定任务栏或开始屏幕以方便快捷启动
- 也可以在Windows的终端中,直接打开Ubuntu
初次打开Linux发行版时,需要设置用户名和密码,输入密码时,屏幕上不会显示任何内容,为盲目键入。
4.6 导出与导入Linux发行版
我们可以将已经安装好的Linux发行版导出,然后安装到其他盘内,以节省C盘空间,同时,在协同开发中也可将导出的Linux发行版共享给他人使用,以实现开发环境的统一
-
以安装好的Ubuntu为例,导出Ubuntu的tar文件到D盘中
wsl --export Ubuntu-20.04 D:\\Ubuntu-20.04.tar
-
注销当前已经安装的Linux发行版
wsl --unregister Ubuntu-20.04
-
将导出的Linux发行版重新导入并安装到D盘
wsl --import Ubuntu-20.04 D:\\Ubuntu-20.04 D:\\Ubuntu-20.04.tar --version 2
-
设置默认登录用户
ubuntu2004 config --default-user <UserName>
<UserName>替换为初次打开Linux发行版时设置的用户名
5. WSL2的使用
5.1 文件操作
Windows系统下,在我的电脑中可以找到Linux子系统的文件夹,可以直接进行访问,并与Windows系统下的文件进行相互操作
5.2 Linux子系统的配置
WSL2安装完成之后,相关的系统配置就与真实的操作系统相似了
以Ubuntu为例,作为国内用户,为了方便我们使用可以更新国内的镜像源
对于使用Python编程的用户,可以安装Anaconda配置相关环境
具体操作就不在此赘述了
5.3 使用VScode连接到WSL2
- VS Code 利用 Remote-WSL 扩展使你能够直接从 VS Code 使用 WSL2 作为实时开发环境
- 通过使用 VS Code 中的快捷方式
CTRL+SHIFT+P
调出命令面板,以访问更多 VS Code 远程选项。 如果随后键入Remote-WSL
,将看到可用的 VS Code 远程选项列表,使你可以在远程会话中重新打开文件夹,指定要在哪个发行版中打开
- 可以选择
Remote-WSL:Open Folder in WSL
打开WSL中的文件夹
- 那么,利用WSL2中Python环境就可以正常编译运行代码,并且在VS Code中可以操作WSL的终端
- 若要从Linux发行版打开项目,可以打开发行版的命令行并输入:
code .
5.4 使用Pycharm连接到WSL2
在Pycharm项目中,可以在设置中将Python Interpreter修改为WSL2中构建的python环境,利用WSL2中Python环境就可以正常编译运行代码,并且可以操作WSL的终端
6. 总结
WSL作为一个开发人员的新选择,满足了Windows与Linux系统的高效使用,相比双系统、虚拟机等方案,WSL更加便捷、高效。随着微软的不断更新和支持,就Ubuntu而言,WSL的体验已经非常接近真实的Ubuntu系统。更多有关WSL的信息可以参考微软官方文档
WSL(Windows Subsystem for Linux)的安装与使用
有关WSL的介绍这里就不做解释了。另外,本文仅适用于win10 build 16215以及之后的版本,之前的版本可参考官方链接。
(可使用“winver”命令查看windows版本号)
安装:
1. 管理员权限运行powershell并运行下面的命令:
Enable-WindowsOptionalFeature -Online -FeatureName Microsoft-Windows-Subsystem-Linux
或者:控制面板->程序和功能->启用或关闭Windows功能->勾选 适用于Linux的Windows子系统
2. 重启电脑
3. 打开应用商城搜索“WSL”,可根据自己需求选择安装一个或多个Linux系统:
4. 安装完成后可在开始菜单里找到快捷方式并启动,第一次运行需要等待安装并设置用户名、密码。
除此以外,在cmd中使用以下几个命令都可以运行WSL:
- wsl 或者 bash
- wsl [command]或者bash -c [command]
- Linux系统名称(如:ubuntu),这跟上面在开始菜单里启动是一样的
其中,前两种方式会运行默认的linux系统,当你安装多个linux系统之后可以使用wslconfig来指定
使用wslconfig命令进行管理
1. 设置默认运行的linux系统
wslconfig /setdefault <DistributionName>
正如上面所说,如果执行wslconfig /setdefault ubuntu,那么执行bash命令则会运行ubuntu
2. 卸载linux系统
wslconfig /unregister <DistributionName>
当系统出现问题,我们可以卸载后重新安装。如:wslconfig /unregeister ubuntu
3. 查看已安装的linux系统
wslconfig /list
设置默认登陆用户
当我们运行WSL时,它会用第一次运行时输入的用户名登陆,如果想改为其他用户,可以(以ubuntu为例):
ubuntu config --default-user root
这样,以后再运行ubuntu它就会默认以root登陆。此外还可以“ubuntu /?”查看其更多使用方法。
WSL文件系统与本地文件系统互相访问
1. WSL中访问本地文件
在“/mnt”目录下有“c”、“d”、“e”等文件夹,分别表示本地的C盘、D盘、E盘,直接cd到相应路径下即可。
2. 本地访问WSL的根目录
微软强烈不建议在外部对WSL文件系统进行更改,所以未公开WSL所在的根目录(不过博主通过某种途
径还是找到了→_→)。毕竟有时候我们需要直接读取里面的很多文件(比如说在某个IDE里面设置include path
为WSL的/usr/include),如果每次都在WSL里cp命令将其拷贝到本地又太麻烦。
下面是其根目录(以ubuntu为例,版本不同可能会有略微差别):
(C:\\Users\\XXXX\\AppData\\Local\\Packages\\CanonicalGroupLimited.UbuntuonWindows_79rhkp1fndgsc\\LocalState\\rootfs)
不过我不建议在外部直接对其文件进行编辑、新建等操作,因为会出现一些问题。
设置控制台默认字体
WSL字符界面界面默认字体太难看怎么办?注册表大法(以ubuntu为例):
首先打开ubuntu,鼠标右键窗口->属性:
随便更改一个字体后点确定,此时注册表HKEY_CURRENT_USER/Console下就会出现xxxx_ubuntu.exe一项,
我们需要更改(或新建)CodePage和FaceName两个键值,下图设置的Consolas字体:
更改完之后,重新打开ubuntu就可以看到效果啦:
(注:其实在这里同样可以设置cmd和powershell的默认字体)
原创文章,转载请注明
https://www.cnblogs.com/JettTang/p/8186315.html
现在支持在windows store下载安装了,在商店搜linux会有搜索建议在windows上运行linux,现在有ubuntu,Debian,suse,kali这些。选择ubuntu下载安装就行。
装完后菜单里会有一个ubuntu,点击就能运行,第一次运行会提示需要安装一些东西,然后要求设置用户和密码。在自己机器上刷刷就不考虑安全性了,用户名当然用root,省得以后打命令还需要加sudo。
设置完用户名和密码后,第一步当然是改成国内源了,
-
cd /etc/apt
-
cp sources.list sources.list_back
-
vim sources.list
我选择换成阿里云的源,把http://archive.ubuntu.com替换成https://mirrors.aliyun.com就可以了。替换嫌麻烦的话可以全删然后添加
-
deb https://mirrors.aliyun.com/ubuntu/ xenial main restricted universe multiverse
-
deb https://mirrors.aliyun.com/ubuntu/ xenial-security main restricted universe multiversedeb
-
deb https://mirrors.aliyun.com/ubuntu/ xenial-updates main restricted universe multiversedeb
-
deb https://mirrors.aliyun.com/ubuntu/ xenial-backports main restricted universe multiverse
不建议添加下面的,我添加后会在apt upgrade的时候卡在正在准备包,需要重启win10。
-
deb-src https://mirrors.aliyun.com/ubuntu/ xenial main restricted universe multiverse
-
deb-src https://mirrors.aliyun.com/ubuntu/ xenial-security main restricted universe multiverse
-
deb-src https://mirrors.aliyun.com/ubuntu/ xenial-updates main restricted universe multiverse
-
deb-src https://mirrors.aliyun.com/ubuntu/ xenial-backports main restricted universe multiverse
换好源后当然是更新了
-
apt update
-
apt upgrade
-
apt dist-upgrade
更新后
apt autoremove
apt autoclean
更新完成后当然是安装中文语言了
apt install language-pack-zh-hans
设置系统语言为中文,选择zh_CN.UTF-8
dpkg-reconfigure locales
到这里基本系统基础设置完成了。
以上是关于WSL2的安装与使用-Windows与Linux双系统的新选择的主要内容,如果未能解决你的问题,请参考以下文章
VMware Workstation 与 Windows Subsystem for Linux 2(WSL2)不兼容问题的一种解决办法