一、概述
1、树形结构
Ubuntu的文件系统只是一个树形层次组织结构的目录文件树
若干文件可以组成一个目录,而若干不同的目录则可以构成一个目录的层次组织结构,位于目录层次结构顶端的是一个被称为根目录的特殊目录。
根目录/相当于整个目录文件树的根,所有的目录无论其如何组织,最终都是要挂在根目录/下的
2、起点
文件系统的起点根据用户身份的不同而不同
超级用户root的家目录是root
普通用户的家目录是/home目录下和用户名相同的目录。
3、子目录与文件
子目录是比当前目录层次低一级的目录,是整个目录文件树形层次组织结构中的中间节点。
文件是整个目录树形层次组织结构中的一个叶子节点。
4、命令默认路径
除非明确指定了目录路径,否则大多数Linux系统命令均把文件参数看作当前目录中的文件。
5、绝对路径和相对路径
访问层级系统有两个起点:
(1)从根目录开始算起,称之为绝对路径,特点是路径名以斜线开始;
(2)从当前目录开始算起,称之为相对路径,特点是以目录名而非斜线开始。
绝对路径名指定了文件在文件系统的层级结构中从根目录开始的存储位置;
相对路径则是当前目录为起始字符的所有路径名都是相对路径名,相对路径名指定了文件在文件系统中相对于当前工作目录的存储位置。
二、重要目录
1.根目录
根目录,即整个文件系统的逻辑终点,用"/"表示。
2.一级目录
/bin:
包含普通用户和系统、系统管理员可以共享的各种通用程序
如bash、dd、df、gzip、grep、mv和mkdir等常用的基本命令。
/boot:
包含系统引导程序GRUB及其配置文件、Linux内核文件vmlinuz和磁盘内存映像文件initrd.img等重要引导文件。
/dev:
包含系统支持的所有设备文件。
例如:
console表示系统控制台
lp0表示打印机
mem表示系统的物理内存
sda表示连接到主控制器上的第一个磁盘, sda1和sda2等则分别表示其中的第一个和第二个磁盘分区
ttyXX表示系统的串口设备。
/etc:
包含系统管理和维护方面的所有配置文件
如host.conf、 resolv.conf、sysctl.conf和syslog.conf等。
/home:
包含所有普通用户的家目录。
每增加一个新用户,系统将会在/home目录中创建一个和用户名相同的子目录作为该用户的家目录。
/lib:
包含系统引导过程,以及运行系统命令所需要的内核模块和各种动态链接共享库文件
扩展名为.so,类似于Windows系统中的.dll文件
/lost+found:
用于存储fsck命令在检测与修复文件系统时删除的文件或目录。
/media:
包含移动存储介质(移动硬盘或U盘)的挂载点
/mnt:
包含所有自定义的文件系统的挂载点
/opt:
应用程序等附加软件的安装目录
类似于Windows系统中的Program Files目录。
/proc:
虚拟文件系统
系统关闭时为空目录,系统运行时进程文件系统根目录。
/root:
超级用户root的家目录。
/sbin:
包含超级管理员的常用工具。
/srv:
分担了/var目录的一些功能,保存一些网络服务所用的数据文件。
/sys:
和proc一样是虚拟目录,系统各种设备配置信息的根目录
如block子目录中含有磁盘及磁盘分区的配置信息。
/tmp:
临时文件目录
用于存储系统运行过程中生成的临时文件,也可以供用户存储自己的临时文件
只有文件的创建者才能删除相应文件。
/usr:
此目录可以作为根目录下的一个子目录,其中保存系统提供的各种共享数据
也可以作为一个单独的文件系统,可以认为是对根目录的一个递归目录。
/var:
和/usr目录类似,首先是根目录下的一个子目录,也可作为一个单独的文件系统
用于存储各种可变长的数据文件(如日志文件)、暂存文件或待处理的临时文件等。
3.重要的二级目录
/boot/grub:
其中存有GRUB配置文件,以及3种不同类型的初始引导程序等。
/etc/apt:
其中包含软件管理工具使用的配置文件,如sources.list等。
/etc/cron.d:
用于存储cron进程调度运行后台进程所用的配置和控制文件。
其他有关的目录包括cron.hourly、cron.daily、cron.weekly和cron.monthly 4个目录。
/etc/init.d:
用于存储系统启动过程中需要由init调度执行的脚本文件。
/etc/network:
其中包含网络接口的配置文件interfaces,以及相关的配置工具。
/etc/X11:
其中包含X服务器使用的各种配置文件,如xorg.conf等。
/usr/bin:
其中包含用户经常使用的各种命令。
/usr/include:
用于存储各种C语言头文件
这个目录及其子目录中的头文件是C开发人员需要经常引用的文件。
/usr/lib:
包含各种共享的库函数,可供程序员以静态或动态的方式链接自己开发的应用程序。
/usr/sbin:
其中包含系统引导完成之后系统管理员经常使用的各种系统管理和维护命令。
/usr/share:
共享目录
包含man(联机文档的根目录)、info(GNU info文档的根目录)、doc(各种软件包特定的文档)、locale(语言环境)、vim(用户指南)及zoneinfo(时区定义)等子目录。
/usr/src:
存放Linux系统内核的源代码和文档等。
/var/lib:
存储软件包特定的动态链接共享库、配置文件、数据文件和状态信息等。
/var/log:
系统守护进程日志文件的存储目录,其中包括lastlog(每个用户最后一次注册的时间记录)、messages(由syslogd记录的所有内核和系统程序的日志消息)及wtmp(所有用户的系统注册/注销记录)等重要文件。
/var/lock:
用于存储各种服务进程或应用程序访问特定的设备或文件时设置的封锁文件。
/var/run:
系统运行信息文件的根目录,其中的各种.pid文件存有相应守护过程的PID。
另外一个最典型的文件是/var/run/utmp,其中含有当前系统中的用户注册信息。
/var/spool:
用于缓存各种等待处理的文件,如打印任务等。
/var/tmp:
用于存储各种临时文件。