Linux目录结构,在逻辑上所有目录只有一个顶点,即/(根目录),是所有目录的起点。根下面类似于一个倒挂着的树的结构。
Linux目录按照类别组织:
应用程序 /usr/bin
数据文件,帮助/usr/share
配置文件 /ect/
启动命令 /etc/init.d
要访问一块磁盘设备,必须先将其挂载到Linux目录结构中。如/dev/sda,要将其挂载到/usr上,用命令mount /dev/sda /usr,然后就可以使用磁盘了。目录结构和分区设备是没有关系的。不同的目录可以跨越不同的磁盘设备或分区。
相对路径和绝对路径:
从根开始的就是绝对路径,如/data /ect /usr/bin
不是从根开始的就是相对路径 如:data ./test.txt
Unix系统目录结构典故
话说1969年,Ken Thompson和Dennis Ritchie在小型机PDP-7上发明了Unix。1971年,他们将主机升级到了PDP-11。
当时,他们使用一种叫做RK05的储存盘,一盘的容量大约是1.5MB。
没过多久,操作系统(根目录)变得越来越大,一块盘已经装不下了。于是,他们加上了第二盘RK05,并且规定第一块盘专门放系统程序,第二块盘专门放用户自己的程序,因此挂载的目录点取名为/usr。也就是说,根目录"/"挂载在第一块盘,"/usr"目录挂载在第二块盘。除此之外,两块盘的目录结构完全相同,第一块盘的目录(/bin, /sbin, /lib, /tmp...)都在/usr目录下重新出现一次。
后来,第二块盘也满了,他们只好又加了第三盘RK05,挂载的目录点取名为/home,并且规定/usr用于存放用户的程序,/home用于存放用户的数据。
从此,这种目录结构就延续了下来。随着硬盘容量越来越大,各个目录的含义进一步得到明确。
/:存放系统程序,也就是At&t开发的Unix程序。
/usr:存放Unix系统商(比如IBM和HP)开发的程序。
/usr/local:存放用户自己安装的程序。
/opt:在某些系统,用于存放第三方厂商开发的程序,所以取名为option,意为"选装"。
Linux目录层次标准FHS
FHS全称(Filesystem Hierarchy Standard),中文意思是目录层次结构,是Linux的目录规范标准。
FHS定义了两层规范:第一层是"/"目录下应该存放什么文件数据,如/ect 目录放置系统的配置文件 /ect/exports,/ect/hosts,而/bin和/sbin放置程序及系统命令。
第二层是针对/usr(unix software resource)和/var这两个子目录来定义的。
/bin:常用二进制命令所在目录,如ls,cp,mkdir,rm等和/usr/bin类似
/boot:Linux内核以及引导系统程序所需的文件目录。
/dev:设备文件目录,如磁盘,声卡
/dev/null:空设备 用cat /dev/null > ./test.txt 可以清空文件内容
/etc:二进制安装包的配置文件默认路径和服务启动命令存放的目录。
/home:普通用户的家目录默认数据存放目录
/lib:库文件目录
/root:超级用户root的家目录
/lost+found:当系统意外崩溃或机器意外关机,会产生一些文件碎片在这里。系统在开机启动的过程中,fsck工具会检查这里,并修复已经损坏的文件系统。当系统发生问题时,可能会有文件被移动到这个目录中,可能需要用手工的方式来修复,或移动文件到原来的位置上。
/mnt:一般用于临时挂载存储设备的挂载目录,如cdrom,u盘等目录。直接插入光驱无法使用,要先挂载后使用。挂载点就是文件系统的(设备)入口。
/opt(option):在某些系统,用于存放第三方厂商开发的程序,所以取名为option,意为"选装"。
/proc:一个虚拟的文件系统。/proc 文件系统是一种内核和内核模块用来向进程 (process) 发送信息的机制 (所以叫做 /proc)。这个伪文件系统让你可以和内核内部数据结构进行交互,获取 有关进程的有用信息,在运行中 (on the fly) 改变设置 (通过改变内核参数)。 与其他文件系统不同,/proc 存在于内存之中而不是硬盘上。
/sbin:大多是设计系统管理命令的存放地,是root用户可执行命令的存放地。
/tmp:临时文件目录,有时用户运行程序时,会产生临时文件。/tmp就用来存放临时文件,权限比较特殊。/var/tmp目录和这个目录类似
/var:这个目录内容经常变动的。/var/log目录用来存放系统日志,/var/www目录是定义Apache服务器站点存放目录;/var/lib用来存放一些库文件,如MySQL数据库。