在wsl2中安装ubuntu
Linux 是操作系统内核,Ubuntu 是基于Linux的发行版。
虚拟机 是运行操作系统的虚拟环境,可以在物理机上运行多个操作系统,包括Linux和Ubuntu。
1:启用 WSL 功能
-
以管理员身份打开 PowerShell。(win+R,输入powershell,shift+ctrl+enter进入)
-
运行以下命令启用 WSL:(下好后会连带ubuntu也下载了)(记得开加速器 )
wsl --install
如果已经安装了 WSL,可以跳过此步骤。
-
如果只需要启用 WSL 和虚拟机平台功能,可以手动运行:
dism.exe /online /enable-feature /featurename:Microsoft-Windows-Subsystem-Linux /all /norestart dism.exe /online /enable-feature /featurename:VirtualMachinePlatform /all /norestart
-
重启电脑。
-
安装完成后,可以通过
wsl.exe -d Ubuntu
启动 Ubuntu。
2:设置 WSL2 为默认版本
-
打开 PowerShell,运行以下命令将 WSL2 设置为默认版本:
wsl --set-default-version 2
(在
wsl --install
安装过程中,系统已经提示你创建了默认用户(如westone
),并自动授予了该用户 sudo 权限。)
接下来:
1. 完成 Ubuntu 的初始化配置
-
在 WSL 中启动 Ubuntu:
wsl -d Ubuntu
-
输入你设置的默认用户 的密码(如果系统提示)。(在 WSL 中,输入密码时界面不会显示任何字符(包括
*
或其他占位符)) -
切换到你的主目录
当前路径是
/mnt/c/Windows/system32
,这是 Windows 的系统目录(WSL 自动挂载的 Windows 文件系统路径)。建议切换到你的主目录:cd ~
-
确保 Ubuntu 系统更新到最新:
sudo apt update && sudo apt upgrade -y
2. 安装必要的开发工具
-
安装 C/C++ 编译器(gcc、g++)和调试器(gdb):
sudo apt install -y gcc g++ gdb
-
安装其他常用工具(如
make
):sudo apt install -y make
3. 配置 VS Code 与 WSL 集成
-
在 Windows 上安装 VS Code。
-
安装 Remote - WSL 扩展。
-
在 WSL 中运行以下命令,打开 VS Code:
code .
-
在 VS Code 中安装 C/C++ 扩展(如
C/C++
和CMake Tools
)。(VS Code有很多插件,建议安装语言包和Visual Studio IntelliCode,Code Spell Checker)
4. 创建并运行一个简单的 C++ 程序
-
在 WSL 中创建一个 C++ 文件(如
main.cpp
):nano main.cpp
-
编写一个简单的 C++ 程序,例如:
#include <iostream> int main() { std::cout << "Hello, WSL and VS Code!" << std::endl; return 0; }
-
保存并退出编辑器(按
Ctrl + X
,然后按Y
确认保存)。 -
编译并运行程序:
g++ main.cpp -o main ./main
调试代码
在子系统里面输入以下命令打开VS Code。
code .
第一次从子系统打开VS Code会自动安装一些插件,等待安装完成即可。
打开VS Code的插件安装界面,会提示在wsl里面安装相应插件,点击即可。
然后打开资源管理器,新建一个cpp源文件并写个hello world。
最后打开调试界面,点击运行和调试,选择GDB,然后选择g++。
此时,文件目录下会多出一个.vscode文件夹,包含两个配置文件。(launch.json,tasks.json)
至此,配置大功告成,接下来就可以加断点调试代码。F5是开始运行,F11是单步调试,F10是单步跳过。
5. 配置 SSH 远程连接(可选)(未完成版)
前篇已设置默认为root用户,故所有命令省略sudo
,非root用户需在命令前自行添加sudo
如果你需要通过 SSH 远程访问 WSL,可以按照以下步骤配置:
-
安装 SSH 服务器:
先卸载ssh服务再重装。卸载:sudo apt remove openssh-server
sudo apt install openssh-server
-
编辑 SSH 配置文件
/etc/ssh/sshd_config
,修改以下内容:-
打开文件
sudo vim /etc/ssh/sshd_config
-
将
Port
改为2222
(或其他端口)。Port 2222 ListenAddress 0.0.0.0
取消注释并修改为所需的端口和地址。
-
将
PasswordAuthentication
改为yes
。PasswordAuthentication yes
找到以下行:
#PasswordAuthentication yes
取消注释并设置为
yes
,以允许使用用户名和密码登录。 -
将
PermitRootLogin
改为yes
。PermitRootLogin yes
找到以下行:
#PermitRootLogin prohibit-password
取消注释并将其修改为
yes
,以允许 root 用户远程登录。 -
保存并退出
如果您使用的是
vim
,按Esc
键退出编辑模式,然后输入:wq
(保存并退出)并按Enter
。在
vim
中: - 按
i
进入插入模式,进行编辑。 - 编辑完成后,按
Esc
退出插入模式。 - 输入
:wq
,然后按Enter
保存并退出。
-
-
重启 SSH 服务:
sudo service ssh restart
-
(从这里开始没有继续往下做了)在 Windows 上设置端口转发:
netsh interface portproxy add v4tov4 listenaddress=0.0.0.0 listenport=2222 connectaddress=127.0.0.1 connectport=2222
-
允许防火墙通过端口
2222
:netsh advfirewall firewall add rule name=WSL2 dir=in action=allow protocol=TCP localport=2222
-
使用 SSH 客户端连接 WSL:
ssh westone@localhost -p 2222