3. 根目录系统
3.1 目的
3.2 需求
3.3 具体选择
3.4 /bin: 基本用户二进制指令(所有用户)
3.5 /boot :启动加载的静态文件
3.6 /dev:设备文件夹
3.7 /etc: 主机系统配置
3.8 /home:用户主目录
3.9 /lib : 基本共享库和核心模块
3.10 /lib<qual>:备用格式基本共享库
3.11 /media:可移动媒体安装区域,挂载点
3.12 /mnt: 临时文件系统安装的挂载点
3.13 /opt:附加应用软件程序包
3.14/root: root用户的主目录
3.15 /sbin: 二进制系统
3.16/srv:系统提供的数据服务
3.17 /tmp: 临时文件
第三章 根目录文件系统
3.1 目的
根目录的内容必须适合引导、恢复、备份和修复系统。
- 要引导系统,在根目录下必须有足够的空间去安装其他文件系统。这包括功能、配置、引导加载信息和其他必要的启动数据。/usr,/opt和/var用于以上功能并可以加载在其他分区或文件系统上。
- 为了恢复或修复系统,这些功能需要经验性诊断,并在根目录下修复系统
- 为了恢复系统,这些功能的系统备份应当位于根目录下。
提示!
首先应平衡两种思路,要么把尽量多的东西放进根目录,要么把根目录做的尽可能小。因为一些原因,我们选择后者。
- 它偶尔会从很小的媒体上安装
- 根目录包含很多系统相关的配置文件。包括系统核心,主机名称等等。这意味着根目录不需要经常共享。保持根目录的小型化可以避免非共享文件占用大量空间。这也保证了工作台可以在很小的本地磁盘中安装。
- 当你的根目录位于一个较大分区时,其他人可能只有一个较小分区。当你安装了大量文件,就可能与其他小分区用户不兼容。如果你是一位开发者,应当考虑大量用户的配置情况。
- 根目录下的磁盘错误的严重性高于其他目录。越小的根目录越容易避免系统问题。
3.2 要求
以下路径或符号前面需要加/
路径 | 描述 |
bin | 基础二进制命令 |
boot | 启动加载器的静态文件 |
dev | 设备目录 |
etc | 主机系统配置 |
lib | 基础共享库和核心模块 |
media | 可移动介质挂载点 |
mnt | 临时文件挂载点 |
opt | 附加程序软件包 |
sbin | 基本二进制系统 |
srv | 系统服务数据 |
tmp | 临时文件 |
usr | 二级层级 |
var | 变量 |
表中每个目录下面都会单独介绍,/usr 和 /var 因为比较复杂拥有独立章节。
3.3特别要求
以下路径或符号前面需要加/
路径 | 描述 |
home | 用户主目录 |
lib<qual> | 备用格式基本共享库 |
root | root用户主目录 |
表中每个目录下面都会单独介绍
3.4 /bin:基本用户二进制程序(所有用户)
3.4.1 目的
/bin包含的命令可以被系统管理员和普通用户调用,当没有其他文件系统被安装是也可。它同样包含由脚本间接使用的命令。
3.4.2 要求
/bin是没有子目录的。
/bin应拥有下列命令或符号
命令 | 描述 |
cat | 串联文件至标准输出 |
chgrp | 更改文件组所有权 |
chmod | 更改文件访问权限 |
chown | 更改文件所有者和群组 |
cp | 复制文件和目录 |
date | 打印或设定时间和日期 |
dd | 转换并复制文件 |
df | 报告文件系统磁盘使用情况 |
dmesg | 打印或控制核心信息缓存 |
echo | 显示一行文本 |
false | 不成功的 |
hostname | 显示或更改系统主机名 |
kill | 传送信号或进程 |
in | 在文件间建立链接 |
login | 在系统中开始一个会议?session |
ls | 列出目录内容 |
mkdir | 建立目录 |
mknod | 制作一个块或字符特殊文件 |
more | 翻阅文本 |
mount | 安装一个文件系统 |
mv | 移除或重命名文件 |
ps | 报告进程状态 |
pwd | 打印当前工作目录的名称 |
rm | 移除文件或目录 |
rmdir | 移除空的目录 |
sed | sed流编辑器 |
sh | Bourne命令行 |
sty | 改变打印终端线设定 |
su | 改变用户ID |
sync | 刷新文件系统缓冲区 |
true | 成功 |
umount | 卸载文件系统 |
uname | 打印系统名称 |
如果/bin/sh 不是真的Bourneshell,它补习是真实shell命令的硬链接或符号链接。
[和测试命令必须放在/bin或/ usr / bin中。
注意:
当调用bash和sh命令时,bash的表现会有不同。使用符号链接时,用户可以轻易分辨/bin/sh 不是真正的Bourne shell。
[和测试命令将被包含为二进制,参见POSIX.2标准。
3.4.3特别要求
下列程序或符号链接,必须在/bin目录下。如果关联子程序被安装:
命令 | 描述 |
csh | C shell |
ed | ed编辑器 |
tar | tar实现功能 |
cpio | cpio实现功能 |
gzip | GNU压缩 |
gunzip | GNU解压 |
zcat | GNU解压 |
netstat | 网络统计 |
ping | ICMP网络测试 |
如果存在gunzip和zcat程序,它们必须是gzip的符号或硬链接。 /bin / csh可以是/ bin / tcsh或/ usr / bin / tcsh的符号链接。
注意:
tar,gzip,cpio命令将被添加以保证系统恢复。
相反,如果根分区没有恢复,这些二进制命令将被忽略。如果系统计划通过网络恢复,ftp或tftp必须在根分区可用。
3.5 /boot 启动加载器的静态文件
3.5.1目的
这个目录包含了启动进程所需的一切,除了不需要启动时间和安装的配置文件。/boot存储的数据调用在核心开始执行用户程序之前。这可能包括保存的主引导扇区和扇区映射文件。
3.5.3 特别要求
操作系统核心必须安装在/或/boot目录下。
3.6 /dev: 设备文件
3.6.1目的
/dev目录存放特殊的或设备文件
3.6.2 特别要求
如果/dev 路径下设备要求被手动创建,那么/dev必须包含命令“MAKEDEV”。也可以包含MAKEDEV.local用于本地设备。
如果需要,MAKEDEV需要对系统中可能被找到的设备提供规定,而不是履行特殊的安装。
3.7 /etc: 主机系统配置
3.7.1 目的
/etc 层级包含配置文件。配置文件属于本地文件,用于控制操作程序,它必须是静态的,不能是可执行的二进制程序。
3.7.2 要求
/etc 目录下不能有二进制。
/etc 应包含下面的目录,符号链接
目录 | 描述 |
opt | 配置/opt |
X11 | 配置X windows系统 |
sgml | 配置SGML |
xml | 配置XML |
下面的文件,链接必须在/etc目录下,如果相关子系统被安装:
文件 | 描述 |
csh.login | C shell 登录的系统范围初始化文件 |
exports | NFS文件系统访问控制表 |
fstab | 文件系统静态信息 |
ftpusers | FTP守护程序用户访问控制列表 |
gateways | 列出路由网关的文件 |
gettydefs | getty使用的速度和终端设置 |
group | 用户群文件 |
host.conf | 解析器配置文件 |
hosts | 主机名静态信息 |
hosts.allow | TCP包装器的主机访问文件 |
hosts.deny | TCP包装器的主机访问文件 |
hosts.equiv | 对于rlogin,rsh,rcp的受信主机列表 |
hosts.lpd | lpd的受信主机列表 |
inetd.conf | inetd的配置文件 |
inittab | init的配置文件 |
issue | 预登录信息和识别文件 |
ld.so.conf | 搜寻共享库的其余目录的列表 |
motd | 远程登录信息的每日文件 |
mtab | 文件系统动态信息 |
mtools.conf | mtools |
networks | 网络名称静态信息 |
passwd | 密码文件 |
printcap | lpd打印能力数据库 |
profile | sh shell登录系统初始化文件 |
protocols | IP协议列表 |
resolv.conf | 解析器配置文件 |
rpc | RPC协议列表 |
securetty | 根目录登录的TTY访问控制 |
services | 网络服务端口名称 |
shells | 有效登录shell的路径名 |
syslog.conf | syslogd配置文件 |
3.7.4-3.7.7 略
3.8 /home:用户主目录
3.8.1 目标
/home 是一个标准的概念,但显然是特定于站点的文件系统。他用于区别不同用户。因此,程序不应当依赖这个路径。
3.8.2 要求
应用程序的用户特殊配置文件应当保存于home路径下,并以“ . ” 开头。如果一个应用程序需要创建多于一个点 开头的文件,那么应该放在 点 开头的子目录下。这种情况下配置文件不应该以 点 开头。
3.9 /lib 必要的共享库和核心模块
3.9.1 目标
/lib 目录包含在根文件系统下启动系统和运行执行的共享库镜像,二进制代码在/bin和/sbin下。
3.9.2 要求
至少一个文件名模式是存在的:
文件 | 描述 |
libc.so.* | C库的动态链接 |
ld* | 执行时链接器/加载器 |
如果安装了C预处理器,/lib/cpp应当涉及。
3.9.3 特殊要求
如果安装了子系统,下列目录需安装在/lib下
文件 | 描述 |
modules | 可加载核心库 |
3.10/lib<qual> 可替代格式必要共享库
3.10.1 目的
系统如果有多个/lib目录变种,用于支持独立的二进制格式。
3.10.2 要求
如果多个目录存在,要求与/lib相同。除非/lib<qual>/cpp没有被要求。
3.11 ./media: 可移动媒体的挂载点
3.11.1 目的
该目录下包含子目录用于挂载可移动媒体例如软盘,光驱等。
注意:
过去挂载点位于/mnt下,现在要改过来。
3.11.2 略
3.12. /mnt:临时安装的文件系统的挂载点
3.12.1 目的
路径用于提供给系统管理员临时安装的文件系统。这个目录下的内容是本地事务,不应当影响正在运行的程序。
这个路径不能用于安装程序:必须使用系统未使用的合适的临时目录。
3.13 /opt: 附加应用程序软件包
3.13.1 目的
/opt 被保留用于安装附加应用程序软件包
安装在/opt的软件包必须将其静态文件放置于/opt/<package>或/opt/<provider>路径树下,其中<package>是描述软件包的名字,<provider>是提供者LANANA注册名称。
3.13.2 略
3.14/root: root用户的主目录
3.14.1目的
root帐户的主目录可以由开发人员或本地首选项确定,但这是默认位置。
3.15./sbin: 系统二进制文件
3.15.1目的
系统管理员使用的功能存储在/sbin,/usr/sbin以及/usr/local/sbin。 /sbin包含的二进制文件基本用于启动,恢复,重建,修复系统,对/bin进行补充。在/usr后执行的程序被认为是安装在/usr/sbin的。本地安装的系统管理员程序应当放在/usr/local/sbin里。
3.15.2&3.15.3要求与特殊要求
命令 | 描述 |
shutdown | 关闭系统 |
fastboot | 重启系统而不检查硬盘 |
fasthalt | 停止系统而不检查硬盘 |
fdisk | 分区表操纵器 |
fsck | 文件系统检查与修复 |
fsck.* | 特殊文件系统检查与修复 |
getty | getty程序 |
halt | 停止系统 |
ifconfig | 配置网络接口 |
init | 初始化进程 |
mkfs | 建立文件系统 |
mkfs.* | 建立特殊文件系统 |
mkswap | 建立交换区域 |
reboot | 重启系统 |
route | IP路由表程序 |
swapon | 打开翻页与交换 |
swapoff | 关闭翻页与交换 |
update | 守护进程定期刷新文件系统缓存 |
3.16/srv 系统数据服务略
3.17/tmp 临时文件夹略
Notes略