首页 > 代码库 > <<鸟哥的私房菜>>--读书笔记--HFS

<<鸟哥的私房菜>>--读书笔记--HFS

Linux文件系统的组织方式--FHS

我们在使用linux时,不管是redhat还是SUSE,会发现它们下面的目录结构总是相差不大。这是因为主流发行版大都遵循FHS(Filesystem Hierarchy Standard)。

FHS 主要对/,/usr,/var这三个目录规定了其主要的次级目录有哪些,每个次级目录放置什么文件,做什么用途作了规定。

/ 目录的介绍
一个根目录下挂载的次级目录大概有以下几种:

1.常规目录:

目录名称说明
/bin存放用户可以使用的二进制命令,如ls、vi等
/sbins是system的意思,用来存放只有root能够执行的系统管理命令,包括系统引导,修复等命令
/lib 或 /lib64放置驱动和库文件,/bin和/sbin中命令执行所需要的库文件都放置在这个目录
/etc
放置系统配置文件
/srv用来存放某些特定服务的数据,如,www、FTP运行过程中都可能用到这个目录
/tmp用来放置临时文件
2.特殊目录:
目录名称说明
/boot系统引导所需要的静态文件都放在这个目录下,如:内核,bootload等
/dev用来存放设备文件,设备文件也分两种,一种是确确实实连接到主机的物理设备,另一种是操作系统虚拟出来的虚拟设备。像/dev/tty0 就是一个虚拟控制台
/home一般情况下,每个普通用户在该目录下都有一个同名的子目录,作为该用户的家目录
/root
超级用户root的家目录
/media可移动媒体的挂载点,如:U盘,DVD等
/mnt文件系统的临时挂载点,如:NFS
/opt第三方软件存放与安装目录(不常用)
/lost+found当文件系统发生错误时,会把遗失的片断放到这个目录,当修复文件系统时,fsck会到这个目录里搜索。每个新文件系统都会有这个目录。(不常用)
3.伪文件系统

目录名称说明
/proc
存在于内存中,不占实际的物理空间。通过这里面的特殊文件,可以向内核提取或发送信息
/sys在2.6内核以后新增的一个虚拟文件系统,目的是为了更好的支持热插拨设备。里面的内容与/proc类似,但可以显示热插拨设备的设备信息的分层视图。
还有两个很特殊的目录,/var和/usr目录,这两个目录,也是系统启动到多用户模式下所必须的。因此会在下面单独拿出来介绍一下

/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目录是,就置的就是系统收到的新信,当用户收取后,原则上它就会被删掉

在文件分区划分中的一点小建议

  1. 在操作系统内部,可变的与不可变的分开。也就是说,随着操作系统使用,目录的占用空间会持续增长的,最好是划分为一个单独的分区挂载,而不要与/分区划分在一起。否则当/目录被占用过大时,会造成系统的不稳定,也不容易找出具体哪个目录将/分区撑满了。

  2. 操作系统与应用最好分开。这样做的好处是,a.操作系统所在磁盘不会被经常读写,不容易损坏。b.如果操作系统损坏,不会影响到应用数据,在做好操作系统备份的情况下,可以很容易的修复。c.当应用分区出现故障,导致系统无法正常启动时,因为应用是作为一个单独分区,可以先行禁用掉,等操作系统正常启动后,使用fsck等工具对应用分区进行修复。


目录树

wKiom1QgOW7x2j-OAADq90i22Qc080.jpg


绝对路径,相对路径

绝对路径:以/目录开头的路径都叫做绝对路径,多用于脚本执行中。

相对路径:以当前所处位置为参照的路径叫做相对路径。常用的有两个符号:.(当前目录)  ..(当前目录当的上级目录。

本文出自 “月白白” 博客,请务必保留此出处http://yuebaibai222.blog.51cto.com/2535988/1557124

<<鸟哥的私房菜>>--读书笔记--HFS