169 lines
5.0 KiB
Markdown
169 lines
5.0 KiB
Markdown
# 前置条件
|
||
1. 系统版本
|
||
Windows 11:全部版本支持
|
||
Windows 10:2004(Build 19041)及以上
|
||
查看版本:Win+R → 输入 winver
|
||
2. 开启 CPU 虚拟化(必须!)
|
||
任务管理器 → 性能 → CPU,查看【虚拟化】:
|
||
显示已启用:正常
|
||
已禁用:重启电脑进 BIOS/UEFI,打开
|
||
Intel:Intel VT-x / VMX
|
||
AMD:SVM Mode / AMD-V
|
||
3. 操作终端必须右键 → 以管理员身份运行(PowerShell / Windows 终端)
|
||
# 安装WSL
|
||
管理员终端执行:
|
||
```powershell
|
||
wsl --install
|
||
```
|
||
# 重启电脑
|
||
# 安装Ubuntu
|
||
1. 设置版本为wsl2
|
||
```powershell
|
||
wsl --set-default-version 2
|
||
```
|
||
2. 安装Ubuntu
|
||
```powershell
|
||
wsl --install -d Ubuntu
|
||
```
|
||
3. 安装后一般会自动用windows账户设置用户,显示在命令行,可以就直接回车,不行就自己改。
|
||
4. 用户确定之后让输入密码。不会回显,正常输入即可。
|
||
# wsl挪到别的盘
|
||
wsl默认是在C盘,如果C盘空间较小,可以挪到别的盘。
|
||
关掉之前启动的Ubuntu窗口,新开一个窗口
|
||
1. 查看ubuntu名称。
|
||
```wsl -l -v```
|
||
2. 记下名称,创建新存放目录
|
||
```
|
||
# 存放迁移后的系统(vhdx在这里)
|
||
New-Item -ItemType Directory D:\WSL\Ubuntu
|
||
# 临时存放备份tar包
|
||
New-Item -ItemType Directory D:\WSL\Backup
|
||
```
|
||
3. 导出原Linux系统
|
||
```
|
||
wsl --export Ubuntu D:\WSL\Backup\ubuntu.tar
|
||
```
|
||
4. 注销旧C盘实例
|
||
```
|
||
wsl --unregister Ubuntu
|
||
```
|
||
5. 导入到D盘目标目录
|
||
```
|
||
wsl --import Ubuntu D:\WSL\Ubuntu D:\WSL\Backup\ubuntu.tar --version 2
|
||
```
|
||
6. 如果导入后默认变成 root 登录
|
||
如果原来的普通用户失效,需要设置默认登录用户,进入终端之后
|
||
```
|
||
# 设置默认登录用户 starm
|
||
echo "[user]" >> /etc/wsl.conf
|
||
echo "default=starm" >> /etc/wsl.conf
|
||
```
|
||
linux内输入```exit```
|
||
关闭linux```wsl --shutdown```
|
||
测试启动:
|
||
```
|
||
wsl -d Ubuntu
|
||
```
|
||
7. 清理(确认全部正常再删!)
|
||
环境使用一切没问题后,删除备份 tar 包释放空间:
|
||
```
|
||
Remove-Item D:\WSL\Backup\ubuntu.tar
|
||
```
|
||
# 如果Windows开了梯子
|
||
进wsl的时候会报警告:
|
||
```
|
||
wsl: 检测到 localhost 代理配置,但未镜像到 WSL。NAT 模式下的 WSL 不支持 localhost 代理。
|
||
```
|
||
关掉wsl,打开```C:\Users\starm\```
|
||
新建.wslconfig
|
||
写入
|
||
```
|
||
[wsl2]
|
||
networkingMode=mirrored
|
||
autoProxy=true
|
||
dnsTunneling=true
|
||
firewall=true
|
||
```
|
||
重启wsl
|
||
|
||
# 更新apt,安装基础工具
|
||
0. 先做最关键:更换国内软件源(必做,否则下载巨慢)
|
||
① 备份原有源文件
|
||
```sudo cp /etc/apt/sources.list /etc/apt/sources.list.bak```
|
||
② 编辑源文件
|
||
```sudo nano /etc/apt/sources.list```
|
||
清空里面全部内容,粘贴清华源(Ubuntu 22.04 jammy)
|
||
```
|
||
plaintext
|
||
deb https://mirrors.tuna.tsinghua.edu.cn/ubuntu/ jammy main restricted universe multiverse
|
||
deb https://mirrors.tuna.tsinghua.edu.cn/ubuntu/ jammy-updates main restricted universe multiverse
|
||
deb https://mirrors.tuna.tsinghua.edu.cn/ubuntu/ jammy-backports main restricted universe multiverse
|
||
deb https://mirrors.tuna.tsinghua.edu.cn/ubuntu/ jammy-security main restricted universe multiverse
|
||
```
|
||
快捷键:
|
||
Ctrl+O 保存 → 回车确认 → Ctrl+X 退出
|
||
③ 更新软件索引
|
||
```
|
||
sudo apt update
|
||
sudo apt upgrade -y
|
||
```
|
||
upgrade 会升级系统自带软件,第一次新装建议跑完。
|
||
1. 基础必备工具(通用开发全部推荐安装)
|
||
```
|
||
sudo apt install -y git curl wget zip unzip tar htop tree nano openssh-client ca-certificates
|
||
```
|
||
简单说明:
|
||
git:代码管理
|
||
curl/wget:网络请求、下载文件
|
||
htop:增强任务管理器
|
||
tree:目录树形展示
|
||
openssh-client:ssh 远程连接
|
||
2. 如果你需要编译代码(C/C++、Python 编译包、Nginx 等)
|
||
```
|
||
sudo apt install -y build-essential gcc g++ make cmake pkg-config
|
||
```
|
||
3. 终端体验增强(可选,强烈推荐)
|
||
```
|
||
sudo apt install -y zsh
|
||
# 可选安装oh-my-zsh,shell更好用
|
||
sh -c "$(curl -fsSL https://raw.githubusercontent.com/ohmyzsh/ohmyzsh/master/tools/install.sh)"
|
||
```
|
||
4. 开发语言按需挑选,不用的跳过
|
||
Python(系统自带 python3,只装工具)
|
||
```
|
||
sudo apt install -y python3-pip python3-venv
|
||
```
|
||
pip换国内源
|
||
```
|
||
pip config set global.index-url https://pypi.tuna.tsinghua.edu.cn/simple
|
||
```
|
||
|
||
Node.js
|
||
不要用 apt 自带老旧版本,推荐 nvm 安装:
|
||
```
|
||
curl -o- https://raw.githubusercontent.com/nvm-sh/nvm/v0.39.7/install.sh | bash
|
||
```
|
||
Java / Go / Rust 需要再说,单独给安装脚本
|
||
5. VS Code 联动 WSL(最重要!)
|
||
Windows 安装 VS Code,装好扩展:Remote - WSL
|
||
在 Ubuntu 终端直接输入:
|
||
```code .```
|
||
自动打开 VS Code 并接入 WSL 环境,文件互通开发。
|
||
6. 代理自动脚本(解决你之前那条localhost警告,可选)
|
||
追加到 ~/.bashrc,每次登录自动配置代理
|
||
```
|
||
nano ~/.bashrc
|
||
```
|
||
```
|
||
# 粘贴到文件末尾
|
||
export WIN_HOST=$(grep nameserver /etc/resolv.conf | awk '{print $2}')
|
||
# 修改为你的代理端口
|
||
export HTTP_PROXY="http://$WIN_HOST:7890"
|
||
export HTTPS_PROXY="http://$WIN_HOST:7890"
|
||
export ALL_PROXY="socks5://$WIN_HOST:7890"
|
||
```
|
||
不需要代理时执行:```unset HTTP_PROXY HTTPS_PROXY ALL_PROXY```
|
||
生效:
|
||
```
|
||
source ~/.bashrc
|
||
``` |