第1页:第23章Unix文件系统
本页为第23章Unix文件系统的章节封面,标示本章讲解的文件类型、特殊文件、目录结构与挂载。
第2页:本章需要解决的几个问题
- 什么是Unix文件?三种主要的文件类型是什么?
- Unix采用什么样的方式组织文件?
- Unix怎样为众多的数据存储设备提供透明的支持?
第3页:23.1什么是文件
- 文件的定义-通用的定义:有名称的数据集合。-Unix中的定义:文件是任意源,有一个名称,可以从中读取数据;或者是任意目标,有一个名称,可以从中写入数据
第4页:23.2文件类型示意图
本页为课件示意图,图中可见:Unix文件类型普通文件目录伪文件文本文件二进制文件。
第5页:23.2文件类型:伪文件-特殊文件
- 伪文件-特殊文件:又叫设备文件,是物理设备的内部设备。如打印机、键盘、显示器、磁盘驱动器、串口等都可以当作文件访问。-命名管道:能够将一个程序的输出连接到另一个程序的输入-proc文件:允许访问内核中的信息
第6页:23.3父目录和子目录
- 定义
- 目录的组织-采用树形结构,将父目录和子目录组织起来
- 父目录:包含其它目录的目录
- 子目录:父目录中包含的目录
第7页:23.4特殊文件
第8页:23.4特殊文件:查找所有的特殊文件-
- 查找所有的特殊文件-在网络上搜索“LANANA Linux设备列表”
- 特殊的一些例子
第9页:硬件特殊文件与设备文件名
硬件特殊文件与设备文件名:下表列出课件中的对应条目。
硬件特殊文件与设备文件名| 硬件 | 设备文件 |
|---|
| 软盘驱动器 | /dev/fd0 |
|---|
| 硬盘驱动器 | /dev/had |
|---|
| 硬盘驱动器:第1分区 | /dev/hda1 |
|---|
| SCSI硬盘驱动器 | /dev/sda |
|---|
| SCSI硬盘驱动器:第1分区 | /dev/sda1 |
|---|
| USB闪存卡 | /dev/sda1 |
|---|
| 打印机 | /dev/lp0 |
|---|
| USB打印机 | /dev/usb/lp0 |
|---|
第10页:终端特殊文件与设备文件名
终端特殊文件与设备文件名:下表列出课件中的对应条目。
终端特殊文件与设备文件名| 终端 | 设备文件 |
|---|
| 当前终端 | /dev/tty |
|---|
| 控制台、虚拟控制台 | /dev/tty1 |
|---|
| 伪终端 | /dev/pts/0 |
|---|
| 伪终端 | /dev/ttyp0 |
|---|
第11页:伪设备特殊文件与设备文件名
伪设备特殊文件与设备文件名:下表列出课件中的对应条目。
伪设备特殊文件与设备文件名| 伪设备 | 设备文件 |
|---|
| 放弃输出,输入不返回内容 | /dev/null |
|---|
| 放弃输出,输入返回null | /dev/zero |
|---|
| 随机数生成器 | /dev/random |
|---|
| 随机数生成器 | /dev/urandom |
|---|
第12页:23.5硬件特殊文件
- 硬件特殊文件的命名特点
- 设备名中的数字代表是设备的序号。如:/dev/fd0代表第1个软驱/dev/fd1代表第2个软驱
- 硬盘用字母代表设备的序号。如:/dev/hda代表第1个硬盘/dev/hdb代表第2个硬盘
第13页:23.6终端特殊文件:tty
- CLI单用户模式-键盘和现实充当终端,表示为/dev/tty1
- CLI多用户模式-每个登录的终端都表示为一个终端设备。如:桌面环境中使用虚拟控制台,分别表示为/dev/tty1-/dev/tty6
第14页:终端特殊文件:tty
- GUI终端仿真程序-并非真的终端,但具有终端的功能。因此称为伪终端(pseudo terminal)。-伪终端有两套命名机制:1. /dev/ttyn2. /dev/pts/n
第15页:终端特殊文件:tty:tty的其它作用
- tty的其它作用
- 使用tty程序,显示当前终端名称
- 使用/dev/tty代表当前终端
第16页:23.7伪设备特殊文件
- null文件
- 作为输入文件时,只返回eof信号
- 作为输出文件时,抛弃接收到的数据例如:update > /dev/nullcat /etc/passwd > /dev/null
第17页:23.7伪设备特殊文件:zero文件-作
- zero文件-作为输入文件时,返回null(数字0)-作为输出文件时,抛弃接收到的数据例如:dd if=/dev/zero of=temp bs 100 count=1
第18页:23.7伪设备特殊文件:random文件
- random文件和urandom文件-都可以生产随机数-random文件生成随机数时可能会有延迟,但生成的随机数不易受攻击-urandom文件则没有延迟,理论上生成的随机数更易受攻击
第19页:23.8命名管道:mkfifo
- 匿名管道-没有名称,使用时自动创建如:grep bash /etc/passwd | wc–l
- 命名管道-显式创建-管道线执行完成后,管道并不消失,直到显示删除管道-通常将之称为FIFO或队列。
第20页:命名管道:mkfifo
- 命名管道的创建mkfifo[-mmode]pipe其中:mode:chmod使用的文件模式类型pipe:管道名称
第21页:命名管道:mkfifo
- 例子$ mkfifo fifotest$ grep bash /etc/passwd> fifotest$ wc–l < fifotest$ rm fifotest
第22页:23.9 proc文件
- proc文件
- 提供一种简单途径来检查多种类型的系统信息的伪文件-proc文件都放在/proc/目录中
- 每个进程对应一个/proc/的子目录例子:获取CPU信息$ cat /proc/cupinfo
第23页:proc文件:Linux中常见的proc
- Linux中常见的proc文件相关信息proc文件进程xxx/proc/xxx/内核选项/proc/cmdlineCPU/proc/cpuinfo设备/proc/devices逻辑磁盘设备/proc/diskstates
第24页:proc文件:Linux中常见的proc
- Linux中常见的proc文件相关信息proc文件文件系统/proc/filesystems内存管理/proc/meminfo内核模块/proc/modules已挂载设备,挂载点/proc/mounts磁盘分区/proc/partitions
第25页:proc文件:Linux中常见的proc
- Linux中常见的proc文件相关信息proc文件SCSI和RAID设备/proc/scsi交换分区/proc/swaps内核运行和空闲时间/proc/uptime内核版本/proc/version物理内存大小/proc/kcore
第26页:23.10树形结构文件系统示意图
本页为课件示意图,图中可见:原始Unix文件系统BSD文件系统System V文。
第27页:树形结构文件系统:文件系统层次结构标准
- 文件系统层次结构标准(FilesystemHierarchy Standard, FHS)-Unix系统目录结构的一个标准
第28页:23.11根目录;子目录
- 目录结构的书写(directory/)+例如:root/binroot/lib每个目录结构都要书写root,因此简写为/例如:root/bin可以写为:/bin
第29页:23.12挂载文件系统
- 文件系统的挂载主文件系统ext4DVD文件系统ISO9660flash文件系统FAT32软盘文件系统FATCD文件系统IS09600以主文件系统的视角和方式去查看其它文件系统DVD文件系统ISO9660CD文件系统IS09600软盘文件系统FATDVD文件系统ISO9660CD文件系统IS09600flash文件系统FAT32软盘文件系统FATDVD文件系统UDFCD文件系统IS09660
第30页:23.12挂载文件系统:挂载-
- 挂载-将小文件系统连接到主文件系统,称为挂载。小文件系统在主树中连接的目录称为挂载点。
- 卸载-将小文件系统从主文件系统移除,称为卸载
第31页:挂载文件系统:不同介质的挂载点-没
- 不同介质的挂载点-没有挂载在其它位置的固定介质,挂载的目录是/mnt。-可移动介质挂载的目录是/media。
第32页:根目录漫游(一)
根目录漫游(一):目录内容与目录名:下表列出课件中的对应条目。
根目录漫游(一):目录内容与目录名| 目录内容 | 目录名 |
|---|
| 工具软件 | /bin |
|---|
| 启动系统所需文件 | /boot |
|---|
| 设备文件 | /dev |
|---|
| 配置文件 | /etc |
|---|
| 用户home目录 | /home |
|---|
| 基本共享库;内核模块 | /lib |
|---|
| 由fsck恢复的受损文件 | /lost+found |
|---|
第33页:根目录漫游(二)
根目录漫游(二):目录内容与目录名:下表列出课件中的对应条目。
根目录漫游(二):目录内容与目录名| 目录内容 | 目录名 |
|---|
| 第三方软件 | /opt |
|---|
| proc文件 | /proc |
|---|
| 根用户的home目录 | /root |
|---|
| 基本系统管理程序 | /sbin |
|---|
| 本地所提供的服务 | /srv |
|---|
| 临时文件 | /tmp |
|---|
| 静态数据使用的辅助文件系统 | /usr |
|---|
| 可变数据使用的辅助文件系统 | /var |
|---|
第34页:23.14漫游/usr目录
- /usr的含义-usr是Unix Software Resource的缩写。FHS建议所有软件开发者,应该将他们的资料合理的分别放置到这个目录下的子目录,而不要自行建立自己独立的目录。-所有系统预装的软件(distribution发布者提供的软件)都会放置到/usr下。
第35页:漫游/usr目录:/usr的内容
- /usr的内容distribution程序/usr/binC程序头文件/usr/include应用软件的函数库;目标文件/usr/lib非distribution程序/usr/local由超级用户运行的非基本系统管理程序/usr/sbin共享文件/usr/share源代码(只用于参考)/usr/srcX Window使用的文件/usr/X11
第36页:23.15使用多个目录存放程序的原因
- 早期的计算机磁鼓磁盘/usr根文件系统usr文件系统挂载速度快、容量小速度慢、容量大
第37页:使用多个目录存放程序的原因
- 存放程序文件的目录通用程序基本程序(跟启动有关的)/bin非基本程序(distribution程序)/usr/bin本地安装程序/usr/local/bin
第38页:使用多个目录存放程序的原因
- 存放程序文件的目录系统管理程序由超级用户运行的基本系统管理程序/sbin由超级用户运行的非基本系统管理程序/usr/sbin本地安装的系统程序/usr/local/sbin
第39页:使用多个目录存放程序的原因
- 存放程序文件的目录第三方应用程序应用程序xxx的安装位置/opt/xxx应用程序xxx的可变数据存放位置/var/opt/xxx
第40页:23.16 home目录
- home目录的含义-为用户提供一个个人的存储空间。-FHS建议用户的home目录最好在/home中创建。例如:/home/harley; /home/stu/linda-在创建Unix账户时,系统就会为该账户自动创建一个同名的home目录,并保存在/etc/passwd文件中
第41页:home目录:查找home目录的位
- 查找home目录的位置echo $HOMEecho ~
第42页:23.17虚拟文件系统
- 虚拟文件系统(virtual file system, VFS)-VFS是API,充当程序和各种文件系统的中间人
第43页:23.17虚拟文件系统示意图
本页为课件示意图,配合图形说明23.17虚拟文件系统小节的结构与流程。