首页 > 代码库 > <<鸟哥的私房菜>>--读书笔记--HFS
<<鸟哥的私房菜>>--读书笔记--HFS
Linux文件系统的组织方式--FHS
我们在使用linux时,不管是redhat还是SUSE,会发现它们下面的目录结构总是相差不大。这是因为主流发行版大都遵循FHS(Filesystem Hierarchy Standard)。
FHS 主要对/,/usr,/var这三个目录规定了其主要的次级目录有哪些,每个次级目录放置什么文件,做什么用途作了规定。
/ 目录的介绍
一个根目录下挂载的次级目录大概有以下几种:
1.常规目录:
目录名称 | 说明 |
---|---|
/bin | 存放用户可以使用的二进制命令,如ls、vi等 |
/sbin | s是system的意思,用来存放只有root能够执行的系统管理命令,包括系统引导,修复等命令 |
/lib 或 /lib64 | 放置驱动和库文件,/bin和/sbin中命令执行所需要的库文件都放置在这个目录 |
/etc | 放置系统配置文件 |
/srv | 用来存放某些特定服务的数据,如,www、FTP运行过程中都可能用到这个目录 |
/tmp | 用来放置临时文件 |
目录名称 | 说明 |
---|---|
/boot | 系统引导所需要的静态文件都放在这个目录下,如:内核,bootload等 |
/dev | 用来存放设备文件,设备文件也分两种,一种是确确实实连接到主机的物理设备,另一种是操作系统虚拟出来的虚拟设备。像/dev/tty0 就是一个虚拟控制台 |
/home | 一般情况下,每个普通用户在该目录下都有一个同名的子目录,作为该用户的家目录 |
/root | 超级用户root的家目录 |
/media | 可移动媒体的挂载点,如:U盘,DVD等 |
/mnt | 文件系统的临时挂载点,如:NFS |
/opt | 第三方软件存放与安装目录(不常用) |
/lost+found | 当文件系统发生错误时,会把遗失的片断放到这个目录,当修复文件系统时,fsck会到这个目录里搜索。每个新文件系统都会有这个目录。(不常用) |
目录名称 | 说明 |
---|---|
/proc | 存在于内存中,不占实际的物理空间。通过这里面的特殊文件,可以向内核提取或发送信息 |
/sys | 在2.6内核以后新增的一个虚拟文件系统,目的是为了更好的支持热插拨设备。里面的内容与/proc类似,但可以显示热插拨设备的设备信息的分层视图。 |
/usr 目录的介绍
/usr 根据鸟哥的说法,这个目录名是Uinx Software Resource的缩写。FHS建议大部分标准序程序都放置在/usr目录下相应的子目录下。
/usr目录下主要有以下几个次级目录:
目录名称 | 说明 |
---|---|
/usr/bin | 大多数用户可执行的命令和可执行文件都放置在这个目录下 |
/usr/sbin | 不太关键的系统管理命令一般都放置在这,最常见的就是一些网络服务的管理命令 |
/usr/lib 或 /usr/lib64 | 用来放置对象文件与共享库,这里面的文件默认不能给用户或shell直接使用。说白了,就是专门给应用程序使用的。 |
/usr/etc | 用来放置应用的配置文件,因为redhat的配置文件都是放在/etc下面的,所以这个目录常常是空的。 |
/usr/share | 用来放置各种架构都能使用的文件文件,如:man手册,软件的各种说明等 |
/usr/libexec | 用来放置可供其它程序调用的小型助手程序 |
/usr/include | 用来放置C的头文件 |
/usr/src | 用来放置原代码的 |
/usr/local | 这个目录下的次级目录基本与/usr目录相同,是用来给管理员本地安装软件用的。有的时候为了升级安全,也可以将新版本的软件安装到这个目录下面。 |
/var 目录的介绍
/var 是variable的缩写,从字面上理解,就是可变的,实际上也确实是这样,一般情况下,新装完一个系统,/usr目录通常是最大的,但随着系统的使用,/var目录会变的越来越大。
那/var目录是用来干什么的呢?在FHS的规定中,/usr目录是可以通过NFS做为一个共享目录,供其它主机使用的。/usr目录里面有那么多重要文件,当它共享出去时,通常是建议以只读方式挂载。那一个程序要运行,它肯定要产生数据吧,比如日志信息,进程号信息等等。这些信息那哪呢,就是放在/var目录下的。
/var目录下主要有以下几个次级目录:
目录名称 | 说明 |
---|---|
/var/log | 日志文件存放目录 |
/var/run | 程序运行后,通常会把它们的pid放置在这个目录 |
/var/lock | 当系统中一些资源或文件,同一时间只能供一个程序使用时,就会将该资源或文件上锁,锁定文件就放置在这个目录下面 |
/var/lib | 程序运行过程中所需要使用到的数据文件就放置在这个目录下,如:rpm 查询时所需要的数据就都放置在/var/lib/rpm目录下面 |
/var/spool | 通常用来放置排队等待其它程序使用的数据,等其它程序使用完成后,通常会将其删除。比如:/var/spool/mail目录是,就置的就是系统收到的新信,当用户收取后,原则上它就会被删掉 |
在文件分区划分中的一点小建议:
在操作系统内部,可变的与不可变的分开。也就是说,随着操作系统使用,目录的占用空间会持续增长的,最好是划分为一个单独的分区挂载,而不要与/分区划分在一起。否则当/目录被占用过大时,会造成系统的不稳定,也不容易找出具体哪个目录将/分区撑满了。
操作系统与应用最好分开。这样做的好处是,a.操作系统所在磁盘不会被经常读写,不容易损坏。b.如果操作系统损坏,不会影响到应用数据,在做好操作系统备份的情况下,可以很容易的修复。c.当应用分区出现故障,导致系统无法正常启动时,因为应用是作为一个单独分区,可以先行禁用掉,等操作系统正常启动后,使用fsck等工具对应用分区进行修复。
目录树
绝对路径,相对路径
绝对路径:以/目录开头的路径都叫做绝对路径,多用于脚本执行中。
相对路径:以当前所处位置为参照的路径叫做相对路径。常用的有两个符号:.(当前目录) ..(当前目录当的上级目录。
本文出自 “月白白” 博客,请务必保留此出处http://yuebaibai222.blog.51cto.com/2535988/1557124
<<鸟哥的私房菜>>--读书笔记--HFS