【WSL】安装并配置适用于Linux的Windows子系统(WSL)

【WSL】安装并配置适用于Linux的Windows子系统(WSL)

安装并配置适用于Linux 的Windows子系统(WSL)


引言

适用于 Linux 的 Windows 子系统(WSL)是 Windows 的一项功能,可用于在 Windows 计算机上运行 Linux 环境,而无需单独的虚拟机或双重启动。 WSL 旨在为想要同时使用 Windows 和 Linux 的开发人员提供无缝高效的体验。


一、安装WSL

右键单击并选择“以管理员身份运行”,在管理员模式下打开 PowerShell,输入 wsl --install 命令,然后重新启动计算机。

wsl --install 

完成后在PowerShell下运行如下命令可以查看已经安装的Linux发行版:

wsl --list --verbose 
在这里插入图片描述

但是,不出意外的话就要出意外了。
国内环境下,由于 GitHub 连接不稳定,应该是无法直接安装 Linux 系统。运行上述代码时会出现如下错误:

无法从“https://raw.githubusercontent.com/microsoft/WSL/master/distributions/DistributionInfo.json”提取列表分发。操作超时。
错误代码: Wsl/InstallDistro/WININET_E_TIMEOUT

出现上述问题则需要手动安装 Linux 发行版。


二、手动下载并安装Ubuntu(或其他发行版)

2.1 从官方镜像站下载 WSL 发行版包

访问 Ubuntu 资源官网:https://releases.ubuntu.com/
这里选择下载 Ubuntu 24.04 LTS

在这里插入图片描述


点进去之后找到 WSL image 并下载:

在这里插入图片描述

2.2 手动导入并安装

在 WSL 中导入并安装 Linux 发行版的命令语法如下:

wsl --import <发行版名称><安装目录><tar 或 wsl 包路径>[选项]

比如我在 PowerShell 中运行如下命令进行安装:

wsl --import Ubuntu-24.04 "D:\ProgramData\WSL\Ubuntu-24.04""C:\Users\wyq15\Downloads\ubuntu-24.04.3-wsl-amd64.wsl" --version 2

2.3 验证安装

完成后在 PowerShell 下运行如下命令可以查看已经安装完毕:

wsl --list --verbose 
在这里插入图片描述

三、给WSL更换清华源(可选)

在 WSL 中安装的 Ubuntu 版本在使用 apt 安装软件时速度较慢,因此更换国内源,这里采取自动更换的方式,确保更换无误。

备份原始配置:

sudocp /etc/apt/sources.list /etc/apt/sources.list.bak 
如果换源后出问题,可随时恢复:

更换源代码如下:

UBUNTU_CODENAME=$(lsb_release -cs)echo"deb https://mirrors.tuna.tsinghua.edu.cn/ubuntu/ $UBUNTU_CODENAME main restricted universe multiverse deb https://mirrors.tuna.tsinghua.edu.cn/ubuntu/ $UBUNTU_CODENAME-updates main restricted universe multiverse deb https://mirrors.tuna.tsinghua.edu.cn/ubuntu/ $UBUNTU_CODENAME-backports main restricted universe multiverse deb https://mirrors.tuna.tsinghua.edu.cn/ubuntu/ $UBUNTU_CODENAME-security main restricted universe multiverse"|sudotee /etc/apt/sources.list 

更新软件包索引:

sudoapt clean # 清理旧缓存sudoapt update # 从新源拉取软件列表

四、使用Xshell连接WSL(可选)

在正常使用时 PowerShell 感觉用的并不习惯,因此采用 Xshell 通过 SSH 远程控制。这里需要下载一些搭配使用的软件。

4.1 下载并安装 Xshell

官网免费授权版本:https://www.xshell.com/zh/free-for-home-school/

在这里插入图片描述


直接下载并安装就行了,这里就不过多赘述了。

4.2 在 WSL 中安装并配置 OpenSSH Server

  • 启动 WSL
wsl -d Ubuntu-24.04 
  • 更新包列表并安装 openssh-server
sudoapt update sudoaptinstall openssh-server -y 

由于后续要编辑配置,我习惯使用 vim ,因此这里也装个 vim

sudoaptinstallvim -y 
在这里插入图片描述
  • 修改 SSH 配置(关键!关键!关键!
    默认 SSH 端口是 22,但 Windows 可能已占用(如 Windows 自带的 OpenSSH 服务)。建议改为非冲突端口,例如 2222
sudovim /etc/ssh/sshd_config 

找到 #Port 22,修改为:

Port 2222
在这里插入图片描述

同时确保以下选项启用:

PermitRootLogin yes# 如果你想用 root 登录 PasswordAuthentication yes# 允许密码登录(Xshell 需要)
在这里插入图片描述


在这里插入图片描述


修改完后保存::wq

  • 启动 SSH 服务
sudo systemctl restart ssh
在这里插入图片描述
  • 设置开机自启(可选)
sudo systemctl enablessh
在这里插入图片描述
  • 设置root用户密码
sudopasswd
在这里插入图片描述

4.3 在Xshell中配置连接


连接成功

在这里插入图片描述

五、WSL常用命令

当然可以!以下是一份 WSL(Windows Subsystem for Linux)常用命令速查清单,涵盖 管理发行版、启动/关闭、导入导出、版本切换、网络配置 等高频操作,适用于 WSL 1 和 WSL 2(以 PowerShell 或 CMD 为主)。

5.1 基础信息查看

命令说明
wsl -l列出已安装的发行版(简略)
wsl -l -v列出所有发行版 + 状态 + WSL 版本(最常用✅)
wsl --status查看 WSL 整体状态(内核版本、默认发行版等)
wsl -d <名称>启动指定发行版(如 wsl -d Ubuntu-24.04
wsl启动默认发行版

5.2 动与关闭

命令说明
wsl --shutdown立即关闭所有 WSL 虚拟机(释放内存/CPU,推荐日常使用✅)
wsl --terminate <发行版名>强制终止某个发行版(如 wsl --terminate Ubuntu-24.04
wsl -d <名称> -u <用户名>以指定用户身份启动(如 wsl -d Ubuntu -u alice

5.3 安装与卸载发行版

命令说明
wsl --install安装默认发行版(Ubuntu)和 WSL 2(需管理员权限)
wsl --install -d <发行版名>安装指定发行版(如 wsl --install -d Debian
wsl --unregister <发行版名>彻底删除该发行版及其所有数据(不可逆⚠️)
wsl --set-default <发行版名>设置默认启动的发行版
💡 可用发行版列表:
Ubuntu, Debian, KaliLinux, openSUSE-Leap-15.5, SLES-15-SP5 等(需先在 Microsoft Store 安装或手动导入)

5.4 导入与导出(迁移/备份)

命令说明
wsl --export <名称> <备份路径.tar>导出发行版为 tar 包(用于备份或迁移)
例:wsl --export Ubuntu D:\backup\ubuntu.tar
wsl --import <新名称> <安装目录> <tar路径> [--version 2]从 tar 包导入新发行版
例:wsl --import MyUbuntu D:\WSL\MyUbuntu D:\backup\ubuntu.tar --version 2
这是将 WSL 移到 D 盘的标准方法!

5.5 版本管理(WSL 1 ↔ WSL 2)

命令说明
wsl --set-version <名称> 2将发行版升级到 WSL 2(推荐✅)
wsl --set-version <名称> 1降级到 WSL 1(兼容性需求)
wsl --default-version 2设置新安装发行版默认使用 WSL 2
💡 WSL 2 性能更好,但需要 Windows 10 2004+ 或 Win11。

5.6 网络与 SSH(连接 Xshell 等)

操作说明
在 WSL 中安装 SSH:
sudo apt install openssh-server
启用 SSH 服务
修改端口:
sudo nano /etc/ssh/sshd_configPort 2222
避免与 Windows 冲突
启动 SSH:
sudo service ssh start
手动启动
Windows 防火墙放行 2222 端口否则 Xshell 无法连接
Xshell 连接地址:
主机:127.0.0.1,端口:2222
本地回环连接

5.7 文件系统互访

路径说明
Windows → WSL在 WSL 中访问:/mnt/c/, /mnt/d/
WSL → Windows在 Windows 中访问:
\\wsl$\<发行版名>\(资源管理器地址栏输入)
例:\\wsl$\Ubuntu-24.04\home
✅ 推荐用 \\wsl$ 方式在 Windows 中直接操作 Linux 文件!

5.8 高级配置

1. 全局配置文件(控制内存、swap、内核等)

  • 路径:%USERPROFILE%\.wslconfig
  • 修改后执行:wsl --shutdown 生效

示例:

[wsl2] memory=4GB processors=2 swap=2GB swapFile=D:/WSL/swap.vhdx localhostForwarding=true 

2. 单个发行版配置

  • 路径(在 WSL 内):/etc/wsl.conf

示例:

[user] default = alice [automount] enabled = true options = "metadata,umask=22,fmask=11" 

5.9 清理与优化

命令说明
wsl --update更新 WSL 内核(需联网)
wsl --update rollback回滚到上一个内核版本
手动压缩 vhdx:
diskpartselect vdisk file="D:\WSL\ext4.vhdx"attach vdisk readonlycompact vdiskdetach vdisk
减小虚拟硬盘占用

5.10 实用技巧

  • 快速进入 WSL 目录:在 Windows 资源管理器地址栏输入 \\wsl$
  • 默认用户不是 root?在 /etc/wsl.conf 中设置 [user]\ndefault = yourname
  • C 盘满了?用 wsl --export + wsl --import 迁移到 D 盘
  • 忘记密码?以 root 启动:wsl -u root,然后 passwd username 重置

5.11 总结:最常用 5 条命令

wsl -l -v # 查看所有发行版状态 wsl --shutdown # 关闭所有 WSL(日常必用) wsl --export Ubuntu backup.tar # 备份 wsl --import NewUbuntu D:\WSL\NewUbuntu backup.tar --version 2 # 迁移 wsl --set-version Ubuntu 2 # 升级到 WSL 2

Read more

救命!这 AI 写代码比我还快?速戳飞算 JavaAI 2.0测评

救命!这 AI 写代码比我还快?速戳飞算 JavaAI 2.0测评

救命!这 AI 写代码比我还快?飞算 JavaAI 2.0.0 测评速戳 * 前言 * 一、飞算 AI,功能有多惊艳?看这👇 * 二、亲身试炼:飞算 JavaAI 如何变身为我的 “开发战友”?😚 * 2.1飞算AI插件的安装 * 2.2 体验飞算AI生成代码 * 2.3创建一个完整项目的流程 * 三、飞算AI与其他主流开发平台进行对比 * 3.1飞算JavaAI 的核心优势 * 3.2飞算AI支持的Java版本 * 总结: 前言 当 “传统代码开发” 遇上 “飞算 AI”,会迸发出怎样的惊喜?回想以往,面对复杂的功能需求,程序员只能手动编写大量代码。而现在,有了飞算 AI,

By Ne0inhk
JAVA IO流:从基础原理到实战应用

JAVA IO流:从基础原理到实战应用

JAVA IO流:从基础原理到实战应用 1.1 本章学习目标与重点 💡 掌握IO流的核心概念与分类,理解字节流与字符流的区别和适用场景。 💡 熟练使用字节流完成文件的读取与写入操作,解决文件拷贝等实际问题。 💡 掌握字符流的使用方法,处理文本文件的编码与解码问题。 💡 了解缓冲流、转换流、对象流等高级IO流的原理,提升IO操作效率。 ⚠️ 本章重点是 字节流与字符流的核心用法 和 高级IO流的实战应用,这是JAVA文件操作的必备技能。 1.2 IO流核心概念与分类 1.2.1 什么是IO流 💡 IO流(Input/Output Stream)是JAVA中用于处理设备之间数据传输的技术,主要负责数据的读取(Input)和写入(Output)。 常见的IO操作包括文件读写、网络通信数据传输等。IO流的核心思想是以流的方式处理数据,数据像水流一样从一个设备流向另一个设备,实现数据的传输与处理。 1.2.2 IO流的分类标准 JAVA中的IO流体系庞大,可按照不同标准进行分类,核心分类方式有以下三种: 1.

By Ne0inhk
幻想简历!博主本人期望的 AI Agent 全栈简历:Java + Python + Vue3 跨语言实战,代码已开源!

幻想简历!博主本人期望的 AI Agent 全栈简历:Java + Python + Vue3 跨语言实战,代码已开源!

幻想简历!博主本人期望的 AI Agent 全栈简历:Java + Python + Vue3 跨语言实战,代码已开源! AI Agent 面试八股文100问,点击我跳转!!! 大家好,我是 ZEEKLOG 上累计浏览量百万的技术博主 👋 过去一年,我从持续输出 Java/前端/AI 技术文章,逐步转向 工程化落地 AI Agent 系统 的实战开发。 如今,我将自己打磨数月的 Agent 实习生简历 完整公开—— 不仅包含 跨语言全栈技术栈(Java + Python + Vue3),还附带 两个已开源的生产级项目(金融信贷平台 + AI 刷题系统),代码、文档、部署方案一应俱全。 这篇简历不是“纸上谈兵”

By Ne0inhk
Java+Leaflet:湖南省道路长度WebGIS的构建与实践

Java+Leaflet:湖南省道路长度WebGIS的构建与实践

目录 前言 一、基础空间数据简介 1、涉及相关表 2、省域道路长度检索 二、Java后台实现 1、道路视图对象 2、Mapper空间检索查询 3、控制API实现 三、WebGIS界面实现 1、里程图例及初始化 2、各地市信息展示 四、成果展示 1、总体展示 2、分区域说明 五、总结 前言         在当今数字化时代,地理信息系统(GIS)技术在各个领域都发挥着至关重要的作用。它不仅为城市规划、交通管理、环境保护等提供了强大的技术支持,也为公众获取地理信息提供了便捷的途径。湖南省作为中国中部地区的重要省份,拥有复杂的地理环境和庞大的交通网络。如何高效地管理和展示湖南省的道路长度信息,对于交通规划、物流运输以及公众出行都具有极其重要的意义。因此,我们开展了基于Java和Leaflet的湖南省道路长度WebGIS系统的构建与实践研究。         湖南省地处中国中部,交通网络密集且复杂。随着经济的快速发展和城市化进程的加快,湖南省的道路建设不断推进,

By Ne0inhk