WSL2:开发环境安装

写在前面

一、安装WSL2

  • 以管理员身份运行CMD,执行以下命令即可WSL和Linux的默认Ubuntu发行版:
wsl --install
  • 等待安装完成后,重启计算机即可,输入以下命令可以查看安装的WSL版本信息;

查看版本

二、初始化WSL2上的Ubuntu

  • 打开开始菜单,点击Ubuntu,即可调出Ubuntu系统的终端(就像一个远程服务器一样!):

启动Ubuntu终端

  • 设置用户名和密码如下:
    设置用户名和密码

  • 设置完成后,在CMD中执行以下命令可以查看已经安装的Lunix发行版本:

查看Linux版本

  • 注意重启电脑后,需要打开一次Ubuntu终端以启动Ubuntu;
  • 其他的一些错误解决如下:

1. Error: 0x80040326 Error code: Wsl/Service/0x80040326

三、安装跨平台的终端

  • 这个主要是因为CMD只能执行Windows的命令,而WSL对应的Linux发行版的命令需要用别的终端执行,就会显得比较混乱,因此可以下载Windows终端软件,对这些不同的终端作统一的管理(界面也好看一点);
  • Windows终端的下载地址:https://apps.microsoft.com/store/detail/windows-terminal-preview/9N8G5RFZ9XK3?hl=zh-cn&gl=cn
  • 安装后,可以在Windows终端中切换不同的控制台终端,比如CMD、PowerShell和Ubuntu等:

Windows终端

  • 另外,将PowerShell升级到Powershell7以上,因为Windows自带的版本比较低:

升级PowerShell

四、安装远程服务器的必要工具

  • 从这一步开始,配置的过程就和用虚拟机或者真正的远程服务器类似了;
  • 一些对应关系如下:
    • 远程服务器:WSL下的Ubuntu;
    • 远程路由器:Windows;
    • 本地开发/客户端:Windows;

1. 替换源

  • 执行以下命令打开源配置文件:
sudo vim /etc/apt/sources.list
  • 在里面增加源连接如下:
# 默认注释了源码镜像以提高 apt update 速度,如有需要可自行取消注释
deb https://mirrors.tuna.tsinghua.edu.cn/ubuntu/ jammy main restricted universe multiverse
# deb-src 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-src 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-src 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
# deb-src https://mirrors.tuna.tsinghua.edu.cn/ubuntu/ jammy-security main restricted universe multiverse

# 预发布软件源,不建议启用
# deb https://mirrors.tuna.tsinghua.edu.cn/ubuntu/ jammy-proposed main restricted universe multiverse
# deb-src https://mirrors.tuna.tsinghua.edu.cn/ubuntu/ jammy-proposed main restricted universe multiverse

2. 安装必要工具

  • 执行以下命令安装必要工具:
sudo apt update && sudo apt upgrade -y
sudo apt install curl wget git ca-certificates build-essential net-tools -y
sudo apt install g++ gdb make ninja-build rsync zip -y

五、配置远程服务器的SSH

1. 在服务器上安装SSH服务

  • 在Ubuntu上执行以下命令以重新安装SSH服务:
# 卸载原有的ssh
sudo apt remove openssh-server
# 重新安装ssh
sudo apt install openssh-server -y
# 启动ssh服务
sudo service ssh start
# 查看ssh服务状态
sudo service ssh status
# 设置ssh开机自启动
sudo systemctl enable ssh
  • 查看服务器上的ip地址:
    查看ip

  • 然后就可以在本地通过以下命令连接服务器了:

ssh连接

  • 注意重启服务器之后还需要重启SSH服务,这样本地才能通过SSH远程连接;

2. 固定服务器的ip地址

  • 这里用到的是端口转发技术:

    • 端口转发:将路由器的某个端口和内网的某个ip对应起来,外部的消息就可以由该端口转发给内网的ip,只能单向转发;
    • 端口映射:将路由器的某个端口和内网的某个ip映射起来,外部的消息可以由该端口发给内网的ip,内网的ip也可以经该端口向外界发送消息,是双向映射;
  • 服务器中打开ssh配置文件:

sudo vim /etc/ssh/sshd_config
  • 设置端口转发,转发的端口是2000:

端口转发

  • 这里相当于是将本地电脑(充当服务器)的端口2000和WSL(充当服务器)的ssh对应起来,访问服务器的端口号2000就能转发到WSL的ssh服务;

  • 执行以下命令使服务器上的修改生效:

# 打开防火墙的2000端口
sudo ufw allow 2000
# 重启ssh服务
sudo service ssh restart
# 重启防火墙
sudo ufw reload
  • 以管理员身份在PowerShell配置端口转换:
netsh interface portproxy add v4tov4 listenport=2100 listenaddress=0.0.0.0 connectport=2000 connectaddress=localhost

配置端口转换

  • 这里相当于是将本地电脑(充当路由器)的端口2100监听到的消息转发到本地电脑(充当服务器)的端口2000上;
  • 用以下命令查看本地电脑的2100端口的监听:
netstat -ano | findstr :2100

打开端口监听

  • 如果执行上述命令没有返回结果,则还需要在服务中启动IP Helper服务:

打开服务

  • 最后,就可以通过访问本地电脑(路由器)的2100端口访问服务器的ssh服务:

访问ssh

六、使用VS Code管理远程文件系统

1. 安装插件

  • 在VS Code的扩展中搜索安装remote development插件:

安装插件

  • 如果安装失败,记得检查VS Code是否已升级到最新版本;

2. 新增SSH配置

  • 安装后,会在左边栏出现远程资源管理器
  • 打开远程资源管理器,选择远程,点击下方的SSH栏右方的“+”按钮;
  • 在弹出的命令行中输入SSH连接命令;

输入ssh命令

  • 选择要更新的配置文件,这里选第一个;
    选择更新的配置文件
  • 这样就在配置文件中新增了一个SSH远程主机连接配置;

3. 连接远程主机

  • 点击左下角的绿色按钮,打开远程窗口:

打开远程窗口

  • 在弹出的选项中选择Connect to Host

选择连接到主机

  • 选择刚刚新建的远程主机地址:

选择远程主机配置

  • 当然这里也可以直接输入user@host格式的远程主机地址;
  • 在弹出窗口的上方命令行中输入密码,即可连接远程主机的文件系统:

输入密码

  • 选择Open Folder,在上方命令行中选择要打开的文件夹(通常选择根目录):
    选择打开的文件夹

  • 然后,就可以在左方看到该文件夹下的所有文件,而且可以很方便地查看和编辑文件中的内容:

查看和编辑文件

七、使用VS进行远程开发

1. 安装所需的开发包

  • 控制面板->程序->程序和功能->卸载或更改程序中,找到安装的VS软件,右键更改调出VS安装器;

调出安装器

  • 勾选以下安装包安装即可;

勾选安装包

勾选安装包

2. 创建新项目

  • 安装完成后,创建一个Linux的C++项目:

选择项目

创建项目

3. 配置远程连接

  • 打开工具->选项,配置远程连接:

配置远程连接

连接到远程主机

  • 打开项目->xxx属性->常规->平台工具集,选择WSL2 GCC Toolset

4. 编写代码和运行程序

  • 新建一个.cpp文件,然后点击GDB调试程序,即可将源代码迁移至服务器并在服务器上编译该程序,最后在控制台中执行;
  • VS的Linux 控制台可以在调试->Linux控制台中调出;

运行程序

  • 然后在服务器的/projects路径下,能够找到创建的TinyWebserver项目,里面有源代码、可重定位目标文件.o以及可执行目标文件.out

服务器上的生成文件

5. 创建文件夹

  • 通过创建文件夹可以分类管理用于不同用途的代码文件;
  • 点击解决方案资源管理器面板的右上角的显示所有文件按钮,可以显示文件资源管理器中的目录结构;

显示所有文件

  • 然后右键添加就可以创建新的文件夹了;
### WSL Ubuntu 设置共享文件夹教程 #### 安装 Samba OpenSSH Server 为了实现 Windows WSL 中的 Ubuntu 文件共享,需要先安装 `Samba` `OpenSSH Server` 工具。这些工具允许通过网络协议访问共享文件夹。 以下是具体的配置方法: 1. **更新包管理器** 首先,在终端中运行以下命令来更新软件源列表并升级现有包: ```bash sudo apt update && sudo apt upgrade -y ``` 2. **安装必要的服务** 接下来,安装 `samba` `openssh-server` 来支持文件共享功能: ```bash sudo apt-get install samba openssh-server ``` 此操作会下载并安装所需的依赖项[^2]。 --- #### 创建共享目录 在完成上述步骤之后,可以创建一个用于共享的目录,并对其进行权限设置。 1. **新建共享文件夹** 使用以下命令创建一个新的共享文件夹: ```bash sudo mkdir /mnt/share ``` 2. **更改所有权权限** 将该文件夹的所有权赋予当前用户,并调整其读写权限以便其他设备能够访问它: ```bash sudo chown nobody:nogroup /mnt/share sudo chmod 777 /mnt/share ``` --- #### 编辑 Samba 配置文件 为了让 Windows 能够识别这个新建立起来的共享区域,还需要修改 Samba 的配置文件 `/etc/samba/smb.conf`。 1. 打开配置文件编辑模式: ```bash sudo nano /etc/samba/smb.conf ``` 2. 添加如下内容到文件末尾定义新的共享资源部分: ```ini [shared] path = /mnt/share available = yes valid users = your_username_here read only = no browsable = yes public = yes writable = yes ``` 替换其中的 `your_username_here` 字段为你实际使用的用户名。 3. 保存退出后重启 Samba 服务使改动生效: ```bash sudo service smbd restart ``` --- #### 测试连接 最后一步就是验证从Windows端能否成功访问刚刚设定好的Ubuntu下的共享资料库了。 可以通过在网络邻居里输入地址或者利用映射驱动盘的方式来进行尝试性的链接测试。如果一切正常的话,则说明整个流程顺利完成! ```plaintext \\localhost\shared ``` 以上便是基于WSL环境当中针对Ubuntu系统实施跨平台间资源共享的一个简易指南。 ---
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值