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
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 |
备用格式基本共享库 |
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
3.10.1 目的
系统如果有多个/lib目录变种,用于支持独立的二进制格式。
3.10.2 要求
如果多个目录存在,要求与/lib相同。除非/lib
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/
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略