有趣的设计网站,已有域名怎么建设网站,wordpress怎么匿名评论,福州比较大的互联网公司文章目录一、根目录 (/) 的意义与内容二、/usr/ 的意义与内容三、/var/ 的意义与内容四、目录树(directory tree)五、绝对路径与相对路径FHS 是 File System Hierarchy Standard#xff08;文件系统层次化标准#xff09;的缩写#xff0c;多数Linux 版本采用这种文件组织形…
文章目录一、根目录 (/) 的意义与内容二、/usr/ 的意义与内容三、/var/ 的意义与内容四、目录树(directory tree)五、绝对路径与相对路径FHS 是 File System Hierarchy Standard文件系统层次化标准的缩写多数Linux 版本采用这种文件组织形式类似于 Windows 操作系统中 c 盘的文件目录FHS 采用树形结构组织文件。FHS 定义了系统中每个区域的用途、所需要的最小构成的文件和目录同时还给出了例外处理与矛盾处理。根据 FHS(Filesystem Hierarchy Standard) 的官方文件指出 他们的主要目的是希望让使用者可以了解到已安装软件通常放置于那个目录下 所以他们希望独立的软件开发商、操作系统制作者、以及想要维护系统的用户都能够遵循FHS的标准。 也就是说FHS的重点在于规范每个特定的目录下应该要放置什么样子的数据而已。
FHS 针对目录树架构仅规定了三个目录下应该放置什么数据 / (根目录)与开机系统有关 /usr/ (unix software resource)与软件安装/执行有关 /var/ (variable)与系统运作过程有关。
由于 FHS 仅是定义出最上层(/)及次层(/usr/, /var/)的目录内容应该要放置的文件或目录数据 因此在其他次目录层级内就可以随开发者自行来配置了。
一、根目录 (/) 的意义与内容
根目录是整个系统最重要的一个目录因为不但所有的目录都是由根目录衍生出来的 同时根目录也与开机/还原/系统修复等动作有关。 由于系统开机时需要特定的开机软件、核心文件、开机所需程序、 函式库等等文件数据若系统出现错误时根目录也必须要包含有能够修复文件系统的程序才行。 因为根目录是这么的重要所以在FHS的要求方面他希望根目录不要放在非常大的分区 因为越大的分区内你会放入越多的数据如此一来根目录所在分区就可能会有较多发生错误的机会。
因此FHS标准建议根目录(/)所在分区应该越小越好 且应用程序所安装的软件最好不要与根目录放在同一个分区内保持根目录越小越好。 如此不但效能较佳根目录所在的文件系统也较不容易发生问题。说白了就是根目录和 Windows 的 C 盘一个样。
要注意的是因为根目录与开机有关开机过程中仅有根目录会被挂载 其他分区则是在开机完成之后才会持续的进行挂载。因此根目录下与开机过程有关的目录 就不能够与根目录放到不同的分区去。
哪些目录不可与根目录分开呢如下这些
/etc配置文件
/bin重要执行档
/dev所需要的设备文件
/lib执行档所需的函式库与核心所需的模块
/sbin重要的系统执行文件
这五个目录不可与根目录分开在不同的分区。
二、/usr/ 的意义与内容
依据 FHS 的基本定义/usr里面放置的数据属于可分享的与不可变动的(shareable, static) 如果你知道如何透过网络进行分区的挂载(例如在服务器篇会谈到的NFS服务器)那么/usr确实可以分享给局域网络内的其他主机来使用喔。
/usr不是user的缩写其实usr是Unix Software Resource的缩写 也就是Unix操作系统软件资源所放置的目录而不是用户的数据啦。这点要注意。 FHS建议所有软件开发者应该将他们的数据合理的分别放置到这个目录下的次目录而不要自行建立该软件自己独立的目录。
因为是所有系统默认的软件(distribution发布者提供的软件)都会放置到/usr底下因此这个目录有点类似Windows 系统的C:\Windows\ C:\Program files\这两个目录的综合体系统刚安装完毕时这个目录会占用最多的硬盘容量。
三、/var/ 的意义与内容
如果 /usr/ 是安装时会占用较大硬盘容量的目录那么/var就是在系统运作后才会渐渐占用硬盘容量的目录。 因为/var目录主要针对常态性变动的文件包括缓存(cache)、登录档(log file)以及某些软件运作所产生的文件 包括程序文件(lock file, run file)或者例如MySQL数据库的文件等等。
四、目录树(directory tree)
在Linux底下所有的文件与目录都是由根目录开始的。那是所有目录与文件的源头, 然后再一个一个的分支下来因此我们也称这种目录配置方式为目录树(directory tree), 这个目录树的主要特性有
目录树的启始点为根目录 (/, root)每一个目录不止能使用本地端的 partition 的文件系统也可以使用网络上的 filesystem 。举例来说 可以利用 Network File System (NFS) 服务器挂载某特定目录等每一个文件在此目录树中的文件名(包含完整路径)都是独一无二的
五、绝对路径与相对路径
除了需要特别注意的 FHS 目录配置外在文件名部分我们也要特别注意。因为根据档名写法的不同也可将所谓的路径(path)定义为绝对路径(absolute)与相对路径(relative)。 这两种文件名/路径的写法依据是这样的 绝对路径由根目录(/)开始写起的文件名或目录名称 例如 /home/dmtsai/.bashrc。 相对路径相对于目前路径的文件名写法。 例如 ./home/dmtsai 或 http://www.cnblogs.com/home/dmtsai/ 等等。反正开头不是 /就属于相对路径的写法。
而你必须要了解相对路径是以你当前所在路径的相对位置来表示的。举例来说你目前在 /home 这个目录下 如果想要进入 /var/log 这个目录时可以怎么写呢
cd /var/log # absolutecd ../var/log # relative因为你在 /home 底下所以要回到上一层 (../) 之后才能进入到目录 /var 下特别注意这两个特殊的目录 .代表当前的目录也可以使用 ./ 来表示。 ..代表上一层目录也可以 ../ 来代表。
这两个 . 与 .. 目录概念是很重要的你常常会看到 cd .. 或 ./command 之类的指令下达方式 一个表示返回到上级目录一个表示执行当前目录下的一个指令。
**实例1**如何先进入 /var/spool/mail/ 目录再进入到 /var/spool/cron/ 目录内 命令语句如下所示
cd /var/spool/mail
cd ../cron说明 由于/var/spool/mail与/var/spool/cron是同样在/var/spool/目录中。如此就不需要在由根目录开始写起了。这个相对路径是非常有帮助的尤其对于某些软件开发商来说。 一般来说软件开发商会将数据放置到/usr/local/里面的各相对目录。 但如果用户想要安装到不同目录呢就得要使用相对路径。
**实例2**网络文件常常提到类似 ./run.sh 之类的数据这个指令的意义为何
说明 由于指令的执行需要变量的支持若你的执行文件放置在本目录并且本目录并非正规的执行文件目录(/bin, /usr/bin等为正规)此时要执行指令就得要严格指定该执行档。./ 代表本目录的意思所以 ./run.sh 代表执行本目录下名为 run.sh 的文件
官方文档地址 http://www.pathname.com/fhs/