嵌入式操作系统 | 常用命令Ⅰ:文件、查找与压缩
模块一 · 2 学时 · 环境:VMware + Ubuntu 20.04
一句话概述:掌握文件与目录的增删改查、内容查看、文本查找以及打包压缩常用命令,配套课堂练习与课后作业。
本节目标
- 能用 cp、mv、rm、mkdir、touch 操作文件与目录
- 会用 cat、head、tail、grep 查看和筛选文件内容
- 会用 tar 打包压缩并解压文件
一、讲解内容
1.1 知识讲解
文件操作是嵌入式开发的日常。 无论写代码、改配置还是部署程序,都要反复和文件打交道。这一课把最常用的文件命令一次讲透,后面所有课时都会用到。
几个易混淆命令。 cp 复制、mv 移动或重命名、rm 删除、mkdir 建目录、touch 创建空文件或更新时间戳。rm 删除不可恢复,谨慎加 -r 删除目录;mv 同目录内移动等价于重命名。查看大文件通常不直接 cat(会刷屏),而是用 head 看开头、tail 看结尾(tail -f 可实时跟踪日志,嵌入式查程序日志极常用)。
查找文本用到 grep。 grep "关键字" 文件 打印匹配行。grep 常与管道配合:命令 | grep 关键字 在命令输出里筛关键字,是系统排障万金油。
打包压缩用 tar。 tar 把多个文件/目录打成单个包(不加前缀 - 的常见写法如 tar -czvf)。参数含义:-c 打包、-x 解包、-z gzip 压缩、-v 显示过程、-f 指定文件名。tar -czvf 包名.tar.gz 目录 打包含压缩,tar -xzvf 包名.tar.gz 解压。
1.2 代码示例
shell
# 文件操作
mkdir -p lab/test # 递归创建目录
touch lab/readme.txt # 创建空文件
cp lab/readme.txt lab/a.txt # 复制
mv lab/a.txt lab/b.txt # 重命名(同目录移动)
rm lab/b.txt # 删除(删目录需加 -r)
# 内容查看与筛选
head -3 lab/readme.txt # 看前 3 行
tail -f /var/log/syslog # 实时跟踪日志
grep "error" /var/log/syslog # 过滤含 error 的行
# 打包压缩
tar -czvf lab.tar.gz lab # 打包压缩 lab 目录
tar -xzvf lab.tar.gz # 解压到当前目录
执行前后对比(cp 复制文件):
text
# 执行前
~/lab$ ls
readme.txt
# 执行:cp readme.txt a.txt
~/lab$ cp readme.txt a.txt
# 执行后
~/lab$ ls
a.txt readme.txt # 新增 a.txt
1.3 常见错误与排查
| 现象 | 原因 | 解决 |
|---|---|---|
rm 报 "cannot remove: Is a directory" |
直接用 rm 删目录 | rm -r 目录 递归删除 |
tar 报 "Cannot open: No such file or directory" |
目标目录不存在 | 先 mkdir 目标目录,或确认源目录路径 |
grep 查不到结果 |
关键字大小写不匹配 | 加 -i 忽略大小写:grep -i 关键字 文件 |
cat 大文件时终端刷屏刷不完 |
文件内容太多 | 改用 head / tail / less 分页查看 |
二、学生练习
本节命令速查表:
| 命令 | 作用 | 示例 |
|---|---|---|
| mkdir -p | 递归创建目录 | mkdir -p lab/test |
| touch | 创建空文件 | touch a.txt |
| cp | 复制 | cp a.txt b.txt |
| mv | 移动/重命名 | mv a.txt b.txt |
| rm -r | 删除(递归) | rm -r lab |
| head/tail | 查看头/尾 | tail -f 日志 |
| grep | 筛选行 | grep error f.log |
| tar | 打包压缩 | tar -czvf x.tar.gz dir |
| 编号 | 任务 | 提示 | 预期结果 |
|---|---|---|---|
| L3.1 | 创建目录 lab/src,并在其中建 3 个空文件 | mkdir -p lab/src 后 touch |
ls lab/src 看到 3 个文件 |
| L3.2 | 把其中 1 个文件重命名为 test.sh | mv 旧名 test.sh |
目录只剩重命名后的文件 |
| L3.3 | 查看 /var/log 下最近日志 | tail -5 /var/log/syslog |
输出最近 5 行日志 |
| L3.4 | 在日志中筛出含 "systemd" 的行 | grep systemd /var/log/syslog |
输出一列含 systemd 的行 |
| L3.5 | 把 lab 目录打包压缩再解压到新目录 | 先 tar -czvf 再 tar -xzvf |
解压后目录内容与源一致 |
三、作业
- 必做:完成 L3.1--L3.5 全部练习,保存命令执行截图;回答
rm -r与rm的区别,并说明为什么要谨慎使用rm -r - 选做:用
find找到/etc下任意.conf文件,再用cp复制到家目录;用tar对 home 下的某个目录打包,比较压缩后文件大小与源目录占用 - 提交:命令截图 + 文字说明,命名
课时03-作业截图.png
四、本节小结与下节预告
本节掌握了文件增删改查、内容查看筛选、打包压缩三类最常用命令。下节进入常用命令Ⅱ:用户权限、进程管理与网络排查,学会用命令管理系统与排查网络问题。