全部博文(26)
分类: LINUX
2014-02-08 14:56:05
摘自:[美]Harley Hahn:Unix & Linux大学教程
十八、Unix文件系统
(1)什么是文件
文件是任意源,有一个名称,可以从中读取数据;或者是任意目标,有一个名称,可以向其中写入数据。
分为3类:普通文件、目录文件和伪文件。其中伪文件有特殊文件(如设备文件)、命名管道及proc文件,并不用来存储数据。
(2)特殊文件
硬件:
/dev/fd0 软盘
/dev/hda 硬盘
/dev/hda1 硬盘第1分区
/dev/sda SCSI硬盘
/dev/sda1 SCSI硬盘第1分区
/dev/lp0 打印机
终端:
/dev/tty 当前终端
/dev/tty1 控制台/虚拟控制台
/dev/pts/0 伪终端
/dev/ttyp0 伪终端
伪设备:
/dev/null 放弃输出,输入不返回内容(eof)
/dev/zero 放弃输出,输入返回null(0)
/dev/random 随机数生成器
/dev/urandom 随机数生成器
我们可以使用dd创建一个全新的文件,该文件完全由null字符构成:
dd if=/dev/zero of=temp bs=100 count=1
if是输入文件,of是输出文件,bs是块大小,count是块的数量。因此,我们从/dev/zero向文件temp复制100字节的数据块。
(3)命名管道:mkfifo
当以这种方式(grep bash /etc/passwed | wc -l)使用管道时,管道将自动创建,当且仅当两个进程正在运行时它才存在,因此称为匿名管道。
命名管道与匿名管道相似,它们将一个进程的输出连接到另一个进程的输入。但命名管道和匿名管道之间有两个重要的区别。首先,必须显式地创建命名管道。其次,两个进程结束时,命名管道并不会消失,除非删除。
创建命名管道,使用mkfifo程序,语法为
mkfifo [-m mode] pipe
其中mode是chmod程序使用的另一种文件模式类型,pipe是管道名称。
(4)proc文件
proc文件是那些提供一种简单的途径来检查多种类型的系统信息的伪文件,proc文件直接从内核获取信息,而不是使用复杂的程序搜出数据。原始的proc文件系统是为了提取进程的信息而开发的,因此命名为proc。
所有的proc文件都存放在/proc目录中,每个进程都对应一个子目录,目录名为进程ID号。
(5)根目录;子目录
Unix文件系统的主目录为根目录。
当指定根目录中的目录或文件的名称,需要先写一个/,后面跟名称。
/bin 基本程序
/boot 启动系统时所需要的文件
/dev 设备文件
/etc 配置文件
/home 用户的home目录
/lib 基本共享库,内核模块
/lost+found 由fsck恢复的受损文件
/media 可移动介质的挂载点
/mnt 不能挂载在其他位置上的固定介质的挂载点
/opt 第三方应用程序
/proc proc文件
/root root用户的home目录
/sbin 由root用户运行的基本管理程序
/srv 本地系统所提供服务的数据
/tmp 临时文件
/usr 静态数据使用的辅助文件系统
/var 可变数据使用的辅助文件系统
/usr/bin 非基本程序(大多数用户程序)
/usr/include C程序的头文件
/usr/lib 非基本共享库
/usr/local 本地安装程序
/usr/sbin 由root用户执行的非基本系统程序
/usr/share 共享系统数据
/usr/src 源代码
(6)虚拟文件系统
基于磁盘的文件系统:
ext3 第3代扩展文件系统(Linux)
ext4 第4代扩展文件系统(Linux)
FAT32 32位文件分配表文件系统(Windows)
HFS+ 层次式文件系统(Macintosh)
ISO9660 ISO9660标准文件系统(CD-ROM)
NTFS NT文件系统(Windows)
UDF 通用磁盘文件格式系统(可重写CD和DVD)
UFS2 Unix文件系统
网络文件系统:NFS和SMB
特殊用途文件系统:
devpts 伪终端的设备界面
procfs proc文件系统
sysfs 系统数据文件系统
tmpfs 临时存储文件系统