WSL安装与使用教程

latest update:2024/9/11 by

本文介绍了在主流的 Windows 系统下使用 Windows Subsystem for Linux 运行 Linux 环境的方法。

更新内容:

1.更加精简,删除了不重要的部分

2.更正补充了xrdp连接部分


启用 WSL

GUI安装法

  1. 点左下角图标,进入 Microsoft Store

  2. 搜索WSL,前两个选一个安装

接下来,请转到下面「配置分发版」一节完成其他设置。

自动安装

本部分适用于 Windows 10 版本 2004 及更高版本(内部版本 19041 及更高版本)或 Windows 11。
如果你正在使用 2004 以下版本或你的电脑不支持虚拟化,请阅读下面的手动安装一节。
如果你正在使用 1607 以下版本的 Windows 10,你的系统不支持 WSL。
  1. 以管理员身份打开 Windows PowerShell(右击「开始」按钮,选择 Windows PowerShell(管理员)或 Windows 终端(管理员))

  2. 输入 wsl --install,并等待所有组件自动安装完成。期间你可能需要重启你的计算机来启用必要的 Windows 功能。

  3. 安装完成后,你可以在「开始」菜单或 Windows 终端的标签页中找到你安装的发行版。

  4. 接下来,请转到下面「配置分发版」一节完成其他设置。

配置分发版

本章以 Windows 自动安装的 Ubuntu 为例。

运行 Ubuntu

打开「开始」菜单找到 Ubuntu 并启动,或使用 wsl 命令从 Windows 命令行启动。

可以为 Ubuntu 创建应用程序磁贴或固定至任务栏,以在下次方便地打开。

初始化

第一次运行 Ubuntu,需要完成初始化。

Installing, this may take a few minutes...

等待一两分钟时间,系统会提示创建新的用户帐户。

Please create a default UNIX user account. The username does not need to match your Windows username.

For more information visit: https://aka.ms/wslusers

Enter new UNIX username:

输入完用户名以后会提示输入密码。在 Linux 中,输入密码时屏幕上不显示文字属于正常现象。

Enter new UNIX password:

设置好帐户名和密码后,WSL 就安装完成了。

Installation successful!

To run a command as administrator (user "root"), use "sudo ".

See "man sudo_root" for details.

chtholly@SENIORIOUS:~$

更换为国内软件源

Ubuntu 默认的软件源在国外。可以换成国内的软件源以加快速度,如 清华 TUNA 的软件源

请在页面中寻找与自己系统版本相配的源(可使用 sudo lsb_release -a 查看 Ubuntu 版本)。

除非你知道你在做什么,否则不要使用与自己的系统版本不匹配的源!

使用以下命令更新软件和软件源:

$ sudo su # 执行这行指令后,终端提示符会从 $ 变成 #,执行下文的命令前注意关注提示符
[sudo] xxx 的密码:
# cp /etc/apt/sources.list /etc/apt/sources.list.bak
# vim /etc/apt/sources.list
...(按 i 之后将上文的源粘贴进去,编辑完后按 Esc,再输入 :wq 和回车)
# apt update
# apt upgrade -y

安装中文环境(可选)

# apt install language-pack-zh-hans -y
# apt install fontconfig -y
# apt install fonts-noto-cjk fonts-wqy-microhei fonts-wqy-zenhei -y # 中文字体
# dpkg-reconfigure locales

此时会进入一个设置菜单,不用管,直接回车。

下一个菜单中选择 zh_CN.UTF-8 回车。

Default locale for the system environment:

None

C.UTF-8

en_US.UTF-8

[zh_CN.UTF-8]

之后关闭 WSL 并重启,系统就会变成中文。

再依次输入下列命令,把 man 帮助页替换为中文。

# apt install manpages-zh
# sed -i 's|/usr/share/man|/usr/share/man/zh_CN|g' /etc/manpath.config

可以用 man help 测试。

进阶操作(可选)

使用 WSLg 运行 GUI 程序

如果你使用 Windows 10 19044 及以上版本或 Windows 11,则可以使用 WSL 2 提供的集成的桌面体验。该功能允许你直接安装并启动 Linux 桌面程序而无须其他配置。

参见 在适用于 Linux 的 Windows 子系统上运行 Linux GUI 应用

安装图形环境,并使用远程桌面连接

如果你使用的版本尚不支持 WSLg, 可以尝试使用以下指南开启图形界面功能。

以下以 Xfce 为例。

如果只想安装 Xfce,可以执行以下命令:

$ sudo apt install xfce4 tightvncserver -y

如果除 Xfce 外想要更多的软件,可以执行以下命令:

$ sudo apt install xubuntu-desktop -y

图形环境文件较大,下载解包需要一定时间。

如果使用了 xfce4,可以在弹出的窗口中使用如下命令激活 xfce4:

 $ xfce4-session

配置 xrdp:

$ sudo apt install xrdp -y
$ echo "xfce4-session" >~/.xsession
$ sudo service xrdp restart

为了防止和计算机原有的远程桌面冲突,需要更换默认端口。

运行命令 vim /etc/xrdp/xrdp.ini,其中的 port 改为其他端口(如 3390)。

[globals]

...

port=3390

运行 sudo service xrdp restart,然后win+R,打开mstsc,用 localhost:3390 来访问。


如果访问失败,可能需要打开端口:

sudo ufw allow 3390

WSL 与 Windows 文件的互访问

Windows 下的硬盘被自动挂载至 Linux 环境下的 /mnt 文件夹下。

如 C 盘在 WSL 下的路径为 /mnt/c

PS C:\Users\chtholly> bash
/mnt/c/Users/chtholly$ echo "Hello world!" > hello
/mnt/c/Users/chtholly$ exit
PS C:\Users\chtholly> cat hello
Hello world!
PS C:\Users\chtholly> echo "Welcome!" > welcome
PS C:\Users\chtholly> bash
/mnt/c/Users/chtholly$ cat welcome
Welcome!

另外,也可以从文件管理器访问 WSL 目录。在安装 WSL 后,可以在资源管理器的侧边栏中发现 Linux 项,在其中可以访问所有安装的发行版中的文件。

同样,也可以在资源管理器的路径或运行(Win+R)中直接输入 \\wsl$ 来转到 WSL 的目录。

也可以直接使用诸如 \\wsl$\Ubuntu\home\ 的路径访问其子文件夹。

配合 Visual Sudio Code 进行编辑

如果习惯在 Windows 环境下使用 Visual Studio Code 进行代码编辑,可以安装 VS Code 中的 Remote - WSL 插件,更方便地对 WSL 系统中的文件进行编辑。

通过 Remote - WSL,可以在 Windows 下的 VS Code 界面中直接对 WSL 子系统进行操作,更加方便地编辑子系统目录下的文件、更方便地使用终端进行调试。

通过在 WSL 中直接键入 code .,可以在该目录下直接唤出 Visual Studio Code,对于该目录下的文件进行编辑。

同时,可以通过类似 code filename 的命令,对于指定文件进行编辑。

在插件 Remote - WSL 的 Getting Started 页面,包含对于编辑操作的详细简介。

同时,也可以参考 Visual Studio Code 的官方文档中关于 WSL 的内容(Remote development in WSL),这篇文章包含从 WSL 安装到配合插件使用的全流程的更详细的介绍。

WSL1 升级为 WSL2

请确认已经完成前面 WSL1 的安装步骤。

执行命令 wsl -l -v 可以看到 WSL 版本号是 1,需要执行升级,才能到 2。

  1. 启用「虚拟机平台」功能

    使用 PowerShell 以管理员身份运行:

    dism.exe /online /enable-feature /featurename:VirtualMachinePlatform /all /norestart

    然后 重启电脑

  2. 下载 Linux 内核更新包

  3. 设置分发版版本

    执行命令:wsl --set-version <分发版名称> <版本号>

    如:将 Ubuntu 18.04 设置为 WSL 2 的命令为 wsl --set-version Ubuntu-18.04 2

    这一步比较耗时,执行完成后通过命令 wsl -l -v 来检查升级是否成功。

FAQ

参见:常见问题WSL 2 常见问题解答

  • 如何在子系统下进行 xxx?

    可以用自带命令行,或者使用图形界面。

    比如说 vim,在命令行中键入 man vim,会给出一份详尽的使用方法。

    亦可使用 vim --help

    关于命令行,可阅读 命令行

  • 对系统资源的占用量?

    这个系统和 Windows 10 共用 Host,所以理论上是比虚拟机占用小的。

外部链接

参考资料与注释

安装 WSL, Microsoft Docs

旧版 WSL 的手动安装步骤

WSL-Ubuntu 维基,ubuntu wiki

Ubuntu 的 man 命令帮助如何设置中文版,Frank 看庐山,2017-06-09

Run Bash on Ubuntu on Windows, Mike Harsh, 2016-05-30, Windows Blog

WSL安装与使用简明教程的更多相关文章

  1. Qemu下安装Sun Solairs8简明教程 转

    http://blog.csdn.net/stonesharp/article/details/8928393 Qemu下安装Sun Solairs8简明教程(Centos6. / Win7) 作者: ...

  2. Windows Server 2019安装OpenSSH Server简明教程

    Windows Server 2019安装OpenSSH Server简明教程   Windows Server 2019内置OpenSSH Server组件了.只不过OpenSSH Server默认 ...

  3. Mac安装Windows 10的简明教程

    每次在Mac上安装Windows都是一件非常痛苦的事情,曾经为了装Win8把整台Mac的硬盘数据都弄丢了,最后通过龟速系统恢复模式恢复了MacOSX(50M电信光纤下载了3天才把系统下载完),相信和我 ...

  4. CentOs6.5中安装和配置vsftp简明教程[转]

    CentOs6.5中安装和配置vsftp简明教程 林涛 发表于:2017-3-17 10:10 分类:WebServer 标签: 101次 一.vsftp安装篇 复制代码代码如下: # 安装vsftp ...

  5. Docker简明教程

    Docker简明教程 [编者的话]使用Docker来写代码更高效并能有效提升自己的技能.Docker能打包你的开发环境,消除包的依赖冲突,并通过集装箱式的应用来减少开发时间和学习时间. Docker作 ...

  6. linux 防火墙iptables简明教程

    前几天微魔部落再次遭受到个别别有用心的攻击者的攻击,顺便给自己充个电,复习了一下linux下常见的防火墙iptables的一些内容,但是无奈网上的很多教程都较为繁琐,本着简明化学习的目的,微魔为大家剔 ...

  7. Linux防火墙iptables简明教程

    前几天微魔部落再次遭受到个别别有用心的攻击者的攻击,顺便给自己充个电,复习了一下linux下常见的防火墙iptables的一些内容,但是无奈网上的很多教程都较为繁琐,本着简明化学习的目的,微魔为大家剔 ...

  8. Boost.Build 简明教程

    Boost.Build 简明教程 目录1. 介绍2. 构建过程3. 基本任务4. 项目管理5. 最佳实践6. 规则参考7. 特征参考 介绍 编译器和平台无关编译系统Boost.Build是一个高级编译 ...

  9. Teamcity+SVN+VisualStudio在持续集成简明教程

    Teamcity+SVN+VisualStudio持续集成 简明教程 一.写在最前: 1.      各组件版本号例如以下: Teamcity(简称tc)版本号:8.1.4 SVN版本号:Tortoi ...

  10. 《Python简明教程》总结

    Python经典教程<Python简明教程> 目录: 为什么Python 安装Python 体验Python Python数据类型 运算符与表达式 控制流 函数 模块 数据结构 解决问题 ...

随机推荐

  1. Axure在线教育考试原型图在线网课教育交互模板rp源文件

    Axure在线教育考试原型图在线网课教育交互模板rp源文件 Axure在线教育原型图在线网课教育交互模板rp源文件是一款原创的儿童教育类的APP模板,使用axure rp软件制作.app中包含大约40 ...

  2. Vue3 学习-初识体验-helloworld

    在数据分析中有一个最重要的一环就是数据可视化, 数据报表的开发. 从我从业这几年的经历上看, 经历了从业务系统导表格数据, 到Excel+PPT, 再是开源报表工具, 再是主流商业BI产品(低/零代码 ...

  3. argparse基本功能极简介绍

    argparse基本功能极简介绍 python脚本文件可以通过命令行的方式调用,在这种调用方法中,可以通过sys.argv来把命令行参数传入脚本文件,通过这种方式传入的参数是string,并且需要将该 ...

  4. Teradata在华落幕,国产化崛起,袋鼠云数栈会是更好的选择吗?

    2月15日,数仓软件巨头Teradata宣布根据其对中国当前和未来商业环境的慎重评估,将逐步结束在中国的直接运营,后续进入中国公司的关闭程序. 一石激起千层浪,这一消息,在国内的To B市场引起了广泛 ...

  5. SpringBoot + Junit5 + MockMvc 写单元测试

    1.1  junit5  版本5.6.0  pom文件如下: <properties> <junit.jupiter.version>5.6.0</junit.jupit ...

  6. FFmpeg开发笔记(六十九)Windows给FFmpeg集成AV1编码器libaom

    ​AV1是一种新兴的免费视频编码标准,它由开放媒体联盟(Alliance for Open Media,简称AOM)于2018年制定,融合了Google VP10.Mozilla Daala以及Cis ...

  7. 10-2 MySQL 索引优化与查询优化

    10-2 MySQL 索引优化与查询优化 @[toc] 这篇文章是我蹲在<尚硅谷>-康师傅博主家的 WiFi 上(不是),连夜 Ctrl+C / V 俩的镇站神文. 这篇转载只是为了,跟大 ...

  8. JAVA的Toolkit显示图片问题

    Image image = Toolkit.getDefaultToolkit().getImage(Panel.class.getResource("/20220204.png" ...

  9. C++ stack容器 总结

    -----------------------------------stack 容器 stack是一种先进后出(first in last out,FILO)的数据结构,他只有一个出口,stack只 ...

  10. TypeScript结构化类型初探

    啥是鸭子类型? 作为一个前端程序员,想必大家都知道javascript是一个弱类型语言,如果需要类型的支持,那就需要借助typescript来实现,但是大家可曾听过这样一个说法? javascript ...