当前位置: 首页 > news >正文

【Linux驱动开发 ---- 1.1_Linux 基础操作入门】

Linux驱动开发 ---- 1.1_Linux 基础操作入门

目录

  • Linux驱动开发 ---- 1.1_Linux 基础操作入门
    • **学前预览**
    • **1. Linux 目录结构概述**
    • **2. 常用命令**
      • **(1)文件与目录操作**
    • 在这里插入图片描述
      • **(2)文件权限管理**
      • **(3)进程管理**
    • **3. `procfs` 和 `sysfs` 介绍**
      • **(1)`/proc` 目录**
      • **(2)`/sys` 目录**
    • **4. Shell 脚本基础**
    • **5. 总结与作业**

学前预览

目标:熟悉 Linux 基本操作,为后续驱动开发奠定基础。
重点

  • Linux 常用命令:lscdchmodpstopgrepfind 等。
  • 进程管理与系统监控:pstophtopkillnice 等。
  • 文件系统结构:/etc/var/dev/sys/proc 等。
  • 了解 procfssysfs 的作用。

1. Linux 目录结构概述

Linux 采用 树状结构 的文件系统,主要目录如下:

目录说明
/根目录,所有文件和目录的起点
/bin二进制可执行文件,包含常用命令 (ls, cp, mv 等)
/etc系统配置文件 (passwd, fstab 等)
/home用户目录 (/home/your_username)
/var变量数据 (日志 /var/log/, 进程 /var/run/)
/dev设备文件 (如 /dev/sda1, /dev/ttyUSB0)
/proc内核和进程信息 (虚拟文件系统)
/sys设备驱动和硬件信息

实践任务

ls /
ls /proc
cat /proc/cpuinfo    # 查看 CPU 信息
cat /proc/meminfo    # 查看内存信息
ls /sys/class        # 观察设备分类

2. 常用命令

(1)文件与目录操作

ls -al            # 列出所有文件(含隐藏文件)
cd /etc           # 进入 /etc 目录
pwd               # 显示当前路径
mkdir test_dir    # 创建目录
rm -rf test_dir   # 删除目录

案例:创建一个 driver_project 目录,并在其中创建 srcdocs 子目录:

mkdir -p ~/driver_project/src ~/driver_project/docs
ls -R ~/driver_project  # 递归列出结构

在这里插入图片描述

(2)文件权限管理

chmod 755 my_script.sh  # 赋予可执行权限
chown root:root myfile  # 更改文件所属用户和组

案例:让脚本 test.sh 仅当前用户可执行:

chmod 700 test.sh
ls -l test.sh  # 确认权限

(3)进程管理

ps aux        # 显示所有进程
top           # 实时监视系统进程
kill -9 PID   # 强制终止进程

案例:查找并终止 vim 进程:

ps aux | grep vim
kill -9 <PID>

3. procfssysfs 介绍

(1)/proc 目录

  • /proc/cpuinfo —— 查看 CPU 信息。
  • /proc/meminfo —— 查看内存信息。
  • /proc/interrupts —— 查看中断信息(与驱动相关)。
  • /proc/modules —— 查看已加载的内核模块。

案例:获取当前系统的进程信息:

cat /proc/uptime
cat /proc/loadavg

在这里插入图片描述

(2)/sys 目录

  • /sys/class/ —— 显示设备分类信息,如 gpio, net, tty
  • /sys/devices/ —— 存放设备相关信息,驱动开发时需要关注。

案例:查找当前加载的 USB 设备:

ls /sys/bus/usb/devices
cat /sys/bus/usb/devices/usb1/product

在这里插入图片描述


4. Shell 脚本基础

目标:学会编写简单的 Shell 脚本,提高 Linux 操作效率。

案例:写一个自动打印系统信息的脚本:

#!/bin/bash
echo "系统信息概览:"
echo "CPU 信息:"
cat /proc/cpuinfo | grep "model name" | uniq
echo "内存信息:"
cat /proc/meminfo | head -n 5

执行脚本

chmod +x system_info.sh
./system_info.sh

5. 总结与作业

今日学习回顾

  • 掌握了 Linux 目录结构。
  • 熟悉了 lscdchmodpstop 等命令。
  • 了解了 /proc/sys 的作用。
  • 编写了一个简单的 Shell 脚本。

📌 作业

  1. 编写一个 Shell 脚本 monitor.sh,每 5 秒监控 CPU 和内存使用情况:

    while true; doecho "CPU 使用率:$(top -bn1 | grep "Cpu(s)" | awk '{print $2}')%"echo "可用内存:$(free -m | awk 'NR==2{print $7}') MB"sleep 5
    done
    

    执行方式

    chmod +x monitor.sh
    ./monitor.sh
    

    在这里插入图片描述

  2. 查找 procfs 目录下,列出所有当前加载的模块 (lsmod 命令等价的方式)。
    使用 cat 命令读取 /proc/modules 文件:

    cat /proc/modules
    

    输出解释:

    • 该命令会列出当前加载的所有内核模块。
    • 每行的格式通常是:
      • 模块名:模块的名称
      • 模块大小:该模块占用的内存大小
      • 使用计数:模块当前的引用计数
      • 依赖的模块:该模块依赖的其他模块(如果有)
      • 模块的地址:模块在内存中的起始地址
        在这里插入图片描述
  3. sysfs 方式,查看系统中的所有 USB 设备,并尝试找到 产品名称
    查看所有 USB 设备的产品名称,可以编写一个循环来查看每个设备的 product 文件。例如:

    for device in /sys/bus/usb/devices/*; doif [ -f "$device/product" ]; thenecho "$(basename $device): $(cat $device/product)"fi
    done
    

    这个脚本会遍历所有设备节点,并显示每个设备的 product 信息。

    解释:
    /sys/bus/usb/devices/ 目录下的每个设备节点对应系统中的一个 USB 设备。

    每个设备节点包含许多文件,其中 product 文件存储了 USB 设备的产品名称。

    通过循环遍历该目录下的设备,读取每个设备的 product 文件,可以获取所有 USB 设备的产品名称。
    在这里插入图片描述


相关文章:

  • 苍穹外卖--添加购物车
  • Websocket 数据实时更新(消息提醒功能)异步+事件发布
  • 我是如何使用Claude Code
  • 基于NAS与内网穿透技术的远程访问架构设计及安全实现
  • 浏览器实现跨系统交互
  • 【寻找Linux的奥秘】第十章:基础文件IO(上)
  • 华为流程体系拆解系列:L1-L6分层拆解逻辑
  • CentOS 7 环境下 Visual Studio Code 安装与部署
  • 分布式系统全链路监控之一:分布式全链路监控基础概念和OpenTelemetry
  • 5.安装IK分词器
  • 鸿蒙组件通用事件开发全攻略:从基础交互到工程实践
  • 华大TAU1114-1216A00四系统GNSS定位模块,车载/穿戴/IoT全适配!-165dBm高灵敏度,定位快人一步!“
  • 基于nacos和gateway搭建微服务管理平台详细教程
  • 安宝特案例丨突破传统手术室,Vuzix AR 眼镜圆满助力全膝关节置换术
  • 【力扣 中等 C】912. 排序数组
  • 高级网络中间人攻击与加密防护机制
  • 安宝特方案丨AR破解带电配网作业困局!全方位解决方案赋能电力运维新变革
  • 日志混乱与数据不一致问题实战排查:工具协同调试记录(含克魔使用点)
  • java 数组排序算法
  • 【Linux指南】文件内容查看与文本处理
  • 电子商务网站建设心得/提高网站权重的方法
  • 网站开发工程师是什么意思/网络营销的推广手段
  • 做图客网站/富阳seo关键词优化
  • 微应用和微网站的区别/希爱力双效片副作用
  • weirdcore制作网站/自己怎么建网站
  • WordPress分类目录图标/厦门seo关键词优化代运营