Linux拓展之目录结构

关于根目录 / 下各文件夹(使用 ls / 命令查看)说明如下:

在这里插入图片描述

  • /bin:是binary 的缩写,该目录下存放着最常用的命令。
  • sbins 是 super user 的意思,即该目录下存放的是系统管理员使用的系统管理程序。
  • /home:存放普通用户的主(家)目录,在 Linux 中每个用户都有一个自己的目录,一般该目录名就是以用户的用户名命名的,如 zhangsan 的家目录就是 /home/zhangsan
  • /root:该目录为超级管理员 root 用户的主(家)目录。
  • /lib:系统开机所需要最基本的动态连接共享库,其作用类似于 Windows 里的 DLL 文件。几乎所有的应用程序都需要用到这些共享库。
  • /host+found:这个目录一般为空,当系统非法关机后,会存放一些文件。
  • /etc:存放着系统管理所需要的各种配置文件,如 /etc/profile/etc/passwd 等。
  • /usr:是 unix shared resources(共享资源)的缩写,用户的很多应用程序和文件都放在这个目录下,类似于 Windows 系统下的 Program Files 文件夹。
  • /boot:存放的是启动 Linux 时使用的一些核心文件,包括一些链接文件及镜像文件。
  • /proc:是 processes(进程)的缩写,该目录是一个虚拟的目录,是系统内存的映射,可以通过直接访问这个目录获取系统的信息。
  • /srv:是 service 的缩写,该目录下存放着一些服务启动之后需要提取的数据。
  • /sys:存储着文件系统的信息。
  • /tmp:是 temporary(临时) 的缩写,该目录用来存放一些临时文件的。
  • /dev:是 device(设备)的缩写,类似于 Windows 系统的设备管理器,存储着所有的硬件,以文件的形式。
  • /media:系统会自动识别一些设备,如 U 盘、光驱等,当识别后,会把识别的设备挂载到该目录下。
  • /mnt:该目录用来临时挂载别的文件系统,如 U 盘、硬盘、光盘等。可以将外部的存储设备挂载在该目录下,然后进入到该目录下就可以查看里面的内容了。
  • /opt:是 optional(可选)的缩写,该目录用来给系统额外安装第三方软件的。如安装 MySQ 等。
  • /var:该目录存放着不断扩充的东西,习惯将那些经常修改的文件放在该目录下,包括各种日志文件。

除了上面在根目录 / 下的一些目录外,还有一些目录可以介绍:

  • /usr 目录,该目录用于存储系统软件资源,软件默认是安装在该目录下的。可以通过 ls /usr 命令查看该目录下的内容:

在这里插入图片描述

/usr 子目录作用
/usr/bin/存放系统命令,普通用户和超级用户都可以执行。这些命令和系统启动无关,在单用户模式下不能执行
/usr/sbin/存放根文件系统不必要的系统管理命令,如多数服务程序,只有 root 可以使用
/usr/lib/应用程序调用的函数库保存位置
/usr/local/手工安装的软件保存位置。我们一般建议源码包软件安装在这个位置
/usr/share/应用程序的资源文件保存位置,如帮助文档、说明文档和字体目录
/usr/src/源码包保存位置。我们手工下载的源码包和内核源码包都可以保存到这里
/usr/includeC/C++ 等编程语言头文件的放置目录
  • /var 目录用于存储动态数据,例如缓存、日志文件、软件运行过程中产生的文件等。可以通过 ls /var 命令查看该目录内容。

在这里插入图片描述

/var 子目录作用
/var/lib/程序运行中需要调用或改变的数据保存位置。如 MySQL 的数据库保存在 /var/lib/mysql/ 目录中
/var/log/登陆文件放置的目录,其中所包含比较重要的文件如 /var/log/messages, /var/log/wtmp 等
/var/run/一些服务和程序运行后,它们的 PID(进程 ID)保存位置
/var/nis和/var/ypNIS 服务机制所使用的目录,nis 主要记录所有网络中每一个 client 的连接信息;yp 是 linux 的 nis 服务的日志文件存放的目录
/var/tmp一些应用程序在安装或执行时,需要在重启后使用的某些文件,此目录能将该类文件暂时存放起来,完成后再行删除
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
Linux中,可以使用i2c-gpio驱动来实现I2C总线的GPIO扩展。这种方式可以将普通的GPIO引脚转换为I2C总线的SDA和SCL信号。 要使用i2c-gpio驱动,首先需要在设备树中添加相应的配置。设备树是一种描述硬件设备及其连接关系的数据结构,通过修改设备树可以配置内核驱动。 以下是一个示例设备树节点的配置: ``` i2c-gpio { compatible = "i2c-gpio"; gpios = <&gpiochip0 23 GPIO_ACTIVE_HIGH>, <&gpiochip0 24 GPIO_ACTIVE_HIGH>; i2c-gpio,delay-us = <5>; i2c-gpio,sda-open-drain; }; ``` 在这个示例中,我们将GPIO 23和GPIO 24配置为I2C总线的SDA和SCL信号。`i2c-gpio,delay-us`属性定义了SDA和SCL之间的延迟时间,`i2c-gpio,sda-open-drain`属性表示SDA引脚是开漏输出。 接下来,需要编译并加载i2c-gpio驱动模块。可以通过以下命令编译内核模块: ``` $ make modules_prepare $ make M=drivers/i2c/busses ``` 加载驱动模块: ``` $ insmod drivers/i2c/busses/i2c-gpio.ko ``` 加载成功后,你应该可以在`/dev`目录下看到相应的I2C适配器设备节点,例如`/dev/i2c-0`。 现在,你就可以使用标准的I2C工具,如`i2c-tools`来与连接到GPIO的I2C设备进行通信了。例如,可以使用`i2cdetect`命令扫描设备: ``` $ i2cdetect -y 0 ``` 这样就可以发现在I2C总线上是否连接了设备。 需要注意的是,使用i2c-gpio驱动进行GPIO扩展可能会导致通信速度较慢,因为GPIO的切换速度相比硬件I2C总线较慢。此外,确保正确连接GPIO引脚,并根据实际情况进行相应的设备树配置。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值