表2-2-1
这些内容可能与你理解的不太一样,但这就是全部必须的内容,各目录的详细内容下面会逐一介绍。
而下表所列的可能就是你疑问的了,但这些是可选的,只要在有相应子系统的时候才需要。不过对于
大多数通用系统它们都是需要的。
名称
| 功能
|
home
| 用户自己的目录
|
lib<qual>
| 其他各式的重要共享库,比较少见
|
root
| root用户的专有目录
|
表2-2-2
它们的具体内容也会在下面内容进行详细介绍。
2.3 子目录
本节将讲述根文件系统下各子目的详细内容,以及为了使系统能够运行它们所必须包含的内容。
/usr和/var由于本身的复杂性,我会以单独的章节介绍它们。
2.3.1 /bin
/bin目录下包含了用户命令文件,也就是shell命令,供所有用户使用。不仅仅是用户,脚本程序也
要使用它们。即使其他文件系统还没有被挂接时,它们也要能够工作。
/bin目录不得包含任何子目录,下表列出了它必有的内容,有些文件可能是一个符号连接:
名称
| 功能
|
cat
| 连接多个文件,并将内容输出至标准输出
|
chgrp
| 改变文件的所属组
|
chmod
| 改变文件的访问权限
|
chown
| 改变文件的所属用户和组
|
cp
| 复制文件和目录
|
date
| 打印或设置系统日期与时间
|
dd
| 转换并复制文件
|
df
| 查看文件系统磁盘空间使用情况
|
dmesg
| 打印或控制内核的消息缓冲
|
echo
| 显示一行文本
|
false
| 不做任何事情,表示不成功
|
hostname
| 显示或设置系统的主机名
|
kill
| 向进程发送信号
|
ln
| 创建文件连接
|
login
| 开始系统上的一个会话
|
ls
| 列出目录内容
|
mkdir
| 创建目录
|
mknod
| 创建块或字符设备的专用文件
|
more
| 分页显示文本
|
mount
| 挂接一个文件系统
|
mv
| 移动文件或更改文件名
|
ps
| 查看系统进程状态
|
pwd
| 打印当前工作目录名
|
rm
| 删除文件或目录
|
rmdir
| 删除空目录
|
sed
| 一个流式文本编辑器
|
sh
| Bourne命令shell
|
stty
| 改变或打印终端行设置
|
su
| 改变用户标识
|
sync
| 刷新文件系统缓存
|
true
| 什么也不做,表示成功
|
umount
| 卸载文件系统
|
uname
| 打印系统信息
|
表2-3-1
如果/bin/sh不是真正的Bourne shell,它必须连接到一个真正的shell命令上,既可以是硬连接也可以是软
连接。例如,调用sh或bash时,bash会有不同的行为。使用符号连接也使得用户容易地了解到/bin/sh不
是一个真正的Bourne shell。“[”和“test”命令必须被放在一起,既可以在/bin目录下也可以在/usr/bin
目录下。这是为了保持与POSIX.2标准一致,即使它们已经由shell程序内部实现了。
下表的内容是可选的。如果有相应的子系统被安装,则是必须的。目前大多数发布都会部分的提
供它们。
名称
| 功能
|
csh
| 著名的C shell
|
ed
| “ed”文本编辑器
|
tar
| tar打包工具
|
cpio
| cpio打包工具
|
gzip
| GNU压缩工具
|
gunzip
| GNU解压缩工具
|
zcat
| GNU解压缩工具
|
netstat
| 网络统计工具
|
ping
| ICMP网络测试工具
|
表2-3-2
如果存在gunzip和zcat程序,它们一定是gzip的软连接或硬连接。/bin/csh可能是/bin/tcsh或/usr/bin/tcsh的符
号连接。tar、gzip和cpio为系统提供了恢复能力,反之,如果不考虑从根分区恢复系统的话,这些程序
可被忽略(例如一个只读片内根系统,通过NFS挂接/usr目录)。若要通过网络恢复系统,还需要ftp或
tftp存在于根分区。
2.3.2 /boot
该目录包含了除在启动时刻和映像安装器不需要的配置文件外,启动进程所需要的所有内容。换
句话说,/boot目录下存储的数据用于内核开始执行用户级程序之前的操作。这里也可能包含备份的主
引导扇区信息和扇区映像文件。另外,操作系统的内核必须放在“/”或“/boot”目录下。
2.3.3 /dev
/dev目录是设备文件或专有文件的存放位置。要是/dev中的设备需要手工创建,/dev必须含有一个
名为MAKEDEV的命令,它能够创建需要的设备文件。同时也应该为任何本地设备包含一个
MAKEDEV.local文件。如果需要,MAKEDEV必须具备为任何发现与系统的设备创建文件的权限,而
不限于那些特定的安装实现。
2.3.4 /etc
/etc包含了系统特有的配置文件。所谓配置文件,就是用于控制程序运行的本地文件,它一定是
不可变文件,而且是可编辑的,那些二进制可执行文件是不能作为配置文件的。/etc下基本没有二进
制文件,下表中列出的目录需要包含在/etc下,有些可能是符号连接。
名称
| 功能
|
opt
| /opt目录下各软件的配置文件
|
X11
| X Window系统的配置文件,可选。
|
sgml
| SGML的配置文件,可选。
|
xml
| XML的配置文件,可选。
|
表2-3-3
当相关子系统安装后,下列文件必须放在/etc中,有些也可以是符号连接:
名称
| 功能
|
csh.login
| C shell登陆的全局初始化文件,有C shell时有效。
|
exports
| NFS文件系统的访问控制列表,有NFS支持时有效。
|
fstab
| 文件系统的静态信息,系统初始化时需要挂接多个文件系统时需要。
|
ftpusers
| FTP守护进程的用户访问控制列表。
|
geteways
| routed的网关列表。
|
gettydefs
| getty程序的配置文件。
|
group
| 用户组列表文件。
|
host.conf
| 决定如何解析域名。
|
hosts
| 主机名静态信息。
|
hosts.allow
| 允许访问本机的IP地址列表。
|
hosts.deny
| 禁止访问本机的IP地址列表。冲突时,优先。
|
hosts.equiv
| 信任主机列表,作用于rlogin,rsh,rcp。
|
hosts.lpd
| 信任主机列表,作用于lpd。
|
inetd.conf
| inetd守护进程的配置文件。
|
inittab
| init程序的配置文件。
|
issue
| 登陆提示符上面的消息和标识文件。
|
ld.so.conf
| 搜索共享库的目录列表文件。
|
motd
| 本机的标识信息,远程登陆时确认你当前控制的是本机还是远程计算机。
|
mtab
| 文件系统的动态信息,记录当前挂载的文件系统。
|
mtools.conf
| mtools程序的配置文件。
|
networks
| 网络名称的静态信息,与hosts类似。
|
passwd
| 用户密码文件。
|
printcap
| ldp打印机的性能数据库。
|
profile
| sh shell登陆的全局初始化文件。
|
protocols
| 网络协议定义文件。
|
resolv.conf
| DNS域名解析的配置文件。
|
rpc
| RPC协议定义文件。
|
securetty
| Root登陆的TTY访问控制文件。
|
services
| 记录网络服务名和它们对应使用的端口号及协议。
|
shells
| 可使用的登陆shell路径名。
|
syslog.conf
| syslogd守护进程的配置文件。
|
表2-3-4
这里,显然mtab就不适合/etc内单纯为不可变文件的原则,这在今后会逐步得到解决。
(未完...待续...)