有一个名为 FHS 的规则总结了 Linux 系统目录的布局 - 第 2 部分 -
你好。
我是Mandai,负责Wild 开发团队。
继续
上次不过,这两项的规格相当详细,花了一段时间才把它们拼凑起来。
/usr
/usr 是共享数据的只读位置。
/usr下的目录结构也很明确,所以我也想看一下。
/usr/bin
该目录被认为是FHS中最重要的目录,存储系统内的可执行命令。
重要的一点是,有一条规则禁止在此目录中创建子目录。
一个详细的规则是,如果安装了perl、python、tclsh、wish、expect这五个子系统,则必须在/usr/bin中安装一个可执行文件或者该可执行文件的符号链接,这已经成为一个规则。
顺便说一句,我刚刚了解到 perl 是“实用提取和报告语言”的缩写。
/usr/包括
此目录放置 C 语言的通用包含文件。
BSD 兼容的包含文件似乎放置在名为 bsd 的子目录中。
/usr/lib
这是放置共享库和目标文件的目录。
在极少数情况下,存在不打算由用户或脚本直接执行的内部二进制文件。
与之前出现的 /lib 相比,似乎没有明确的界限,事实上,在 CentOS7 中,/lib 是 /usr/lib 的符号链接。
每个应用程序都应该有一个直接位于其下的子目录,并且依赖于体系结构的数据应该被推送到其中。
重点是,不要不必要地污染直接位于 /usr/lib 下的区域。
/usr/lib/sendmail 还有一个旧规则,要求 MTA 提供指向与 sendmail 兼容的可执行文件的符号链接。
发送邮件很棒。
/usr/libexec 目录
这是位于 /usr/lib 中的内部可执行二进制文件所在的目录。
我不在乎,但我觉得我需要澄清它是库还是可执行文件,但似乎有人无法区分。
这个“内部可执行二进制文件”经常是争论的话题,而且似乎还没有结论。
/usr/lib<qual>
这是/lib<qual>同样,这是一个存储操作系统架构相关库的目录。
/usr/本地
这是系统管理员单独安装的软件的安装目的地。
/usr/local 正下方的目录结构与/usr 类似。
如果自己编译安装,习惯上指定这个目录。
yum 和 apt-get 等包管理系统将系统安装到 /usr,因此如果不小心将源直接安装在 /usr 下,则可能会被覆盖。
当你要安装不同版本的PHP或Ruby时,如果将配置文件直接放在/etc下会出现问题,所以建议在/etc/local中创建一个子目录并放置。
/usr/sbin
这是sbin,所以它是放置系统二进制文件的目录,但与/sbin不同的是,这里放置的是不需要但系统管理所必需的命令。
例如有用的文件系统构建命令,如 iptables、ntpd、crond 和 LVM。
只能放置可执行二进制文件或二进制文件的符号链接,不允许放置子目录。
/usr/共享
该目录是放置只读的、依赖于体系结构的数据文件的位置。
字体文件似乎与体系结构相关,如果将字体文件放在 /usr/share/fonts 下,系统会识别它。
/usr/share/man 下还存放了与手册相关的文件。
/usr/src 目录
这是您在安装源时可以补充源代码等的地方。
基本上,目的是稍后参考它,但根据项目的不同,卸载时您可能需要安装中的配置文件,因此仅仅因为安装完成就将其丢弃还为时过早。
/var
/var 是变量数据文件的位置。
可变数据包括日志、锁定文件和临时文件。
Linux监控和管理中存储重要数据。
/var/帐户
这是使用 sa 命令和 lastcomm 命令收集的日志的存储位置。
历史命令是执行的命令的日志,而sa命令提供强调使用系统资源的数据的统计数据,例如执行次数和执行时间,而lastcomm命令是与历史命令类似的命令执行的日志。马苏。
/var/缓存
这是存储应用程序缓存数据的目录。
/var/崩溃
该目录存储系统故障转储。
什么是系统故障转储? 我是这么认为的,但是5.6.5:系统故障转储(可选),我注意到附加了一条文字:“当前系统不支持系统故障转储”。
顺便说一句,系统故障转储称为 kdump,似乎在 RHEL7 中默认安装。
它也安装在CentOS7上。
kdump的作用就是转储系统崩溃时被炸毁而无法访问的内核内存区域。
这种机制相当疯狂或暴力,因此我们从另一个名为 kexec 的命令启动另一个内核(这称为第二内核),因此用户使用的操作系统发生崩溃时,kdump 会获取 的内存区域第一内核(简称第一内核)并写入文件。
运行 kexec 所需的内存区域是每 160MB 4KB RAM + 第一个内核使用的 2 位内存,因此对于 1TB 内存,需要 224MB。
我吃的还蛮多的...
另外,由于不同系统的内核同时运行,它们可能会使用相当多的 CPU,所以这里也需要小心。
另一个大问题是通过查看内存转储可以多接近崩溃的原因。
就我个人而言,我认为我无法通过查看此来确定原因,因此我可能不会使用kdump......
/var/游戏
这是游戏相关数据的存储区域。
我不认为你经常在 Linux 上玩游戏,但 Ubuntu 预装了 Shanghai 和 Sudoku,所以为什么不尝试一下呢?
/var/lib
这是存储已安装系统数据的区域。
例如,对于使用 yum 安装的 MySQL,所有架构数据都存在于 /var/lib/mysql 下。
/var/锁
这是锁定文件的位置。
但是,当前锁定文件的位置因系统而异;MySQL 将套接字锁定文件存储在 /var/lib/mysql 中。
我认为目前还不清楚这是向FHS3.0的过渡期还是他们没有改变的意图。
/var/日志
该目录是管理员必须查看的位置。
大多数内核和各种应用程序日志都存储在这里。
根据日志类型的不同,有些日志只能由 root 或具有类似权限的用户授权,因此您可能需要根据管理需求进行调整。
/var/邮件
这是发送给每个用户的电子邮件的存储位置。
但是,根据操作系统的不同,邮箱可能会设置为 /var/spool/mail,并且该目录可能是符号链接。
/var/opt
该目录用于存储 /opt 中安装的软件的变量数据。
静态文件规定保存在/etc下,给人的感觉就是配置文件散落各处。
可执行文件存储在 /opt 中,安装在 /opt 中的软件包对于保存位置有相当严格的规定(笑),给人的印象是它们受到限制......
/var/运行
该目录是根据以前的 FHS 规范设计的系统的剩余兼容性目录。
目前,该角色已移至名为 /run 的目录,当您在 CentOS7 上检查它时,它是 /run 的符号链接。
原文重点是访问utmp,大约有一半的文字是关于utmp的。
/var/线轴
/var/spool 是存放等待处理的临时数据的目录。
是不是比/var/tmp更清晰一点,像是等待后处理的数据?
/var/spool/mail 包含发送给本地用户的邮件,在 /var/spool/cron 下有用每个用户名注册的文本文件。
/var/tmp
/var/tmp 定位为 /tmp,即使重启也不会被删除。
因此,在使用此目录时,您应该始终删除创建它们的应用程序中的文件。
/var/yp
这是放置 NIS(网络信息服务)数据的目录。
据说名称 yp 是因为 NIS 的前身系统名称是 Sun Yellow Pages,是现已不复存在的 Sun Microsystems 的遗产。
由于“黄页”因商标问题而无法再使用,NIS 解决了该问题,该问题一直持续至今。
更复杂的是,目录 /var/nis 也存在,尽管这次没有显示,并且该目录由 NIS+ 使用,因此 NIS 永远不会使用它。
更详细地解释,NIS 是用于在网络内共享有关用户帐户和网络的配置信息的软件。
目前使用的类似系统是DNS,但它专注于网络,因此可以说NIS的范围更广。
你光看就觉得超级方便,但它是20世纪80年代发展起来的,公共网络还没有发展到让人想干坏事的地步,所以没有安全的概念。
此外,NIS 只能管理单个域,并且易于创建。
因此,NIS+克服了NIS的弱点,是一个真正丰富的系统,可以分层管理多个域,并且使用加密具有安全性。
不过,这也使用了DES进行加密,所以在安全性方面有点宽松。
我搜索了一下,但只找到了 Solaris 页面,而且这些材料都是 15 年前的,所以在 21 世纪,似乎你可以在不知道 /var/yp 是什么的情况下操作 Linux。
已经太久了。
就是这样。