【dl】【WSL2】如何获得“Winux”?Windows 上的 Linux 子系统 —— 比虚拟机更好的选择

准备工作

第一步:确认CPU虚拟化

打开任务管理器------性能,在cpu一栏找"虚拟化",确认其已开启。一般大部分cpu都是默认开启的。没开启的请自行前往bios修改。

第二步:开启两个Windows功能

在任务栏搜索 Windows功能。开启"适用于Linux的Windows子系统" "虚拟机平台"这两个功能,点击确定后会提示重启。

安装和使用

安装WSL与Linux发行版

以管理员身份运行cmd(或者powershell),输入

bash 复制代码
wsl --install

不指定版本的话默认下的Ubuntu某一个LTS版本。

如果指定版本(这里指定22.04 一般做dl用这个版本最稳定)的话则输入

bash 复制代码
wsl --install -d Ubuntu-22.04

如果身处国内网络或者没挂梯子,建议在最后加上--web-download

另外可以通过以下这个命令查看wsl可以下载哪些linux发行版

bash 复制代码
wsl --list --online

接着等待安装,安装好之后还会弹出一个引导界面,先不用管。

另一边,cmd窗口会提示输入用户名和密码(linux的密码输入无明式显示)

wsl对用户名有一些要求

只包含小写字母、数字和下划线

以字母开头

长度在1到32个字符之间


出现到这一步就安装完毕了。安装的版本是 Ubuntu 22.04.5 LTS。

查看

显示当前机器上所有下载的linux子系统

bash 复制代码
wsl --list -v

可以看到刚刚安装的子系统名字叫 Ubuntu-22.04

STATE Running 代表正在运行,Stopped 未开机.

前面有个*号代表是当前默认的子系统,如果有多个子系统也可以通过以下这个命令修改你的默认子系统。(NAME换成你想换的子系统的名字)

bash 复制代码
wsl --set-default NAME

启动

如何启动子系统?

win11 在终端的下拉界面可以看到几个版本。找到Ubuntu点击即开机,

如果用的是老版本的命令提示符窗口,那么输入

bash 复制代码
wsl -d Ubuntu-22.04

输入pwd 还可以看到当前工作目录

输入 exit 即可退出

卸载

bash 复制代码
wsl --unregister NAME

导出、导入与备份

导出

bash 复制代码
wsl export NAME FILENAME.tar 生成tar文件的地址
# 比如说 wsl export Ubuntu-22.04 ubuntu.tar C:\temp\ubuntu.tar

之后你将在目标地址看到一个FILENAME.tar文件,如果不加地址的话就默认生成在当前工作文件夹。

导入

假设说我现在要把一个tar文件导入到一个新的地址。

bash 复制代码
wsl --import NAME 新的地址 tar文件所在地址
# 比如说 wsl --import Ubuntu-22.04 D:\wsl\ubuntu-22.04 C:\temp\ubuntu.tar

转移

假设说我现在要把安装在c盘的Ubuntu-22.04转移到D盘,一般的流程如下

  • 导出 wsl export Ubuntu-22.04 ubuntu.tar C:\temp\ubuntu.tar
  • 注销 wsl --unregister Ubuntu-22.04
  • 导入 wsl --import Ubuntu-22.04 D:\wsl\ubuntu-22.04 C:\temp\ubuntu.tar
  • 启动检测 wsl -d Ubuntu-22.04

因为安装的时候默认都是装在c盘下,所以说如果c盘容量不够想要转移的话就要通过这个方式。

其他

文件共享

在linux查看windows文件

df,"Disk Free" 的缩写,核心作用是显示文件系统的磁盘容量、已用空间、可用空间等信息

bash 复制代码
df -h

可以看到Windows中的C,D,E盘都是通过挂载的方式挂到子系统的主目录下,这种方式的io性能不好,如果有频繁的io操作建议直接把文件copy过来。

在windows查看linux文件


命令混用

可以在linux命令里混win的命令,在win的命令里混linux的命令......可以说是很逆天了

显卡直通


后续将更新在linux上安装conda环境,在pycharm、cursor等ide接入linux的环境。

相关推荐
johnny2332 小时前
运维管理面板:AcePanel、OpenOcta、DeepSentry
运维
青梅橘子皮3 小时前
Linux---基本指令
linux·运维·服务器
REDcker3 小时前
Linux信号机制详解 POSIX语义与内核要点 sigaction与备用栈实践
linux·运维·php
cui_ruicheng4 小时前
Linux进程间通信(三):System V IPC与共享内存
linux·运维·服务器
蚰蜒螟5 小时前
深入 Linux 内核同步机制:从 futex 到 spinlock 的完整旅程
linux·windows·microsoft
运维全栈笔记5 小时前
Linux安装配置Tomcat保姆级教程:从部署到性能调优
linux·服务器·中间件·tomcat·apache·web
dllmayday6 小时前
Linux 上用终端连接 WiFi
linux·服务器·windows
ACP广源盛139246256736 小时前
IX8024与科学大模型的碰撞@ACP#筑牢科研 AI 算力高速枢纽分享
运维·服务器·网络·数据库·人工智能·嵌入式硬件·电脑
峥无7 小时前
Linux系统编程基石:静态库·动态库·ELF文件·进程地址空间全景图
linux·运维·服务器
用户2367829801687 小时前
从 chmod 755 说起:Unix 文件权限到底是怎么算的?
linux