[root@linux ~]# ls -l / |
图6-4 根据FHS定义的各层目录相关性 |
目录
|
应放置的文件内容
|
/
|
根目录
root
(
/
),一般建议在根目录下面只有目录,不要直接有文件。根目录是启动时系统第一个载入的分区,所以,所有启动过程会用到的文件应该都放在这个分区中。举例来说,
/etc
、
/bin
、
/dev
、
/lib
、
/sbin
这
5
个子目录都应该要与根目录连在一起,不可独立成为某个分区
|
/bin,
/usr/bin, /usr/local/bin |
除了
/bin
之外,
/usr/local/bin
、
/usr/bin
也是放置“
用户可执行的二进制文件的目录
”。举例来说,
ls
、
mv
、
rm
、
mkdir
、
rmdir
、
gzip
、
tar
、
cat
、
cp
、
mount
等重要命令都放在这个目录中
|
/boot
|
这个目录的主要目的是放置
Linux
系统启动会用到的文件。启动会用到
Linux
的核心文件。这个目录下面的文件
vmlinuz
就是
Linux
的核心。非常重要。如果引导程序(
loader
)选择
grub
,那么这个目录内还有
/boot/grub
子目录
|
/dev
|
在
Linux
系统上,任何设备都以文件类型存在于这个目录中。存取这个目录下面的某个文件,就等于存取某个设备。设备又分为字符设备(
character device
),例如键盘、鼠标等;以及块设备(
block device
),例如硬盘、光盘等等。在此目录下的文件会多出两个属性,分别是主设备号(
major device number
)与辅设备号(
minor device number
)。系统核心就是通过这两个号码来判断设备的。重要的文件有
/dev/null
、
/dev/tty[1-6]
、
/dev/ttyS*
、
/dev/lp*
、
/dev/hd*
、
/dev/sd*
等等
|
/etc
|
系统主要的设置文件几乎都放在这个目录内,例如人员的账号密码文件、各种服务的起始文件等等。一般来说,这个目录下的各文件属性是可以让一般用户查看的,但只有
root
有权修改。并且,在此目录下的文件几乎都是
ASCII
的纯文本文件。不过,
FHS
建议不要在这个目录中放置可执行文件。比较重要的文件有:
/etc/inittab
、
/etc/init.d/
、
/etc
/modprobe.conf 、 /etc/X11 、 /etc/fstab 、 /etc/sysconfig/ 等等。另外,其下重要的目录有:
・
/etc/init.d/
:所有服务的默认启动脚本都放在这里,例如要启动或者关闭
iptables
的话:
/etc/init.d/iptables start
/etc/init.d/iptables stop
|
|
・
/etc/xinetd.d/
:这就是所谓的超级守护程序(
super daemon
)管理的各项服务的设置文件目录。
・
/etc/X11
:与
X Window
有关的各种设置文件都在这里,尤其是
xorg.conf
或
XF86Config
这两个
X Server
的设置文件
|
/home
|
这是系统默认的用户家目录(
home directory
)。在新增一般用户账号时,默认的用户家目录都会放到这里。比较重要的是,家目录有两种代号:
~
:表示当前这个用户的家目录,而
~dmtsai
:则表示
dmtsai
的家目录
|
/lib,
/usr/lib, /usr/local/lib |
系统会使用到的函数库的目录。程序在运行过程中,可能会调用一些额外的功能参数,这需要函数库的协助。这些函数库就放在此处。比较重要的是
/lib/modules
目录内会放核心的相关模块
|
/lost+found
|
系统出现异常,产生错误时,会将一些遗失的片段放于此目录下,通常这个目录会自动出现在某个分区最顶层的目录下。例如在
/disk
中加装硬盘,在这个目录下就会自动产生一个这样的目录:
/disk/lost+found
|
/mnt
/media
|
这是软盘与光盘的默认载入点;通常软盘挂在
/mnt/floppy
下,而光盘挂在
/mnt/cdrom
下,不过也不一定。随便找一个地方来载入也可以。另外,当前也规划出另一个
/media
的目录。与
/mnt
有点类似
|
/opt
|
这是给主机额外安装软件所放的目录。举例来说,
FC4
使用
Fedora
团体开发的软件,如果今天想要自行安装新的
KDE
桌面软件,可以将该软件安装在这个目录下。不过,以前的
Linux
系统中,我们还是习惯放在
/usr/local
目录下
|
/proc
|
这个目录本身是一个“虚拟文件系统”。它放置的数据都在内存中,例如系统核心、形成信息、外部设备的状态及网络状态等等。因为这个目录下的数据都在内存中,所以本身不占任何硬盘空间。比较重要的文件有
/proc/cpuinfo
、
/proc/dma
、
/proc/ interrupts
、
/proc/ioports
、
/proc/net/*
等等
|
/root
|
系统管理员(
root
)的家目录。之所以放在这里,是因为我们提过,系统第一个启动就载入的分区为
/
,而我们希望
/root
能够与
/
放在同一块分区上
|
/sbin,
/usr/sbin, /usr/local/sbin |
放一些系统管理员才会用到的执行命令,例如:
fdisk
、
mke2fs
、
fsck
、
mkswap
、
mount
等等。与
/bin
不太一样的地方是,这几个目录是给
root
等系统管理用的。但本目录下的执行文件还是可以让一般用户用来“查看”而不能设置
|
/srv
|
一些服务启动之后,这些服务所需要取用的数据目录。举例来说,
WWW
服务器需要的网页数据就可以放在
/srv/www
里
|
/tmp
|
这是让一般用户或者是正在执行的程序临时放置文件的地方。这个目录是任何人都能存取的,所以需要定期清理。当然,重要数据不可放在此目录
|
/usr
|
根据
FHS
规范的第二层内容,在
/usr
目录下,包含系统的主要程序、图形界面所需要的文件、额外的函数库、本机自行安装的软件,以及共享的目录与文件等等。事实上,它有点像
Windows
操作系统中的“
Program files
”与“
WinNT
”这两个目录的结合。在此目录下的重要子目录有:
・
/usr/bin
,
/usr/sbin
:一般身份用户与系统管理员可执行的文件放置目录。
・
/usr/include
:
c/c++
等程序语言的文件头(
header
)与包含文件(
include
)放置处,当以
tarball
方式(
*.tar.gz
的方式安装软件)安装某些数据时,会使用到里头的许多包含文件。
・
/usr/lib
:各应用软件的函数库文件放置目录。
・
/usr/local
:本机自行安装的软件默认放置的目录。当前也适用于
/opt
目录。在安装完
Linux
之后,基本上所有的配置都有了,但软件总是可以升级的,例如要升级代理服务,则通常软件默认的安装地方就是在
/usr/local
(
local
是“当地”的意思),同时,安装完毕之后所得到的执行文件,为了与系统原执行文件有分别,升级后的执行文件通常放在
/usr/local/bin
。建议将后来才安装的软件放在这里,便于管理
|
|
・
/usr/share
:共享文件放置的目录,例如下面两个目录:
n
/usr/share/doc
:放置一些系统帮助文件的地方,例如安装了
grub
,那么在该目录下面找一找,就可以查到
lilo
的帮助文件了。很方便。
n
/usr/share/man
:
manpage
的文件文件目录。就是使用
man
的时候查询的路径。例如使用
man ls
命令时,就会查出
/usr/share/ man/man1/ls.1.gz
帮助文件的内容。
Ÿ
/usr/src
:
Linux
系统相关的程序代码放置目录,例如
/usr/ src/linux
为核心源码。
Ÿ
/usr/X11R6
:系统内的
X Window System
所需的执行文件几乎都放在这里
|
/var
|
这个目录也很重要,也是
FHS
规范的第二层目录内容。它主要放置系统执行过程中经常变化的文件。举例来说,例如缓存(
cache
)或者是随时更改的登录文件(
log file
)。此外,某些软件执行过程中会写入的数据库文件,例如
MySQL
数据库,也都写入这个目录中。很重要。它下面的重要目录有:
・
/var/cache
:程序文件在运行过程当中的一些暂存盘。
・
/var/lib
:程序执行的过程中,需要使用到的数据文件放置的目录。举例来说,
locate
数据库与
MySQL
及
rpm
等数据库系统,都写在这个目录内。
・
/var/log
:登录文件放置的目录。很重要。例如
/var/log/ messages
就是总管所有登录文件的文件。
・
/var/lock
:某些设备具有一次性写入的特点,例如
tab
(磁带机),此时,为了避免被其他人干扰而破坏正在运行的操作,因此,会将该设备
lock
(锁)起来,以确定该设备只能被单一程序所用。
・
/var/run
:某些程序或者是服务启动后,会将它们的
PID
放在这个目录下。
・
/var/spool
:是一些队列数据存放的地方。举例来说,主机收到电子邮件后,就会放到
/var/spool/mail
中,若信件暂时发不出去,就会放到
/var/spool/mqueue
目录下,用户工作任务分配(
cron
)则是放在
/var/spool/cron
中
|