下面进行linux目录结构详细说明,基于FHS与CentOS7.0
百度百科:FHS定义了两层规范,第一层是, / 下面的各个目录应该要放什么文件数据,例如/etc应该要放置设置文件,/bin与/sbin则应该要放置可执行文件等等。因为Linux的开发人员实在太多了,如果每个人都使用自己的目录配置方法,那么将可能会带来很多管理问题。所以,后来就有所谓的文件系统层次标准(Filesystem Hierarchy Standard,FHS)出台。
第二层则是针对/usr及/var这两个目录的子目录来定义。例如/var/log放置系统登录文件、/usr/share放置共享数据等等。
FHS的四种形态:
首先,通过以下命令查看一级目录结构
#进入根目录
[root@localhost home]# cd /
#查看目录树(两层,只看目录,不看文件)
[root@localhost /]# tree -d -L 1
.
├── bin -> usr/bin #可执行文件目录,linux自带命令在这里
├── boot #开机会使用到的文件,包括Linux核心文件以及开机菜单与开机所需配置文件等等。
├── dev #设备目录
├── etc #配置文件几乎都放置在这个目录内,例如人员的帐号密码档、 各种服务的启始档等等。
├── home #家目录,系统默认的使用者主文件夹,用户的个人文件都可放在这里
├── lib -> usr/lib #放置在开机时会用到的函数库,以及在/bin或/sbin下面的指令会调用的函数库
├── lib64 -> usr/lib64 #与lib类似
├── media #放置可移除的设备,包括软盘、光盘、DVD等等设备都暂时挂载于此。
├── mnt #设备临时挂载目录
├── opt #第三方协力软件放置的目录
├── proc #是一个虚拟文件系统,放置内存中的数据,不占用硬盘空间
├── root #系统管理员的主文件夹
├── run #放置系统开机后所产生的各项信息
├── sbin -> usr/sbin #里面包括了开机、修复、还原系统所需要的指令,root用户使用
├── srv #service是一些网络服务启动之后,这些服务所需要取用的数据目录。
├── sys #与proc类似
├── tmp #temp,让一般使用者或者是正在执行的程序暂时放置文件的地方
├── usr #unix software resource:与软件安装/执行有关
└── var #variable,与系统运行过程有关,主要为变动性较大的数据
19 directories
下面针对每个一级目录进行详细说明:
1. /usr
[root@localhost /]# cd /usr
[root@localhost usr]# tree -d -L 1
.
├── bin #所有一般用户能够使用的指令都放在这里,/usr/bin就是/bin
├── lib #/usr/lib就是/lib,放置在开机时会用到的函数库,以及在/bin或/sbin下面的指令会调用的函数库
├── local #系统管理员在本机安装自己下载的软件可安装在这里
├── sbin #/usr/sbin就是/bin,放置非系统正常运行所需要的系统指令。
├── share #放置只读架构的数据文件,也包括共享文件,一般说明文档在这里
#----------------------------------------上面的比较重要---------------------------------
├── etc
├── games #游戏相关的数据
├── include #c/c++等程序语言的文件开始(header)与包含档(include)放置处,当我们以tarball方式 (*.tar.gz 的方式安装软件)安装某些数据时,会使用到里头的许多包含文档
├── lib64
├── libexec #某些不被一般使用者惯用的可执行文件或脚本(script)等等,都会放置在此目录中
├── src #一般源代码建议放置到这里,src有source的意思。至于核心源代码则建议放置到/usr/src/linux/目录下。
└── tmp -> ../var/tmp #与/var/tmp相同,临时文件
12 directories
2./var,只针对重要目录进行说明
[root@localhost /]# cd /var
[root@localhost var]# tree -d -L 1
.
├── adm
├── cache #应用程序本身运行过程中会产生的一些暂存盘
├── crash
├── db
├── empty
├── ftp
├── games
├── gopher
├── kerberos
├── lib #程序本身执行的过程中,需要使用到的数据文件放置的目录,每个程序会在该目录下建子目录
├── local
├── lock -> ../run/lock #资源锁文件目录,等于/run/lock
├── log #登录文件放置的目录,非常重要!
├── mail -> spool/mail #放置个人电子邮件信箱的目录,同/var/spool/mail
├── nis
├── opt
├── preserve
├── run -> ../run #程序或服务运行后的PID放置的目录,同/run
├── spool #这个目录通常放置一些伫列数据,所谓的“伫列”就是排队等待其他程序使用的数据,数据使用后会删除
├── tmp
└── yp