一. 根目录 (/) 的意义与内容:
FHS标准建议:根目录(/)所在分区应该越小越好, 且应用程序所安装的软件最好不要与根目录放在同一个分区内,保持根目录越小越好。 如此不但效能较佳,根目录所在的文件系统也较不容易发生问题。说白了,就是根目录和Windows的C盘一个样。
根据以上原因,FHS认为根目录(/)下应该包含如下子目录:
目录 | 放置档案内容 |
/bin | /bin放置的是在单人维护模式下还能够被操作的指令。在/bin底下的指令可以被root与一般帐号 所使用,主要有:cat,chmod(修改权限), chown, date, mv, mkdir, cp, bash等等常用的指令。 |
/boot | 主要放置开机会使用到的档案,包括Linux核心档案以及开机选单与开机所需设定档等等。 Linux kernel常用的档名为:vmlinuz ,如果使用的是grub这个开机管理程式,则还会存 在/boot/grub/这个目录。 |
/dev | 在Linux系统上,任何装置与周边设备都是以档案的型态存在于这个目录当中。 只要通过存取这个目录下的某个档案,就等于存取某个装置。比要重要的档案有 /dev/null, /dev/zero, /dev/tty , /dev/lp*, / dev/hd*, /dev/sd*等等 |
/etc | 系统主要的设定档几乎都放置在这个目录内,例如人员的帐号密码档、各种服务的启始档等等。 一般来说,这个目录下的各档案属性是可以让一般使用者查阅的,但是只有root有权力修改。 FHS建议不要放置可执行档(binary)在这个目录中。 |
/home | 这是系统预设的使用者家目录(home directory) |
/lib /lib64 |
放置的开机时使用到的函数库文件以及在/bin或/sbin底下的指令会呼叫的函式库 |
/media | 放置的就是可移除的装置。 包括软碟、光碟、DVD等等装置都暂时挂载于此。 常见的有: /media/floppy, /media/cdrom等等。 |
/mnt | 挂载某些额外的装置,一般建议妳可以放置到这个目录中。在古早时候,这个目录的用途与 /media相同。 只是有了/media之后,这个目录就 用来暂时挂载用了 |
/opt | 三方软件放置的地方 |
/root | 挂载根目录时,该目录就能够拥有root的家目录,所以我们会希望root的家目录与根目录 放置在同一个分区中。 |
/sbin | 放在/sbin底下的为开机过程中所需要的,里面包括了开机、修复、还原系统所需要的指令 |
/svr | 视为service的缩写,是一些网路服务启动之后,这些服务所需要取用的资料目录。 常见的 服务例如WWW, FTP等等。 |
/tmp | 这是让一般使用者或者是正在执行的程序暂时放置档案的地方。这个目录是任何人都能够存取的, 所以你需要定期的清理一下。 |
扩充目录 | 放置档内容 |
/proc | 这个目录本身是一个虚拟文件系统,他放置的资料都是在内存当中,例如系统核心、进程、周边 装置的状态及网络状态等等。因为这个目录下的资料都是在记忆体(内存)当中,所以本身不 占任何硬盘空间。比较重要的档案(目录) |
/sys | 这个目录其实跟/proc非常类似,也是一个虚拟的档案系统,主要也是记录与核心相关的资讯。 包括目前已载入的核心模组与核心侦测到的硬体装置资讯等等。 这个目录同样不占硬盘容量。 |
另外要注意的是,因为根目录与开机有关,开机过程中仅有根目录会被挂载, 其他分区则是在开机完成之后才会持续的进行挂载的行为。就是因为如此,因此根目录下与开机过程有关的目录即红字的目录, 不能够与根目录放到不同的分区去。
二. /usr 的意义与内容:
目录 | 放置档案内容 |
/usr/bin | 绝大部分的用户可使用的与开机无关的指令都放在这里,与/bin的区别就是与开机无关 |
/usr/include | c/c++等程序语言的档头(header)与包含档(include)放置处 |
/usr/lib /usr/lib64 |
包含各应用软件的函式库、目标文件 |
/usr/local | 管理员在本机自行安装自己下载的软件,建议安装到此目录, 这样会比较便于管理。该目录下也是具有bin, etc, include, lib...的次目录 |
/usr/sbin | 非系统正常运作所需要的系统指令。最常见的就是某些网络服务器软件的服务指令。 |
/usr/share | 多数联机或者离线帮助文档或手册放置到该目录下 |
/usr/src | 一般原始码建议放置到这里,src有source的意思。至于核心原始码则建议放置到/usr/src/linux/目录下。 |
三. /var 的意义与内容:
目录 | 放置档内容 |
/var/cache | 应用程序本身运作过程中会产生的一些暂存档 |
/var/lib | 程序本身执行的过程中,需要使用到的数据文件放置的目录。在此目录下各自的软件应 该要有各自的目录。举例来说,MySQL的数据库放置到/var/lib/mysql/而rpm的数据库则 放到/var/lib/rpm去 |
/var/lock | 某些装置或者是文件资源一次只能被一个应用程序所使用,如果同时有两个程序使用该装 置时, 就可能产生一些错误的状况, 因此就得要将该装置上锁(lock),以确保该装置只会给单一软件所使用。 |
/var/log | 非常重要。这是登录文件放置的目录。里面比较重要的文件如/var/log/messages, /var/log/wtmp(记录登入者的信息)等。 |
/var/mail | 放置个人电子邮件信箱的目录,不过这个目录也被放置到/var/spool/mail/目录中,通常这 两个目录是互为链接文件。 |
/var/run | 某些程序或者是服务启动后,会将他们的PID放置在这个目录下 |
/var/spool | 这个目录通常放置一些队列数据,所谓的“队列”就是排队等待其他程序使用的数据。 这些 数据被使用后通常都会被删除。举例来说,系统收到新信会放置到/var/spool/mail/中, 但 使用者收下该信件后该封信原则上就会被删除。信件如果暂时寄不出去会被放到 /var/spool/mqueue/中, 等到被送出后就被删除。如果是工作排程数据(crontab),就会被 放置到/var/spool/cron/目录中。 |
四.系统大概构架图