文件系统是Linux操作系统的重要组成部分,其结构可以从组织结构、起始目录与当前工作目录、路径名、标准目录与文件等几个方面进行考察。
Linux操作系统中所有文件存储在文件系统中,文件被组织到一棵“目录树”中,其文件系统层次结构(树状目录结构)如图2.1所示。树根在该层次结构的顶部,树根的下方衍生出子目录分支。
“/”是根目录,位于文件系统层次结构的顶部。“/”还用作文件名中的目录分隔符。例如,如果etc是根目录的子目录,就把它称为/etc目录。根目录的子目录用于标准化的用途,以便根据文件和用途组织文件,从而方便查找文件。子目录/boot用于存储启动系统所需的文件。
图2.1 树状目录结构
起始目录通常是指Linux启动并加载文件系统后的目录。当我们进入终端用户界面时,我们就会进入Linux起始目录。起始目录一般是在主目录中(/home/你的用户名/),使用ls命令就可以看到其中的文件。
起始目录与根目录不同,它的符号为“~”。我们可以用“echo~”命令查看该目录的情况,此时一般会输出/root目录,而我们应该知道该目录为超级用户目录,它是提供给超级用户使用的。
当前工作目录是指用户当前所处的目录,它是文件系统当前所在的目录。如果命令没有额外指定路径,则默认为当前工作目录。比如ls命令,如果没有指定目录,就会显示出当前工作目录的文件。
路径名是指到达指定节点的通路的名称,可用于定位文件。它包括通路上经过的所有目录的名称。在树状目录结构中,从根目录到任何数据文件之间,只有一条唯一的通路,在该路径上从树的根(主目录)开始,把全部目录文件名与数据文件名依次用“/”连接起来,即可构成该数据文件的路径名。系统中的每个数据文件都有唯一的路径名。
在Linux操作系统中主要包含两种路径,即相对路径与绝对路径。
(1)相对路径是指起始点是当前工作目录的路径名。路径不是从根目录开始的。例如,首先用户进入/home,然后进入test,执行的命令为“#cd /home”“#cd test”。此时用户所在的路径为 /home/test。第一个cd命令后紧跟/home,前面有“/”;而第二个cd命令后紧跟test,前面没有“/”。这个test是相对于/home目录来讲的,所以称为相对路径。
(2)绝对路径是指起始点是根目录的路径名。路径一定是从根目录开始的,例如/usr/local/mysql。
在Linux操作系统中,比较重要的标准目录与文件如下。
/:根目录,所有其他文件都在根目录下。
/bin:存放基本命令的二进制文件的目录,其主要存放Linux下常用的命令和工具。
/boot:存放引导加载器的固有文件的目录,Linux就是从这里启动的。
/dev:存放设备文件的目录,其主要存放着Linux下的所有设备文件。
/etc:存放本地系统配置文件的目录。
/etc/X11:存放本地X Window系统配置文件的目录。
/etc/opt:存放保存在/opt中的附加软件包配置文件的目录。
/home:存放用户本地目录。每建立一个用户,就会在这里新建一个与用户同名的目录,给该用户一个自己的空间。
/lib:存放共享系统库文件和核心模块的目录。
/lib/modules:存放可加载的系统模块的目录。
/mnt:存放系统文件的临时挂载点的目录。
/opt:存放附加软件包的目录。
/proc:存放核心和进程信息虚拟文件系统的目录。这其实是一个“假目录”,通过它可以访问到内存的内容。
/root:超级用户的本地目录。
/sbin:存放基本系统二进制文件的目录,这里存放着系统级的命令。
/tmp:存放临时文件的目录。
/usr:存放次重要的分级文件系统的目录,它通常用来安装各种软件。
/usr/bin:存放大部分的用户命令的目录,主要是一些用户安装的命令和工具。
/usr/bin/X11:存放到/usr/X11R6/bin的符号链接的目录。
/usr/games:存放游戏和教育程序的目录。
/usr/include:存放C语言的头文件的目录。
/usr/include/X11:存放到/usr/X11R6/include/bin的符号链接的目录。
/usr/lib:存放库文件的目录。
/usr/local:存放本地分级文件系统的目录,常用来安装新软件。
/usr/man:存放在线文档的目录。
/usr/sbin:存放次重要的系统管理二进制文件的目录。
/usr/share:存放独立性结构数据的目录。
/usr/share/doc:存放其他杂项文档的目录。
/usr/share/info:GNU信息系统的主要目录。
/usr/src:存放源代码的目录。
/usr/X11R6:存放第1版本第6次修正的X Window系统协议的目录。
/var:存放变量数据的目录。
/var/log:存放日志文件的目录。
/var/spool:存放应用程序队列数据的目录,其主要存放一些邮件、新闻和输出队列等。