左右内容参考FHS标准,如有错误请指正,万分感谢
首先说明下FHS标准:
目的
用户与软件可以预测已安装文件和文件夹的位置
原则
定文件系统各个区域的指导性原则
指定最少应该包含的必需的文件和文件夹
列举原则中的例外情况
列举有历史冲突的特殊情况
linux文件目录结构:
如下图:
根目录
用途
根文件系统的内容必须足以启动、还原、恢复或修复系统
启动系统时,根分区上应可以挂载其他分区,其他分区包括工具,配置,引导装载程序信息和其他启动必须的数据。/usr、 /opt和/var可以位于其他的分区或文件系统
注:发行版不应改动特定目录,应用程序不应在根下创建新的文件夹
二进制程序存放的目录
如上图,红色标注的文件夹为存放二进制可执行程序的目录。
/bin
/bin 包含了系统管理员和用户都可能使用的命令,并且是那些要求在没有挂载其他文件系统的情况下能够使用(例如在单用户模式下)的命令。它也可能包含脚本间接使用的命令。
注:/bin下不能有子文件夹
- 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 | ‘sed’流编辑器 |
sh Bourne | Shell 如果/bin/sh 不真是 Bourne shell,它必须为指向真正shell命令的硬链接或软链接。 |
stty | 改变和打印终端行设置的工具 |
su | 改变用户 ID 的工具 |
sync | 清洗文件系统缓存区的工具 |
true | 什么也不做,只返回成功的工具 |
umount | 卸载文件系统的工具 |
uname | 打印系统信息的工具 |
/sbin
/sbin 包含除了/bin 中之外其他的启动、还原、恢复和/或修复系统所必需的二进制文件。
注:在已知/usr 已经挂载(并且没有问题)的情况下执行的程序通常位于/usr/sbin 下。本地安装的系统管理程序应该位于/usr/local/sbin 下
- /sbin 下应该有以下命令或符号链接
命令 | 描述 |
---|---|
shutdown | 关闭系统的命令 |
- 如果安装了相应子系统,/sbin 下必须有以下文件或符号链接:
命令 | 描述 |
---|---|
fastboot | 不检查磁盘重启系统(可选) |
fasthalt | 不检查磁盘停止系统(可选) |
fdisk | 操作分区表(可选) |
fsck | 文件系统检查和修复工具(可选) |
fsck.* | 针对某一特定文件系统的检查和修复工具(可选) |
getty | getty 程序(可选) |
halt | 停止系统的命令(可选) |
ifconfig | 配置网络接口的命令(可选) |
init | 初始化进程(可选) |
mkfs | 创建文件系统的命令(可选) |
mkfs.* | 创建特定文件系统的命令(可选) |
mkswap | 设置交换区的命令(可选) |
reboot | 重启系统的命令(可选) |
route | IP 路由表工具(可选) |
swapon | 启用分页和交换(可选) |
swapoff | 关闭分页和交换(可选) |
update | 周期性的清洗文件系统缓存区的后台服务(可选 |
库文件存放的目录
如上图黄色的为linux系统的库文件存放目录
/lib
/lib 存放程序启动时所依赖的基本共享库文件,及内核模块文件
/lib64
/lib64 X86_64系统上,辅助共享库文件存放位置 对应FHS 中的 lib<'qual>
/boot
/boot 中存储了内核在开始执行用户模式程序之前所使用的数据(包含了启动过程中所需的所有文件,除了启动时不需要的配置文件和映射安装程序)这会包括保存的主启动扇区和扇区映射文件 注:操作系统内核必须位于/或者/boot
/etc
/etc 层次结构包含了配置文件。“配置文件”是一个用于控制程序操作的本地文件;它必须是静态文件而且不能是可执行的二进制文件
注:/etc 下面不能放置二进制文件
/etc 文件夹下要求有如下文件夹或符号链接。
文件夹 | 描述 |
---|---|
opt | opt 的配置 |
X11 | X 窗口系统的配置(可选) |
sgml | SGML 的配置(可选) |
xml | XML 的配置(可选) |
如果如果安装了相应的子系统,/etc下必须有以下文件或符号链接
文件 | 描述 |
---|---|
csh.login | 系统范围的 C shell 登录初始化文件(可选) |
exports | NFS 文件系统访问控制表(可选) |
fstab | 文件系统的静态信息(可选) |
ftpusers | FTP 后台服务用户访问控制表(可选) |
gateways | 路由用的网关列表文件(可选) |
gettydefs | getty 用的速率和终端设置(可选) |
group | 用户组文件(可选) |
host.conf | 解析器配置文件(可选) |
hosts | 有关主机名的静态信息(可选) |
hosts.allow | TCP wrapper 的主机访问文件(可选) |
hosts.deny | TCP wrapper 的主机访问文件(可选) |
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 | root 登录的 TTY 访问控制(可选) |
services | 网络服务的端口名称(可选) |
shells | 有效的登录 shell 的路径名称(可选) |
Syslog.conf | syslogd 的配置文件(可选) |