模块 0 · 开机就绪:开发环境与 Linux 急救包(细纲 · 6 集)
目标:把"连 Ubuntu 都没装过"的学员带到能流畅使用终端和 VS Code。
前置:一台开启虚拟化的 Windows 10/11 电脑(无需预装 Linux)。
产出包:code/m0_setup/(check_env.sh+practice_python/);学员侧练习目录~/dev/practice/。
版本钉死:Ubuntu 24.04 LTS(Noble) · Python 3.12 · WSL2 · 本模块不出现 ROS 概念。
0.1 课程导学:学完你能做出什么
| 字段 | 内容 |
|---|---|
| 本集目标 | 建立预期:知道学完后能做出什么、要准备什么、版本锁死在哪 |
| 开场演示 | 播放最终项目录屏:Gazebo Harmonic 里键盘遥控小车送货,RViz2 同步显示 |
| 知识点 | ① 本课终点="仿真小车送货"综合项目 ② 学习地图:环境→通信→工具→建模仿真→项目 ③ ROS2=通信中间件+工具+生态,不是"装一个软件" ④ 版本卡:Ubuntu 24.04 + ROS2 Jazzy + Python 3.12 |
| 跟做步骤 | 1 不用终端;对照大纲"课程地图"逐格讲 10 个模块 2 放最终项目录屏,指认:小车、目标点、激光、TF 3 展示版本卡一页:Ubuntu 24.04 / Jazzy / Python 3.12 / WSL2 4 说明配套:讲义、小作业、报错速查、 CONTRACT.md |
| 关键命令 | 无终端操作(纯讲解);记住版本卡三元组:Ubuntu 24.04 / Python 3.12 / 后续 ROS2 Jazzy |
| 常见坑 | ① 把 ROS2 当成装完就有界面的软件 → 它是开发框架,界面要自己配 ② 一上来想学 Nav2/机械臂 → 本课先打好通信与仿真底子 ③ 跟着旧教程装 Humble/Foxy → 全课只认 24.04 + Jazzy + 3.12 |
| 预期输出 | 学员能口头说出最终项目长什么样、三个锁定版本是什么 |
| 小作业 | 写 3 句话:我学完想做出什么 / 我电脑是什么系统 / 我每周能投入几小时 |
| 下集预告 | 下集从零把 Ubuntu 24.04 装进你的 Windows |
0.2 安装 Ubuntu 24.04(WSL2)(约 20 分钟,安装类)
| 字段 | 内容 |
|---|---|
| 本集目标 | 装好 WSL2 + Ubuntu 24.04,wsl -l -v 显示 VERSION 2,WSLg 能弹窗 |
| 开场演示 | Windows 桌面上弹出 xeyes 两只小眼睛窗口(Linux GUI 跑在 Windows 里) |
| 知识点 | ① WSL2 与 WSL1 的差别(真 Linux 内核)② 发行版代号 noble ③ .wslconfig 限制内存/CPU ④ WSLg 图形转发 ⑤ Windows 侧命令 vs Ubuntu 侧命令要分清 |
| 跟做步骤 | 1 Windows 开始菜单搜 PowerShell → 右键"以管理员身份运行" 2 安装: wsl --install -d Ubuntu-24.043 按提示重启电脑;重启后自动弹出 Ubuntu 窗口,设置 UNIX 用户名/密码(建议英文用户名) 4 回到 Windows PowerShell 验证: wsl -l -v(NAME=Ubuntu-24.04,VERSION=2)5 若 VERSION 不是 2: wsl --set-version Ubuntu-24.04 2;设默认:wsl --set-default-version 26 在 Ubuntu 终端确认系统: lsb_release -a(应含 Ubuntu 24.04 / noble)7 编辑 Windows 用户目录下的 .wslconfig(如 C:\Users\<你>\.wslconfig)限制资源:[wsl2] 下写 memory=4GB、processors=4,然后 wsl --shutdown 再进8 WSLg 验证: sudo apt update && sudo apt install -y x11-apps && xeyes |
| 关键命令 | wsl --install -d Ubuntu-24.04、wsl -l -v、wsl --set-version Ubuntu-24.04 2、wsl --set-default-version 2、wsl --update、lsb_release -a、xeyes |
| 常见坑 | ① WSL1/2 搞混:wsl -l -v 的 VERSION 列是 1 → 执行 wsl --set-version Ubuntu-24.04 2 转换 ② WSLg 黑窗/无窗口:先 wsl --update,确认 Windows 10 21H2+ 或 Windows 11;虚拟化未开进 BIOS 打开 ③ 在 Windows PowerShell 里敲 Linux 命令报"不是内部或外部命令"→ 先进 Ubuntu 终端 ④ 中文/特殊字符用户名导致路径乱码 → 尽量用英文用户名 |
| 预期输出 | wsl -l -v 显示 Ubuntu-24.04 / Running / 2;Ubuntu 终端 lsb_release -a 含 24.04;xeyes 弹出小眼睛窗口 |
| 小作业 | 截图 wsl -l -v 与 xeyes;关掉 Ubuntu 窗口再从开始菜单打开,确认用户和文件还在 |
| 下集预告 | 系统有了,下集学会在终端里活下来 |
0.3 Linux 命令行急救包
| 字段 | 内容 |
|---|---|
| 本集目标 | 会用目录、文件、权限、进程、管道、sudo 完成日常操作,不再怕黑窗口 |
| 开场演示 | 一个终端 30 秒连招:建目录 → 写文件 → 看权限 → 查进程 → 杀掉卡住的进程 |
| 知识点 | ① / 根目录与 ~ 家目录 ② 权限 rwx 与 chmod ③ sudo 什么时候该用 ④ 管道 ` |
| 跟做步骤 | 1 打开终端(Ctrl+Alt+T,或 Windows Terminal → Ubuntu) 2 认位置: pwd、ls -la、cd ~、pwd3 建练习区: mkdir -p ~/dev/practice && cd ~/dev/practice4 写文件: echo "hello linux" > hello.txt、cat hello.txt、echo "line2" >> hello.txt5 看权限: ls -l hello.txt、chmod +x hello.txt、再 ls -l 看多了 x6 管道:`ls -l |
| 关键命令 | pwd、ls -la、cd、mkdir -p、rm、cat、echo >、echo >>、chmod +x、grep、ps aux、kill、sudo |
| 常见坑 | ① / 与 ~ 混用:cd dev 会报 bash: cd: dev: No such file or directory → 写全 ~/dev 或先 pwd 确认位置 ② rm -rf 误删家目录 → 先 ls 看清再删;练习时删具体文件名 ③ sudo 乱用/密码盲打不回显:输密码时屏幕没字是正常的,输完回车 ④ 文件名带空格没加引号:cat my file.txt 会当成两个文件 → cat "my file.txt" |
| 预期输出 | ~/dev/practice/ 存在且有 hello.txt(两行内容);ls -l 能读出 rwx;tree ~/dev 显示目录树 |
| 小作业 | 不查笔记:在 ~/dev/practice 下建 day1/hello.txt,把内容读出来,并用管道找出名字带 txt 的文件 |
| 下集预告 | 会走路了,下集让 apt 安装不再卡成 PPT |
0.4 apt、软件源与国内镜像
| 字段 | 内容 |
|---|---|
| 本集目标 | 把 apt 源换成国内镜像(noble),apt update/install 流畅不超时 |
| 开场演示 | 对比换源前后 sudo apt install tree 的下载速度(一个龟速一个秒下) |
| 知识点 | ① apt 是 Ubuntu 的包管理器 ② 源配置在 /etc/apt/sources.list.d/ ③ Ubuntu 24.04 对应代号 noble,源里不能写成 jammy ④ 改配置先备份 ⑤ apt update 刷新索引 vs apt upgrade 升级已装包 |
| 跟做步骤 | 1 确认版本:lsb_release -a(noble)2 备份原配置: sudo cp /etc/apt/sources.list.d/ubuntu.sources /etc/apt/sources.list.d/ubuntu.sources.bak3 查看原文件: cat /etc/apt/sources.list.d/ubuntu.sources4 用 VS Code 或 nano 编辑,把下载源改成国内镜像(清华/阿里/中科大),确认 Suites 一行是 noble、noble-updates、noble-security5 刷新索引: sudo apt update(应全部来自镜像域名,无 Failed)6 试装: sudo apt install -y tree htop vim7 验证: tree --version、apt policy tree |
| 关键命令 | sudo apt update、sudo apt upgrade -y、sudo apt install -y <包名>、apt search、apt policy、sudo cp ... .bak |
| 常见坑 | ① 源与 24.04 不匹配:Suite 写成 jammy/22.04 → apt update 报 404 Not Found 或依赖错乱 → 全部改成 noble ② 没 update 直接 install → Unable to locate package → 先 sudo apt update ③ 改坏 ubuntu.sources 进不了 apt → 用 .bak 覆盖回去 ④ 复制镜像站配置时把整段 Sources 拼错格式 → 保持与原文件相同的 Types/URIs/Suites/Components 结构 |
| 预期输出 | sudo apt update 全部 Hit/Get,域名是所选镜像站;tree、htop 安装成功并能运行 |
| 小作业 | 换成你常用镜像站,安装 htop 并运行一次(按 q 退出) |
| 下集预告 | 软件装得动了,下集配一个舒服的写代码环境 |
0.5 VS Code + WSL + 中文
| 字段 | 内容 |
|---|---|
| 本集目标 | Windows VS Code 经 WSL 扩展连进 Ubuntu,Python 3.12 插件可用,界面中文 |
| 开场演示 | 左侧文件树打开 ~/dev/practice,右侧 Python 文件点"运行"终端打印结果 |
| 知识点 | ① VS Code 装在 Windows,代码与终端在 WSL ② Remote - WSL 扩展是桥梁 ③ Python 扩展要装到 WSL 侧 ④ Chinese 语言包只影响界面 ⑤ VS Code 里的终端就是 Ubuntu bash |
| 跟做步骤 | 1 Windows 侧下载并安装 VS Code(code.visualstudio.com) 2 扩展商店安装 WSL( ms-vscode-remote.remote-wsl)3 打开 Ubuntu 终端,执行 code .(或 VS Code 左下角 → Connect to WSL)4 在 WSL 窗口里再装扩展:Python( ms-python.python)、Chinese (Simplified) Language Pack5 确认终端是 Linux: uname -a(含 Linux)、python3 --version(3.12.x)6 新建文件 ~/dev/practice/hello.py,写一行 print("hello vscode"),右上角运行7 重启 VS Code 使中文生效 |
| 关键命令 | code .、uname -a、python3 --version |
| 关键文件 | ~/dev/practice/hello.py |
| 常见坑 | ① 没走 WSL 远程:标题栏没有 [WSL: Ubuntu-24.04],终端是 PowerShell、路径是 C:\... → 用 code . 从 Ubuntu 终端打开 ② 插件装在 Windows 侧导致 Python 扩展找不到解释器 → 在 WSL 窗口的扩展页搜 Python,确认显示"Install in WSL: Ubuntu-24.04" ③ 直接在 Windows 资源管理器改 WSL 文件(\\wsl$\...)偶尔不同步 → 统一在 VS Code WSL 窗口里改 |
| 预期输出 | VS Code 标题栏含 [WSL: Ubuntu-24.04];终端 uname -a 是 Linux;python3 --version 为 3.12.x;hello.py 运行打印 hello vscode |
| 小作业 | 用 VS Code 打开 ~/dev/practice,写一个打印当前时间的脚本并跑通(本模块主作业) |
| 下集预告 | 环境舒服了,下集用 Python 3.12 写第一个"机器人"小脚本 |
0.6 Python 3.12 快速上手
| 字段 | 内容 |
|---|---|
| 本集目标 | 会写类、异常、主入口,跑通 MiniRobot 小脚本,为 rclpy 节点打底 |
| 开场演示 | 运行 mini_robot.py:电量从 100 递减,移动报数,没电时抛出异常并被优雅捕获 |
| 知识点 | ① 只用 python3(3.12.x),不用 python ② 缩进即语法(4 空格)③ class 与 self ④ try/except 处理异常 ⑤ if __name__ == '__main__': 入口 ⑥ 本课不用 conda/pyenv,系统 Python 3.12 足够 |
| 跟做步骤 | 1 mkdir -p ~/dev/practice && cd ~/dev/practice2 VS Code 新建 mini_robot.py,文件头写 3 行中文注释(用途/作者/日期)3 定义 MiniRobot 类:__init__ 电量 100、move() 前进并扣电、电量 < 10 时 raise RuntimeError("电量不足")4 写 main():循环调用 move(),try/except 捕获并打印友好提示5 运行: python3 mini_robot.py6 故意把一行改成 Tab 缩进,再运行看 IndentationError,改回 4 空格 |
| 关键命令 | python3 --version、python3 mini_robot.py |
| 关键文件 | ~/dev/practice/mini_robot.py(可对照 code/m0_setup/practice_python/mini_robot.py) |
| 常见坑 | ① Tab 与空格混用:IndentationError: inconsistent use of tabs and spaces in indentation → VS Code 设置 Tab=4 空格,全文件统一 ② 用 python 而不是 python3:python: command not found 或跑成旧版本 → 永远 python3 ③ 以为必须上 conda/venv:本课系统 Python 3.12 即可,混用环境反而找不到包 ④ 用了中文引号/冒号导致 SyntaxError → 标点全部用英文 |
| 预期输出 | 终端依次打印电量 100→…→低于阈值;捕获到"电量不足"并正常退出;python3 --version 为 3.12.x |
| 小作业 | 给 MiniRobot 加 turn_left() 方法并在 main() 里调用一次(5 分钟内) |
| 下集预告 | 进入模块 1:安装 ROS2 Jazzy,让真正的机器人软件跑起来 |
本模块代码演进
| 集 | 对 code/ / 学员侧的改动 |
|---|---|
| 0.1 | 无代码;发版本卡与课程地图 |
| 0.2–0.4 | 环境侧操作(WSL / Ubuntu / apt),无仓库代码 |
| 0.5 | 学员侧建 ~/dev/practice/hello.py |
| 0.6 | 对照/复制 code/m0_setup/practice_python/mini_robot.py 到 ~/dev/practice/mini_robot.py 并改造 |
| 模块末 | 跑 code/m0_setup/check_env.sh:本模块只看"Ubuntu 24.04 / Python 3.12"两项;ROS/Gazebo 项留到模块 1、7 装完再全绿 |
配套讲义:
讲义/模块0-开机就绪/01–06。
配套代码:code/m0_setup/(check_env.sh、practice_python/)。
学员侧统一练习路径:~/dev/practice/(模块 1 起工作空间改为~/ros2_ws)。

浙公网安备 33010602011771号