从零到壹嵌入式Linux编程实战教程课:第 5 课:Linux 基础命令与文件系统入门

第5课 Linux基础命令与文件系统入门

文章目录

  • [第5课 Linux基础命令与文件系统入门](#第5课 Linux基础命令与文件系统入门)
    • 一、课程目标
    • [二、Linux 命令基础](#二、Linux 命令基础)
      • [1. 命令基本格式](#1. 命令基本格式)
    • 三、目录与文件管理命令
      • [1. ls --- 查看目录内容](#1. ls — 查看目录内容)
      • [2. cd --- 切换目录](#2. cd — 切换目录)
      • [3. pwd --- 显示当前路径](#3. pwd — 显示当前路径)
      • [4. mkdir --- 创建目录](#4. mkdir — 创建目录)
      • [5. rmdir --- 删除空目录](#5. rmdir — 删除空目录)
      • [6. cp --- 复制文件/目录](#6. cp — 复制文件/目录)
      • [7. mv --- 移动/重命名](#7. mv — 移动/重命名)
      • [8. rm --- 删除文件/目录](#8. rm — 删除文件/目录)
    • 四、文件内容查看与编辑
      • [1. cat --- 查看文件内容](#1. cat — 查看文件内容)
      • [2. more / less --- 分页查看](#2. more / less — 分页查看)
      • [3. head / tail --- 查看头尾](#3. head / tail — 查看头尾)
      • [4. nano --- 简单文本编辑器](#4. nano — 简单文本编辑器)
    • [五、Linux 文件系统结构](#五、Linux 文件系统结构)
      • [1. 根目录 /](#1. 根目录 /)
      • [2. 常见系统目录](#2. 常见系统目录)
      • [3. 绝对路径 vs 相对路径](#3. 绝对路径 vs 相对路径)
    • 六、文件权限与属性
      • [1. 查看权限](#1. 查看权限)
      • [2. 权限含义](#2. 权限含义)
      • [3. chmod 修改权限](#3. chmod 修改权限)
    • 七、查找与检索命令
      • [1. find --- 查找文件](#1. find — 查找文件)
      • [2. grep --- 检索内容](#2. grep — 检索内容)
    • 八、课堂练习
    • 九、课后作业
    • 十、本章总结
    • 十一、核心关键词
  • [第5课 课程回顾总结](#第5课 课程回顾总结)
  • [上一节课答案 嵌入式Linux编程实战教程 ------ 实战作业代码](#上一节课答案 嵌入式Linux编程实战教程 —— 实战作业代码)

一、课程目标

  1. 掌握 Linux 最常用基础命令,能独立完成目录、文件、权限、查询等日常操作

  2. 理解 Linux 文件系统结构,理解根目录 / 及各系统目录用途

  3. 能够使用命令进行文件查看、编辑、复制、移动、删除、查找

  4. 掌握路径、绝对路径、相对路径的区别与使用场景

  5. 具备基础 Linux 操作能力,为后续嵌入式开发打下环境基础


二、Linux 命令基础

1. 命令基本格式

Plain 复制代码
命令 [选项] [参数]
  • 命令:具体要执行的操作(ls、cd、mkdir 等)

  • 选项:调整命令行为,通常以 - 开头

  • 参数:命令操作的对象(文件、目录、路径等)

示例:

Plain 复制代码
ls -l /home

三、目录与文件管理命令

1. ls --- 查看目录内容

Plain 复制代码
ls          # 查看当前目录文件
ls -l       # 详细列表
ls -a       # 显示隐藏文件
ls -lh      # 人性化显示大小
ls /        # 查看根目录

2. cd --- 切换目录

Plain 复制代码
cd /        # 进入根目录
cd ~        # 进入家目录
cd ..       # 返回上一级
cd -        # 返回上一次目录
cd /home/user

3. pwd --- 显示当前路径

Plain 复制代码
pwd

4. mkdir --- 创建目录

Plain 复制代码
mkdir test
mkdir -p a/b/c   # 递归创建多级目录

5. rmdir --- 删除空目录

Plain 复制代码
rmdir test

6. cp --- 复制文件/目录

Plain 复制代码
cp 1.txt 2.txt
cp -r dir1 dir2   # 复制目录必须加 -r

7. mv --- 移动/重命名

Plain 复制代码
mv a.txt b.txt    # 重命名
mv file.txt /tmp  # 移动

8. rm --- 删除文件/目录

Plain 复制代码
rm file.txt
rm -rf dir        # 强制递归删除

四、文件内容查看与编辑

1. cat --- 查看文件内容

Plain 复制代码
cat file.txt

2. more / less --- 分页查看

Plain 复制代码
more file.txt
less file.txt

3. head / tail --- 查看头尾

Plain 复制代码
head -n 10 file.txt
tail -f log.txt   # 实时查看

4. nano --- 简单文本编辑器

Plain 复制代码
nano test.c
  • 保存:Ctrl+O

  • 退出:Ctrl+X


五、Linux 文件系统结构

1. 根目录 /

所有文件、目录、设备都在 / 之下。

2. 常见系统目录

  • /bin 基本命令

  • /sbin 系统管理命令

  • /etc 配置文件

  • /home 普通用户家目录

  • /root 管理员家目录

  • /lib 库文件

  • /usr 应用程序

  • /tmp 临时文件

  • /dev 设备文件

  • /proc 系统信息

3. 绝对路径 vs 相对路径

  • 绝对路径:从 / 开始,如 /home/user/file

  • 相对路径:从当前目录开始,如 ../file


六、文件权限与属性

1. 查看权限

Plain 复制代码
ls -l

2. 权限含义

  • r 读 4

  • w 写 2

  • x 执行 1

3. chmod 修改权限

Plain 复制代码
chmod 755 file.sh
chmod +x run.sh

七、查找与检索命令

1. find --- 查找文件

Plain 复制代码
find / -name "*.c"
find /home -size +1M

2. grep --- 检索内容

Plain 复制代码
grep "main" test.c
grep -r "test" /home

八、课堂练习

  1. 进入家目录,创建 embed 目录

  2. embed 中创建 1.txt,写入内容

  3. 复制 1.txt2.txt

  4. 查看文件权限并修改为 755

  5. 查找系统中所有 .conf 结尾的文件

  6. 用 grep 查找 /etc/passwd 中的 root


九、课后作业

  1. 写出 15 个基础 Linux 命令并说明用途

  2. 完整描述 Linux 根目录下 10 个系统目录作用

  3. 创建目录结构:project/src、project/doc、project/bin

  4. 在 src 中创建 main.c,写入任意代码并保存

  5. 使用 find 查找自己创建的 main.c

  6. 使用 chmod 将 main.c 权限改为 rwxr-xr--


十、本章总结

Linux 命令是嵌入式开发的基础,熟练掌握目录、文件、权限、查找等命令,能大幅提升开发效率。

Linux 文件系统采用树形结构,一切皆文件,理解目录结构是学习嵌入式 Linux 的关键。

绝对路径与相对路径、文件权限、基本编辑是高频使用内容,必须熟练。


十一、核心关键词

Linux 命令、文件系统、根目录、ls、cd、mkdir、rm、cp、mv、cat、chmod、find、grep、权限、路径


第5课 课程回顾总结

本课系统学习了Linux基础命令与文件系统结构,是嵌入式Linux开发必备的环境操作能力。课程从命令基本格式入手,重点讲解了目录与文件管理的核心命令,包括ls查看、cd切换、mkdir创建、rm删除、cp复制、mv移动等日常高频操作,同时学习了cat、more、less、nano等文件查看与编辑工具,满足基础文本编辑需求。文件系统部分重点理解Linux以/为根的树形结构,熟记bin、etc、home、root、lib、usr、tmp、dev等关键系统目录的作用,区分绝对路径与相对路径的使用场景,为后续开发环境搭建奠定基础。文件权限是Linux重要机制,掌握rwx权限含义与chmod修改方法,能正确配置程序运行权限。查找命令find与grep可快速定位文件与内容,提升开发效率。通过课堂练习与课后作业,强化命令熟练度与文件系统理解。本课所有知识均为嵌入式开发底层基础,后续交叉编译、驱动开发、系统移植都依赖这些命令操作,必须做到熟练默写、灵活使用,为后续嵌入式Linux编程实战做好充分准备。


上一节课答案 嵌入式Linux编程实战教程 ------ 实战作业代码

一、实战代码

C 复制代码
#include <stdio.h>
#include <unistd.h>

int main() {
    printf("Embedded Linux App Start\n");

    int i = 0;
    while (i < 5) {
        printf("Running... %d\n", i);
        i++;
        sleep(1);
    }

    printf("App Exit\n");
    return 0;
}

二、代码功能说明

该程序是嵌入式Linux下基础应用程序,实现简单循环打印功能。程序启动后输出启动提示,然后进入循环,每秒打印一次运行状态,共执行5次后退出。代码包含标准输入输出头文件与Linux系统调用头文件,使用printf打印信息,sleep实现延时,是嵌入式程序最典型的结构。可直接在Ubuntu上编译运行,也可通过交叉编译生成ARM架构可执行文件,下载到开发板运行,用于验证开发环境、交叉编译链、文件传输与程序执行是否正常,是嵌入式Linux入门经典示例。

三、注意事项

  1. 编译命令:gcc main.c -o run 或交叉编译 arm-linux-gnueabihf-gcc main.c -o run_arm

  2. 开发板运行需确保文件权限:chmod +x run_arm

  3. 延时函数sleep单位为秒,嵌入式中可使用usleep实现微秒级延时

  4. 交叉编译时需指定正确的交叉工具链,否则无法在ARM平台运行

  5. 程序输出可用于调试,是观察程序运行状态最直接的方式

  6. 上传开发板可使用tftp、nfs、ssh等方式,确保传输完整无损坏


相关推荐
数据存储张2 天前
第2章:基于内存的只读文件系统
文件系统·存储
ShineWinsu5 天前
对于Linux:Ext系列文件系统的解析—下
linux·面试·笔试·文件系统··ext2·挂载分区
tod1137 天前
深入解析ext2文件系统架构
linux·服务器·c++·文件系统·ext
JiMoKuangXiangQu13 天前
Linux 系统根目录的构建过程
linux·rootfs·文件系统
jianghao202517 天前
TreeSize技术解析:磁盘分析工具的工作原理
文件系统·技术解析·磁盘分析
十年编程老舅19 天前
窥探内核心脏:深入解析 proc 虚拟文件系统
linux·服务器·数据库·c++·linux内核·文件系统·读写锁
代码AC不AC2 个月前
【Linux】ext 文件系统
linux·文件系统·ext 文件系统
kyle~2 个月前
Python---watchdog文件系统监控库
开发语言·python·操作系统·文件系统
小李独爱秋2 个月前
模拟面试:不能关机的情况下 , 如果挂载目录卸载不掉应该怎么办?
linux·运维·面试·职场和发展·操作系统·文件系统