Linux系统根目录概述
# 常见一级文件目录说明
FHS 是什么?
FHS(Filesystem Hierarchy Standard),文件系统层次化标准,该标准规定了 Linux 系统中所有一级目录以及部分二级目录(/usr 和 /var)的用途。发布此标准的主要目的就是为了让用户清楚地了解每个目录应该存放什么类型的文件。
在 Linux 或 Unix 操作系统中,所有的文件和目录都被组织成以一个根节点开始的倒置的树状结构。
文件系统的最顶层是由根目录开始的,系统使用 / 来表示根目录。在根目录之下的既可以是目录,也可以是文件,而每一个目录中又可以包含子目录文件。如此反复就可以构成一个庞大的文件系统。
# | 目录 | 说明 |
---|---|---|
1 | /bin | Binaries (二进制文件) 的缩写,包含系统启动时需要的执行文件(二进制),例如ls,cat,mkdir等,这些文件可以被普通用户使用。 |
2 | /dev | Device(设备) 的缩写,为设备目录,用于存放设备文件,Linux 下设备被当成文件,这样一来硬件被抽象化、便于读写、网络共享以及需要临时装载到文件系统中,正常情况下,设备会有一个独立的子目录,这些设备的内容会出现在独立的子目录下。 |
3 | /etc | Etcetra(其他、等等) 的缩写,后来被解释为Editable Text Configuration或者Extended Tool Chest,为操作系统的配置文件目录(防火墙、启动项)。 |
4 | /home | 包含用户的文件:参数设置文件、个性化文件、文档、数据、EMALL、缓存数据等,每增加一个用户,系统就会根据其用户名在 home 目录下新建和其他用户同名的文件夹,用于保存其用户配置。 |
5 | /lib /lib64 | Library(库) 的缩写,系统调用的函数库保存位置,存放跟文件系统中的程序运行所需要的共享库及内核模块。共享库又叫动态链接共享库,作用类似windows里的.dll文件,存放了根文件系统程序运行所需的共享文件。 |
6 | /lost+found | 这个目录平时是空的,系统非正常关机而留下“无家可归”的文件就在这里。在系统启动的过程中,fsck 工具会检查这里,并修复已经损坏的文件系统。 |
7 | /media | 挂载目录。系统建议用来挂载媒体设备,如软盘和光盘 |
8 | /mnt | 系统管理员安装临时文件系统的安装点,系统提供这个目录是让用户临时挂载其他的文件系统。 |
9 | /opt | Optional(可选) 的缩写额外安装的可选应用程序包所放置的位置。一般情况下,我们可以把tomcat等都安装到这里。不过 /usr/local/ 目录也可以用来安装软件 |
10 | /proc | Processes(进程) 的缩写,包含虚幻的文件,他们实际上并不存在于磁盘上,也不占用任何空间(用 ls-l 可以显示它们的大小)当查看这些文件时,实际上是在访问存在内存中的信息,这些信息用于访问系统。 |
11 | /root | 为系统管理员(也叫超级用户或根用户)的 Home 目录。 |
12 | /run | 存放进程产生的临时文件。 |
13 | /sbin | s 就是Super User 的意思,是 Superuser Binaries (超级用户的二进制文件) 的缩写,存放二进制可执行文件,保存与系统环境设置相关的命令,只有root才能访问。这里存放的是系统管理员使用的系统级别的管理命令和程序。如ifconfig等。 |
14 | /srv | Service(服务) 的缩写,服务数据目录。一些系统服务启动之后,可以在这个目录中保存所需要的数据。 |
15 | /sys | 虚拟文件系统。和 /proc/ 目录相似,该目录中的数据都保存在内存中,主要保存与内核相关的信息 |
16 | /tmp | Temporary(临时) 的缩写,用于存放各种临时文件,是公用的临时文件存储点。 |
17 | /usr | Unix Shared Resources(共享资源) 的缩写,软件的默认安装位置,用于存放系统应用程序,比较重要的目录/usr/local 本地系统管理员软件安装目录(安装系统级的应用)。这是最庞大的目录,要用到的应用程序和文件几乎都在这个目录。 |
18 | /var | Variable(变量) 的缩写,包含在正常操作中被改变的文件、假脱机文件、记录文件、加锁文件、临时文件和页格式化文件等。比方说各种服务的日志文件(系统启动日志等)。 |
# 两个特殊的目录
在Linux文件系统中有两个特殊的目录,一个用户所在的工作目录,也叫当前目录,可以使用一个点 .
来表示;另一个是当前目录的上一级目录,也叫父目录,可以使用两个点 ..
来表示。
.
:代表当前的目录,也可以使用./
来表示;..
:代表上一层目录,也可以../
来代表。
如果一个目录或文件名以一个点.
开始,表示这个目录或文件是一个隐藏目录或文件(如:.bashrc
)。即以默认方式查找时,不显示该目录或文件。
# 一些二级目录说明
# /usr
目录详细说明
usr(注意不是 user),全称为 Unix Software Resource,此目录用于存储系统软件资源。
Linux 系统中,所有系统默认的软件都存储在 /usr 目录下,/usr 目录类似 Windows 系统中 C:\Windows\ + C:\Program files\ 两个目录的综合体。
子目录 | 功能(作用) |
---|---|
/usr/bin/ | 存放系统命令,普通用户和超级用户都可以执行。这些命令和系统启动无关,在单用户模式下不能执行 |
/usr/sbin/ | 存放根文件系统不必要的系统管理命令,如多数服务程序,只有 root 可以使用。 |
/usr/lib/ | 应用程序调用的函数库保存位置 |
/usr/XllR6/ | 图形界面系统保存位置 |
/usr/local/ | 手工安装的软件保存位置。我们一般建议源码包软件安装在这个位置 |
/usr/share/ | 应用程序的资源文件保存位置,如帮助文档、说明文档和字体目录 |
/usr/src/ | 源码包保存位置。我们手工下载的源码包和内核源码包都可以保存到这里。不过笔者更习惯把手工下载的源码包保存到 /usr/local/src/ 目录中,把内核源码保存到 /usr/src/linux/ 目录中 |
/usr/include | C/C++ 等编程语言头文件的放置目录 |
# /var
目录详细说明
/var 目录用于存储动态数据,例如缓存、日志文件、软件运行过程中产生的文件等。
子目录 | 功能(作用) |
---|---|
/var/lib/ | 程序运行中需要调用或改变的数据保存位置。如 MySQL的数据库保存在 /var/lib/mysql/ 目录中 |
/var/log/ | 登陆文件放置的目录,其中所包含比较重要的文件如 /var/log/messages, /var/log/wtmp 等。 |
/var/run/ | 一些服务和程序运行后,它们的 PID(进程 ID)保存位置 |
/var/spool/ | 里面主要都是一些临时存放,随时会被用户所调用的数据,例如 /var/spool/mail/ 存放新收到的邮件,/var/spool/cron/ 存放系统定时任务。 |
/var/www/ | RPM 包安装的 Apache 的网页主目录 |
/var/nis 、/var/yp | NIS 服务机制所使用的目录,nis 主要记录所有网络中每一个 client 的连接信息;yp 是 linux 的 nis 服务的日志文件存放的目录 |
/var/tmp | 一些应用程序在安装或执行时,需要在重启后使用的某些文件,此目录能将该类文件暂时存放起来,完成后再行删除 |
# 那我们平时要创建一些临时文件放到哪里?
答案是用户的主目录或/tmp/
临时目录。
但是要小心有些目录中不能直接修改和保存数据,比如 /proc/fn/sys/
目录,因为它们是保存在内存中的,如果在这里写入数据,那么你的内存会越来越小,直至死机;
/boot/
目录也不能保存额外数据,因为 /boot/
目录会单独分区作为启动分区,如果没有空闲空间,则会导致系统不能正常启动。