这篇笔记的内容已经过时,请移步另一篇博客
关于WSL
WSL(Windows Subsystem for Linux)是微软为 Windows 10 和 Windows 11 用户提供的一项功能,它允许你在 Windows 上运行 Linux 环境。WSL 使得开发者和学生可以在不离开 Windows 的情况下,体验和使用 Linux 系统及其工具。
- 安装 WSL: 打开 PowerShell 或 Windows 命令提示符(以管理员身份运行),并运行以下命令来安装 WSL 和默认的 Ubuntu 发行版:
wsl --install
这将启用 WSL 并安装最新版本的 Ubuntu。安装完成后,需要重新启动计算机。 2. 启动 WSL: 重新启动计算机后,可以在开始菜单中找到并启动 Ubuntu 或其他已安装的 Linux 发行版。
WSL 的主要特点
- 无缝集成:WSL 与 Windows 无缝集成,你可以在 Windows 文件系统中访问和操作 Linux 文件,也可以在 Linux 中访问 Windows 文件。
- 低资源开销:与虚拟机相比,WSL 占用的系统资源非常少,因为它不需要运行完整的 Linux 内核,而是通过兼容层直接在 Windows 上运行。
- 兼容大多数 Linux 发行版:你可以从微软商店中安装多种 Linux 发行版,如 Ubuntu、Debian、OpenSUSE 等。
- 支持图形界面:最新的 WSL 版本(WSL2)支持运行 Linux 图形用户界面应用程序。
在 WSL 中,Windows 的文件系统被挂载在 /mnt
目录下。比如,C:\Users\YourName
在 WSL 中对应 /mnt/c/Users/YourName
,D: 盘对应 /mnt/d
等。
WSL 允许你在 Windows 上运行大多数 Linux 命令行工具、实用程序和应用程序,如 bash
、grep
、sed
、awk
、rsync
等。
两个报错
wsl的网络代理问题
warning: 检测到 localhost 代理配置,但未镜像到 WSL。NAT 模式下的 WSL 不支持 localhost 代理。
下面的内容已经过时,请移步另一篇博客
另可参阅微软官方文档
在Windows中的 C:\Users\<your_username>
目录下创建一个.wslconfig文件,然后在文件中写入如下内容:
[wsl2]
networkingMode=mirrored
dnsTunneling=true
autoProxy=true
然后用 wsl --shutdown
关闭WSL,之后再重启,提示就消失了。
Windows PowerShell无法使用wsl命令问题
参阅 https://blog.csdn.net/weixin_44825912/article/details/136565219
wsl --list --verbose
wsl -s Ubuntu
python调用命令行操作
可以在 Python 中调用 WSL (Windows Subsystem for Linux) 来执行命令。你可以使用 subprocess
模块来执行命令并捕获其输出。
import subprocess
def run_wsl_command(command):
# 构建 WSL 命令
wsl_command = f"wsl {command}"
try:
# 使用 subprocess 运行命令并捕获输出,指定 encoding='utf-8'
result = subprocess.run(wsl_command, shell=True, capture_output=True, text=True, encoding='utf-8')
# 输出结果
if result.returncode == 0:
print("Command succeeded:")
print(result.stdout)
else:
print("Command failed:")
print(result.stderr)
except UnicodeDecodeError as e:
print(f"Unicode decode error: {e}")
# 示例命令
command = "ls -l"
run_wsl_command(command)