Linux系统目录结构
1、目录介绍
当在使用Linux系统时,可通过ls–l/就会发现,在/下包涵很多的目录,而在这些目录中,依旧存在很多目录或文件。文件系统在Linux下看上去就象树形结构,所以我们可以把文件系统的结构形象的称为树形结构。
文件系统是用来组织和排列文件存取的,在Linux中,我们可通过ls等工具来查看其结构,在Linux系统中,我们见到的全部都是树形结构。比如操作系统安装在一个文件系统中,它表现为由/起始的树形结构。linux文件系统的最顶端是/,我们称/为Linux的root,也就是Linux操作系统的文件系统。Linux的文件系统的入口就是/,所有的目录、文件、设备都在/之下,/就是Linux文件系统的组织者。Linux系统一切皆文件。
File system Hierarchy Standard(文件系统目录标准)的缩写,多数Linux版本采用这种文件组织形式,类似于Windows操作系统中c盘的文件目录,FHS采用树形结构组织文件。FHS定义了系统中每个区域的用途、所需要的最小构成的文件和目录,同时还给出了例外处理与矛盾处理。
FHS针对目录树架构仅定义出三层目录底下应该放置什么数据而已,分别是:
(1)/(root,根目录):与开机系统有关;
(2)/usr(unix softwar eresource):与软件安装/执行有关;
(3)/var(variable):与系统运作过程有关。
2、目录特点
(1)/(根)是所有目录的顶点。
(2)目录结构像一颗倒挂的树。
(3)目录和磁盘分区,默认是没有关联的。
(4)/(根)下不同的目录可能会对应不同的分区或磁盘。
(5)所有的目录都是按照一定的类别和规律组成的。
3、目录说明
3.1/目录
根目录是整个系统最重要的一个目录,因为不但所有的目录都是由根目录衍生出来的,同时根目录也与开机/还原/系统修复等动作有关。由于系统开机时需要特定的开机软件、核心文件、开机所需程序、函式库等等文件数据,若系统出现错误时,根目录也必须要包含有能够修复文件系统的程序才行。因为根目录是这么的重要,所以在FHS的要求方面,它希望根目录不要放在非常大的分区,因为越大的分区内会放入越多的数据,如此一来根目录所在分区就可能会有较多发生错误的机会。
每一个文件和目录都从根开始。
3.2/bin目录
/bin存放二进制可执行命令的目录,在/bin下的指令可以被root与一般帐号所使用,主要有:cat,chmod(修改权限),chown,date,mv,mkdir,cp,bash等常用的指令。
3.3/sbin目录
用来存放二进制可执行文件,只是这里面的命令只供系统管理员,管理系统使用(root用户)。例如:iptables(防护墙)、ifconfig(查看网卡信息)、init(设置启动级别)等。
3.4/boot目录
主要放置开机会使用到的文件,包括Linux核心文件以及开机选单与开机所需设定档等等。Linux kernel常用的档名为:vmlinuz,如果使用的是grub该开机管理程式,则还会存在/boot/grub/该目录。
3.5/dev目录
在Linux系统上,把所有的硬件用文件的形式存储。比较重要的文件有/dev/null,/dev/zero,/dev/tty,/dev/lp*,/dev/hd*,/dev/sd*等。
3.6/etc目录
yum/rpm安装的软件配置文件所在的目录,系统主要的配置文档几乎都放置在该目录内,例如人员的帐号密码、各种服务的启动文件等。该目录下的各文件属性是可以让一般使用者查阅的,但是只有root有权力修改。
3.7/home目录
普通用户家目录(homedirectory),用来存放普通用户的文件
3.8/lib目录
存放二进制库文件,库文件一般以.so|lib*|ld*。
3.9/media目录
media是媒体的英文,顾名思义,该/media底下放置的就是可移除的设备。包括软碟、光碟、DVD等装置都暂时挂载于此。常见的档名有:/media/floppy,/media/cdrom等。
3.10/mn目录
一般用来临时挂载临时存储设备的目录。
3.11/opt目录
一般是给第三方厂家开发的程序的安装目录。现在一般不用。
3.12/root目录
系统管理员(root)的家目录。如果进入单人维护模式而仅挂载根目录时,该目录就能够拥有root的家目录,所以我们会希望root的家目录与根目录放置在同一个分区中。
3.13/srv目录
srv可以视为service的缩写,是一些网路服务启动之后,这些服务所需要取用的资料目录。常见的服务例如WWW,FTP等。
3.14/tmp目录
临时文件存放的地方,由于该目录的权限为1777,所有用户对该目录都有可读可写可执行的权限,所以其他人也可以删除你的文件。
3.15/lost+found目录
该目录使用标准的ext2/ext3文件系统格式才会产生的一个目录,目的在于当文件系统发生错误时,将一些遗失的片段放置到该目录下。该目录通常会在分割槽的最顶层存在,例如你加装一个硬盘于/disk中,那在该系统下就会自动产生一个这样的目录/disk/lost+found。
3.16/proc目录
该目录本身是一个虚拟文件系统(virtual file system)。它只存在内存当中,而不占用外部空间。它以文件系统的方式为访问系统内核数据的操作提供接口。
3.17/sys目录
该目录与/proc类似,也是一个虚拟的文件系统,主要也是记录与核心相关的信息。包括目前已载入的核心模组与核心侦测到的硬件信息等,该目录同样不占硬盘容量。
3.18/usr目录
该目录是集成到主文件系统中的单独文件系统的挂载点,用来存放系统数据,包含大量标准子目录。/usr目的是用来存放静态数据(不随时间改变的数据),没有系统管理员的干涉不会改变的数据。
3.19/usr/bin目录
绝大部分的用户可使用指令都放在这里。
3.20/usr/include目录
c/c++等程序语言的头文件(header)与包含文件(include)放置处。
3.21/usr/lib目录
包含各应用软件的函式库、目标文件(objectfile),以及不被一般使用者惯用的执行文件或脚本(script)。
3.22/usr/local目录
统管理员在本机自行安装自己下载的软件,建议安装到此目录。
3.23/usr/sbin目录
由超级用户运行的非基本系统管理程序。
3.24/usr/share目录
放置共享文件的目录。/usr/share/doc:软件杂项的文件说明;/usr/share/zoneinfo:与时区有关的时区文件。
3.25/usr/src目录
一般原始码建议放置到这里,src有source的意思。至于核心原始码则建议放置到/usr/src/linux/目录下。
3.26/var
目录如果/usr是安装时会占用较大硬盘容量的目录,那么/var就是在系统运作后才会渐渐占用硬盘容量的目录。因为/var目录主要针对常态性变动的文件,包括缓存(cache)、登录档(logfile)以及某些软件运作所产生的文件,包括程序文件(lockfile,runfile),或者例如MySQL数据库的文件等。
3.27/var/cache目录
应用程序本身运作过程中会产生的一些缓存文件。
3.28/var/lib目录
程序本身执行的过程中,需要用到的数据文件存放目录。比如,MySQL的数据库放置到/var/lib/mysql/。
3.29/var/lock目录
某些配置或文件资源一次只能被一个应用程序所使用,如果同时有两个程序使用该装置时,就可能产生一些错误,因此就要将该资源上锁(lock),以确保该资源只会给单一程序所使用。
3.30/var/log目录
这是登录文件放置的目录。主要存放日志等信息。
3.31/var/mail目录
放置个人电子邮件信箱的目录,不过该目录也被放置到/var/spool/mail/目录中,通常这两个目录是互为链接文件。
3.32/var/run目录
某些程序或者是服务启动后,会将它们的PID放置在该目录下。
3.33/var/spool目录
该目录通常放置一些队列数据,所谓的“队列”就是排队等待其它程序使用的数据。这些数据被使用后通常都会被删除。举例来说,系统收到邮件信息会放置到/var/spool/mail/中,但使用者收下该信件后该封信原则上就会被删除。信件如果暂时寄不出去会被放到/var/spool/mqueue/中,等到被送出后就被删除。如果是工作排程数据(crontab),就会被放置到/var/spool/cron/目录中。
个人公众号:
来源:oschina
链接:https://my.oschina.net/u/4299953/blog/4934569