FHS 在于规范每个特点目录下应该要放置什么样的数据例如/etc应该要放置设置文件,/bin与/sbin则应该要放置可执行文件等等。
四种交互作用形态
可分享的shareable | 不可分享的unshareable | |
不变的 static | /usr(软件放置位置) | /etc(配置文件) |
/opt(第三方软件) | /boot (开机与内核文件) | |
可变的 ariable | /var/mail(用户文件信箱) | /var/run(程序相关) |
/var/spool/news(新闻组) | /var/lock(程序相关) |
FHS建议:根目录所在的分区越小,系统性能就越好,根目录所在的文件系统也较不容易发生问题
下面列出一个表格,总结一些重要目录放置的文件内容:
目录 |
应放置文件内容 |
/bin |
放置一些在单用户维护模式下还能被操作的命令,主要有:cat,chmod,chown,date,mv,mkdir,cp,bash等命令 |
/boot |
放置开机会使用到的文件,包括Linux内核文件以及开机菜单与开机所需配置文件等 |
/dev |
以文件形式存放任何设备与接口设备,比较重要的文件:/dev/null,/dev/zero,/dev/tty,/dev/lp*,/dev/hd*,/dev/sd*等 |
/etc |
系统主要的配置文件几乎都放置在这个目录内。FHS建议:不要将可执行文件放到这个目录,比较重要的文件:/etc/inittab,/etc/init.d,/etc/modprobe.conf,/etc/X11,/etc/sysconfig等 |
/home |
系统默认的用户主文件夹,~代表当前用户主文件夹 |
/lib |
放置在开机时会用到的函数库,以及在/bin或/sbin下面的命令会调用的函数库,/lib/modules这个目录放置的驱动程序文件,尤其重要 |
/media |
此目录下的文件都是可删除的设备,www.linuxidc.com常见文件名:/media/cdrom |
/mnt |
用来暂时挂载某些额外设备 |
/opt |
第三方软件放置的目录 |
/root |
系统管理员的主文件夹,/root应该和根目录放在同一个分区中 |
/srv |
存放网络服务所需取用的数据,如:www服务需要的网页数据就可以放置在/srv/www里面 |
/tmp |
任何人都可以访问这个目录,这是用于暂时放置文件的地方,重要的数据都不可以放到这个目录里面,FHS建议:每次开机时都清空一下这个目录 |
/sbin |
放置了开机过程所需的命令,包括开机、修复、还原系统所需的命令 |
注意:
开机过程中,只要根目录会被挂载,其他分区则是在开机完成后才会持续进行挂载,所以在根目录下与开机相关的目录都不能与根目录放到不同的分区中
从上表可以轻易得出,下列五个目录一定不可与根目录分开:
/etc----配置文件
/bin----重要执行文件
/dev----所需要的设备文件
/lib----执行文件所需要的函数库与内核所需的模块
/sbin----重要的系统执行文件
/usr | 根据FHS规范的第二层内容,在/usr目录下,包含系统的主要程序、图形界面所需要的文件、额外的函数库、本机自行安装的软件,以及共享的目录与文件。它有点像Windows操作系统中的“Program files”与“Windows”这两个目录的结合。在此目录下的重要子目录有:
|
/var | 这个目录也很重要,也是FHS规范的第二层目录内容。它主要放置系统执行过程中经常变化的文件,例如缓存(cache)或者是随时更改的日志文件(log file)。此外,某些软件执行过程中会写入的数据库文件,例如MySQL数据库,也都写入这个目录中。它下面的主要目录有:
|
FHS(Filesystem Hierarchy Standard)文件层递结构标准,在UNIX/Linux系统中(当然还包括一些非标准的UNIX系统,例如BSD),为了防止目录定义混乱,人们制定了这个标准。标准的内容很少,似乎写的有点繁琐,这里,我将它的大致目录结构列出来,比较明了一点。
有关FHS的详细内容,可以参阅:http://www.pathname.com/fhs/ (他的官方网址)
/ 根目录
/bin 常用的命令 binary file 的目录
/boot 存放系统启动时必须读取的档案,包括核心 (kernel) 在内
/boot/grub/menu.lst GRUB设置
/boot/vmlinuz 内核
/boot/initrd 核心解压缩所需 RAM Disk
/dev 系统周边设备
/etc 系统相关设定文件
/etc/DIR_COLORS 设定颜色
/etc/HOSTNAME 设定用户的节点名
/etc/NETWORKING 只有YES标明网络存在
/etc/host.conf 文件说明用户的系统如何查询节点名
/etc/hosts 设定用户自已的IP与名字的对应表
/etc/hosts.allow 设置允许使用inetd的机器使用
/etc/hosts.deny 设置不允许使用inetd的机器使用
/etc/hosts.equiv 设置远端机不用密码
/etc/inetd.conf 设定系统网络守护进程inetd的配置
/etc/gateways 设定路由器
/etc/protocols 设定系统支持的协议
/etc/named.boot 设定本机为名字服务器的配置文件
/etc/sysconfig/network-scripts/ifcfg-eth0 设置IP
/etc/resolv.conf 设置DNS
/etc/X11 X Window的配置文件,xorg.conf 或 XF86Config 这两个 X Server 的设定档
/etc/fstab 记录开机要mount的文件系统
/etc/inittab 设定系统启动时init进程将把系统设置成什么样的runlevel
/etc/issue 记录用户登录前显示的信息
/etc/group 设定用户的组名与相关信息
/etc/passwd 帐号信息
/etc/shadow 密码信息
/etc/sudoers 可以sudo命令的配置文件
/etc/securetty 设定哪些终端可以让root登录
/etc/login.defs 所有用户登录时的缺省配置
/etc/exports 设定NFS系统用的
/etc/init.d/ 所有服务的预设启动 script 都是放在这里的,例如要启动或者关闭
/etc/xinetd.d/ 这就是所谓的 super daemon 管理的各项服务的设定文件目录
/etc/modprobe.conf 内核模块额外参数设定
/etc/syslog.conf 日志设置文件
/home 使用者家目录
/lib 系统会使用到的函数库
/lib/modules kernel 的相关模块
/var/lib/rpm rpm套件安装处
/lost+found 系统不正常产生错误时,会将一些遗失的片段放置于此目录下
/mnt 外设的挂载点
/media 与/mnt类似
/opt 主机额外安装的软件
/proc 虚拟目录,是内存的映射
/proc/version 内核版本
/proc/sys/kernel 系统内核功能
/root 系统管理员的家目录
/sbin 系统管理员才能执行的指令
/srv 一些服务启动之后,这些服务所需要取用的数据目录
/tmp 一般使用者或者是正在执行的程序暂时放置档案的地方
/usr 最大的目录,存许应用程序和文件
/usr/X11R6: X-Window目录
/usr/src: Linux源代码
/usr/include:系统头文件
/usr/openwin 存放SUN的OpenWin
/usr/man 在线使用手册
/usr/bin 使用者可执行的 binary file 的目录
/usr/local/bin 使用者可执行的 binary file 的目录
/usr/lib 系统会使用到的函数库
/usr/local/lib 系统会使用到的函数库
/usr/sbin 系统管理员才能执行的指令
/usr/local/sbin 系统管理员才能执行的指令
/var 日志文件
/var/log/secure 记录登入系统存取数据的档案,例如 pop3, ssh, telnet, ftp 等都会记录在此档案中
/var/log/wtmp 记录登入者的讯息数据, last
/var/log/messages 几乎系统发生的错误讯息
/var/log/boot.log 记录开机或者是一些服务启动的时候,所显示的启动或关闭讯息
/var/log/maillog 纪录邮件存取或往来( sendmail 与 pop3 )的使用者记录
/var/log/cron 记录 crontab 这个例行性服务的内容
/var/log/httpd, /var/log/news, /var/log/mysqld.log, /var/log/samba, /var/log/procmail.log:
分别是几个不同的网络服务的记录文件