03 嵌入式操作系统 | 常用命令Ⅰ:文件、查找与压缩

嵌入式操作系统 | 常用命令Ⅰ:文件、查找与压缩

模块一 · 2 学时 · 环境:VMware + Ubuntu 20.04

一句话概述:掌握文件与目录的增删改查、内容查看、文本查找以及打包压缩常用命令,配套课堂练习与课后作业。

本节目标

  1. 能用 cp、mv、rm、mkdir、touch 操作文件与目录
  2. 会用 cat、head、tail、grep 查看和筛选文件内容
  3. 会用 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

四、本节小结与下节预告

本节掌握了文件增删改查、内容查看筛选、打包压缩三类最常用命令。下节进入常用命令Ⅱ:用户权限、进程管理与网络排查,学会用命令管理系统与排查网络问题。

相关推荐
shdkfbbv3 小时前
【无标题】
linux·运维·服务器
周洲08304 小时前
STM32片内Flash读写深度详解|掉电参数保存、底层原理
linux·前端·stm32
shimly1234564 小时前
比 find + grep 更好用的 nm + addr2line
linux
迷途之人不知返4 小时前
【进程控制】-3-进程等待
linux
_upupup4 小时前
包管理器和vim
linux·服务器
一颗小树x4 小时前
NVIDIA 驱动故障排查实录:内核升级导致 nvidia-smi 失效
linux·服务器·nvidia驱动·启动失败·内核升级
_smart_boy__5 小时前
I.MX6U开发板Uboot无法ping Ubuntu问题解决方案(二)
linux·运维·ubuntu
DianSan_ERP5 小时前
多平台订单自动下载与回传的技术实现:从消息推送到状态闭环引言
java·linux·服务器·前端·网络·架构·自动化
Android系统攻城狮5 小时前
Linux Gstreamer深度解析之gst_audio_decoder_get_parse_state调用流程与实战(四十九)
linux·音视频·gstreamer音视频·gstreamer音视频进阶
~光~~5 小时前
【嵌入式Linux学习】GFP_NOIO / GFP_NOFS(Linux 内核 gfp 分配标志)
linux·运维·学习