嵌入式操作系统 | vim 与软件管理:apt / 源码编译
模块一 · 2 学时 · 环境:VMware + Ubuntu 20.04
一句话概述:掌握 vim 编辑器基本操作与三种工作模式,以及两种软件安装方式(apt 安装与源码编译安装),配套课堂练习与课后作业。
本节目标
- 会用 vim 打开、编辑、保存文件,理解三种模式切换
- 会用 apt 搜索、安装、卸载软件
- 理解源码编译安装的一般步骤(configure / make / make install)
一、讲解内容
1.1 知识讲解
vim 是嵌入式必备编辑器。 很多嵌入式设备或服务器没有图形界面,只能用命令行编辑器,vim 是主流。它有三组模式:普通模式(按键盘是命令)、插入模式(输入文字)、命令模式(保存/退出)。进入 vim 默认是普通模式,按 i 进插入模式打字,按 Esc 回普通模式,普通模式输 :wq 保存退出、:q! 不保存退出。牢记这一组键即可入门,后面熟练后再学跳转、复制等。
apt 快速装软件。 apt 是 Ubuntu 的软件管理工具,从软件源下载安装。sudo apt install 包名 安装、sudo apt remove 包名 卸载、apt search 关键词 搜索、sudo apt update 更新源列表。日常开发绝大多数软件 apt 一键搞定。
源码编译安装。 有的软件不在源里,或嵌入式场景需要定制编译选项,就要从源码编译。编译器是 gcc :gcc 源文件.c -o 程序名 生成可执行文件。对于带构建系统的软件(多为 C 项目),一般步骤是:
shell
./configure # 1. 检测环境、生成编译配置
make # 2. 编译(调用 gcc)
sudo make install # 3. 安装到系统目录
注意 :这三个步骤要按顺序执行,make 出错时先看报错信息,常见原因是缺依赖库,用 apt 装后再重试。后续课时(如 libubox 源码编译)会再次用到这套流程。
1.2 代码示例
shell
# 软件管理
sudo apt update # 更新软件源
apt search vim # 搜索 vim 相关包
sudo apt install git -y # 安装 git
sudo apt remove git # 卸载 git
# 源码编译(以写一个 hello.c 为例)
gedit / 用 vim 创建 hello.c
gcc hello.c -o hello # 编译
./hello # 运行
# vim 基本键位(三个模式)
vim hello.c # 普通模式打开
# 按 i -> 插入模式输入内容
# 按 Esc -> 回普通模式,输入 :wq 保存退出
执行前后对比(apt 安装 tree):
text
# 执行前
$ tree
tree: command not found
# 执行:sudo apt install tree -y
$ sudo apt install tree -y
# 执行后
$ tree
. # 正常列出目录树,命令可用
1.3 常见错误与排查
| 现象 | 原因 | 解决 |
|---|---|---|
| vim 按方向键/退格出现乱码字符 | 进入了错误模式 | 按 Esc 回普通模式,用 i 进入插入模式再输入 |
| 想保存却提示 E37 或改不动 | 用 :q 但文件被修改 |
用 :wq 保存退出,或 :q! 放弃修改 |
apt install 报 "Unable to locate package" |
软件源列表没更新 | 先执行 sudo apt update |
apt install 卡住或很慢 |
源为国外源、下载慢 | 更换国内镜像源后 sudo apt update |
make 报 "No rule to make target" |
没有按顺序 configure | 按 configure → make → make install 顺序执行 |
| gcc 报 "fatal error: xxx.h: No such file" | 缺少头文件/开发库 | sudo apt install 对应开发包 后再编 |
二、学生练习
本节命令速查表:
| 命令/键位 | 作用 | 示例 |
|---|---|---|
| vim 文件 | 打开文件 | vim hello.c |
| i / Esc | 插入 / 回普通模式 | --- |
| :wq / :q! | 保存退出 / 不保存退出 | --- |
| sudo apt install | 安装软件 | sudo apt install git |
| apt search | 搜索软件 | apt search vim |
| gcc 源码 -o 程序 | 编译 | gcc hello.c -o hello |
| ./程序 | 运行当前目录程序 | ./hello |
| 编号 | 任务 | 提示 | 预期结果 |
|---|---|---|---|
| L6.1 | 用 vim 新建并编辑 hello.c,用 :wq 保存退出 | 按 i 输入代码,Esc 后输 :wq | 提示写入成功 |
| L6.2 | 用 gcc 编译并运行 | gcc hello.c -o hello && ./hello |
终端输出 Hello 内容 |
| L6.3 | 用 vim 打开 makefile 文档练习 yy 复制 / p 粘贴后保存 | 普通模式操作 | 内容变化并保存成功 |
| L6.4 | 用 apt 搜索并安装 tree 命令 | sudo apt install tree |
安装后 tree 可用 |
| L6.5 | 卸载后重新安装 tree 练习 | apt remove 再 install |
出现"已是最新版本"提示 |
三、作业
- 必做:完成 L6.1--L6.5,保存截图;回答 gcc 编译命令的含义(
gcc hello.c -o hello各部分作用),并说明再执行一次./hello为什么能运行(说明它与源码的关系) - 选做:用 vim 打开
/etc/profile观察文件结构(只读了解,不要修改);下载任意开源工具源码(如已经在源里的 echo/xx),尝试 configure / make 流程,记录过程中安装的依赖 - 提交:命令截图 + 文字回答,命名
课时06-作业截图.png
四、本节小结与下节预告
本节掌握了 vim 编辑与 apt / 源码编译两种软件安装方式,至此开发环境基础全部就绪。下节进入模块二:进程与服务管理,用 systemctl 管理系统服务与开机自启,为部署真实服务做铺垫。