wsl 基本使用

news/2025/3/4 21:43:34/文章来源:https://www.cnblogs.com/sun2ven/p/18751545

原文链接: https://blog.llweb.top/posts/linux/wsl-basic

安装

Microsoft Store 装安装

安装后首次启动会让你设置用户名,密码。更换默认用户为 root: https://superuser.com/questions/1566022/how-to-set-default-user-for-manually-installed-wsl-distro

.wslconfig 文件参考:https://learn.microsoft.com/zh-cn/windows/wsl/wsl-config#wslconfig

wsl cli 参考:https://learn.microsoft.com/zh-cn/windows/wsl/basic-commands

卸载

  1. wsl --unregister Ubuntu
  2. 利用 Bulk Crap Uninstaller 卸载干净

更换 Ubuntu apt-get 源

方法: https://mirrors.tuna.tsinghua.edu.cn/help/ubuntu/

源: http://mirrors.aliyun.com/ubuntu/

在 Ubuntu 24.04 之前,Ubuntu 的软件源配置文件使用传统的 One-Line-Style,路径为 /etc/apt/sources.list;从 Ubuntu 24.04 开始,Ubuntu 的软件源配置文件变更为 DEB822 格式,路径为 /etc/apt/sources.list.d/ubuntu.sources

安装 docker

https://docs.docker.com/engine/install/ubuntu/#install-using-the-repository

docker 镜像

https://github.com/DaoCloud/public-image-mirror

https://status.daocloud.io/status/docker

sudo tee /etc/docker/daemon.json <<EOF{"registry-mirrors": ["https://docker.m.daocloud.io"]
}
EOFsudo systemctl daemon-reload
sudo systemctl restart docker

镜像也慢,不如代理

proxy

使用代理: https://docs.docker.com/engine/daemon/proxy/

但wsl的网络模式影响,nat 不能访问主机代理,换成 mirrored

代理设置参考:https://george.betterde.com/technology/20240608.html

/etc/docker/daemon.json

{"proxies": {"no-proxy": "*.local,localhost,127.0.0.0/8","http-proxy": "http://IP_OR_DOMAIN:6152","https-proxy": "https://IP_OR_DOMAIN:6152",}
}

~/.docker/config.json

{"proxies": {"default": {"httpProxy": "http://127.0.0.1:7890","httpsProxy": "http://127.0.0.1:7890","noProxy": "*.local,localhost,127.0.0.0/8"}}
}

在 WSL 中访问 Windows 文件有几种便捷的方法

  1. 通过 /mnt 目录访问
  • Windows 的磁盘会自动挂载在 /mnt 目录下
  • 比如 C 盘路径为 /mnt/c,D 盘为 /mnt/d
  • 示例: cd /mnt/c/Users/YourName/Documents
  1. 通过符号链接创建快捷方式
# 在 home 目录下创建到 Windows Documents 文件夹的链接
ln -s /mnt/c/Users/YourName/Documents ~/Documents
# 快速访问
cd ~/windows_desktop

配置 /etc/wsl.conf 来自定义挂载点

需要注意的几点:

  • WSL 访问 Windows 文件时性能会比直接在 Linux 文件系统中操作稍慢
  • 建议将开发项目文件放在 WSL 文件系统中以获得更好的性能

性能差异的原因:

  • 当你通过 /mnt/c 访问 Windows 文件时,WSL 需要在Windows 和 Linux 文件系统之间进行转换,这会带来额外的开销
  • 在 Linux 文件系统中直接操作文件时,不需要这种转换,所以性能好

若需频繁操作,建议将文件复制到 WSL 原生目录

# 在 Windows 文件系统中运行 npm install
cd /mnt/c/projects/my-node-app
npm install  # 较慢# 在 Linux 文件系统中运行 npm install
cd ~/projects/my-node-app
npm install  # 更快
# 打开当前目录对应的 Windows 文件夹
explorer.exe .
# 将 Windows 路径转为 WSL 路径
wslpath "C:\Users\你的用户名\Downloads"
# 输出:/mnt/c/Users/你的用户名/Downloads# 将 WSL 路径转为 Windows 路径
wslpath -w ~/documents
# 输出:\\wsl.localhost\Ubuntu\home\用户名\documents

备份 WSL

https://stackoverflow.com/questions/38779801/move-wsl-bash-on-windows-root-filesystem-to-another-hard-drive/51767786#51767786

troubleshooting

常见问题解答:https://learn.microsoft.com/en-us/windows/wsl/faq

wsl: 检测到 localhost 代理配置,但未镜像到 WSL。NAT 模式下的 WSL 不支持 localhost 代理。

https://github.com/microsoft/WSL/issues/10753#issuecomment-1814839310

https://github.com/microsoft/WSL/releases/tag/2.0.0

找不到被占用的端口

  • hyper-v 占用
    • wsl
    • wsa 杀进程
netsh interface ipv4 reset
netsh interface ipv6 reset
netsh winsock reset netsh int ipv4 add excludedportrange protocol=tcp startport=3000 numberofports=100Disable-WindowsOptionalFeature -Online -FeatureName Microsoft-Hyper-V-AllEnable-WindowsOptionalFeature -Online -FeatureName Microsoft-Hyper-V-All

https://stackoverflow.com/questions/58216537/what-is-administered-port-exclusions-in-windows-10

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.hqwc.cn/news/893646.html

如若内容造成侵权/违法违规/事实不符,请联系编程知识网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

基于PID控制器的双容控制系统matlab仿真

1.课题概述 基于PID控制器的双容控制系统matlab仿真,仿真输出PID控制下的水位和流量两个指标。2.系统仿真结果 (完整程序运行后无水印) 3.核心程序与模型 版本:MATLAB2022a% 绘制结果图形 t1 = 0:1:times; t2 = 0:1:(times-1); hmax = 23*ones(1,times); % 硬约…

【APP逆向37】hook失败之ptrace占坑

现象使用attach方式hook,frida -UF -l hook.js原因unable to access process with pid 17124 due to system restrictions; try `sudo sysctl kernel.yama.ptrace_scope=0`, or run Frida as root这是ptrace占坑的标志。ptrace可以让一个进程监视和控制另一个进程的执行,并且…

AI训练进行web前后端开发协助

周五我们进行了针对web开发辅助的ai训练,以下是训练过程: 首先我搭建好了环境 然后我根据编程习惯将web前后端分成了这几点:之后我就将其丢给了deepseek,它直接帮我生成了上到mysql表格建立,下到前端jsp页面的所有文件, 哎,这之前怎么没觉得ai这么好用啊,要是用上这种开…

JavaWeb学习(六)

JavaWeb学习(六):Web前端开发 —— 其余内容 目录JavaWeb学习(六):Web前端开发 —— 其余内容Ajax前端工程化Vue 组件库 ElementVue 路由打包部署 本文为个人学习记录,内容学习自 黑马程序员Ajax概念:Asynchronous JavaScript And XML,异步的 JavaScript 和 XML作用:…

leetcode hot 19

解题思路:这题思路主要是用某个容器(数组等)来存储链表,然后再用双指针或者同时遍历的方法就可以判断。我使用栈进行存储,出栈的元素相当于链表倒序,如果和链表正序的结果相同就证明是回文。如果想用O(1)的空间,就把前一半或后一半的链表倒转,然后遍历就可以了。 /*** D…

code.c WriteUp

题目链接: https://pan.baidu.com/s/1u8bGbKcUF6_gLaw63L3jyA?pwd=h8r5 提取码: h8r5 WriteUp 题目名称:code.c 分类:Reverse 描述:得到源码的输出结果 解题思路 首先用Vscode查看code.c文件,发现该文件对argv[]进行判断处理,其中很容易联想到这和输出结果紧密联系。依次…

6. Calcite添加自定义函数

1. 简介 在上篇博文中介绍了如何使用calcite进行sql验证, 但是真正在实际生产环境中我们可能需要使用到用户自定义函数(UDF): 通过代码实现对应的函数逻辑并注册给calcitesql验证: 将UDF信息注册给calcite, SqlValidator.validator验证阶段即可通过验证 sql执行: calcite通过调…

P10945 Place the Robots 紫 题解

Part 1. 题意 在 \(N \times M\) 的矩阵中的空地放人机,任一人机上下左右走到边界或墙之前遇不到另一人机。 我已经尽力写得简短了。。Part 2. 思路 我们先思考无墙的情况。 若无墙,则同車的放置,把草方块当作禁止放車的方块即可,。 贴一下车的放置的代码: #include <b…

如何实现和调试REST API中的摘要认证(Digest Authentication)

如何实现和调试REST API中的摘要认证(Digest Authentication) 在保护REST API时,开发者通常会在多种认证机制之间进行选择,其中摘要认证(Digest Authentication)是一种常见的选择。本文探讨了使用摘要认证的原因,解释了其原理,提供了Java和Go语言的实现示例,并提供了测…

CF2068H. Statues

CF2068H. Statues 构造题. 思路 我们设 \(d_0 = a + b\) 是第 1 座雕像到第 \(n\) 座雕像的距离. 那么首先可以注意到两个必要条件:\(\displaystyle \sum_{i = 0}^{n - 1} d_i\) 为偶数. 对于 \(\forall i \in [0, n - 1]\), 都有 \(d_i \le d_0 + \dots + d_{i - 1} + d_{i + …

WEB攻防-机制验证篇重定向发送响应状态码跳过步骤验证码回传枚举

笔记: 验证码突破:回传的时候泄露了发送的验证码导致不需要知道目标的验证码是多少直接使用数据包里面的队列 规律爆破:就是常见的数字四位或者六位 10000 种可能在规定时间内爆破或者多次验证后网站不会出现新的验证码没有次数限制可以尝试爆破或者是汉字进行 重定向用户:通过…

Docker 安装 Redis 容器

1、下载Redis镜像下载指定版本的Redis镜像 (xxx指具体版本号) docker pull redis:xxx docker pull redis 下载最新版Redis镜像 (其实此命令就等同于 : docker pull redis:latest ),我用5.0.5版本。docker pull redis:5.0.52、 检查当前所有Docker下载的镜像docker images