因为 linux 文件系统对文件的管理主要包括两个方面,第一个方面是文件的本身,第二个就是目录管理。我们从目录管理入手,会更直观的理解 linux
的目录结构。
一、Linux 目录结构讲解
1.linux 目录结构
Linux 整个文件系统是以“
/
”目录开始,根目录是最顶层,前面讲根目录和家目录概念的时候已经提到了。它下边包括众多的目录,这些目录又称为子目录,子目录下边又包含更多的目录,它形成了一个像树一样的结构,大家可以把它想像成一个倒挂的树,就是从树根开始往下,它的枝叶是一支一支的,也就是一级一级的。
Linux 整个文件系统是以“
/
”目录开始,在
linux
中是没有
C
盘
D
盘
E
盘 这个概念的。我们打开ubuntu 看下类似于树的形状的一个结构。
我们打开文件管理,从最顶层开始,点击 computer
,这就是我们
ubuntu
的最顶层,左上角有一个“/
” ,“
/
” 就是根目录,在这个目录下,我们可以进到下边任意一个子目录,比如说作者点击
home
这个文件夹,然后再点击 topeet
这个文件夹,下边有很多的子文件夹,这些子文件夹就好比大树的枝干,一层一层的往下延伸。

这个结构是虚拟出来的,没有任何的限制,它只是一个虚拟的概念。所以说从理论上来讲,linux
目录结构可以是随意安排的,就是说我想往哪延伸就往哪延伸,没有任何的限制,但是如果我们所有的人都这样做,不同的人想法不同,那么我们很容易就出现混乱了。
为了解决不同的开发人员之间不统一的问题,研究出层次标准,也就是文件层次标准,简称 FHS
,全称 filesystem hierarch standard
。
FHS
定义了两层规范:第一层是
/
目录下面文件夹要存放什么文件,比如说 /etc
下面就应该放配置文件bin 或
sbin
下边就应该放可执行文件。第二层规范是针对
linux
下
/usr
和/var 这两个目录的子目录来定义的。比如
/usr/share
下面就应该放共享数据文件。
FHS
仅仅给出了最上层顶目录以及子层 /usr
和
share
要存放的数据,我们在其他的子目录层,我们就可以随意的来配置了,
2.linux 根目录
FHS 对
linux
根文件系统的基本目录都做了一些比较详细的规定,比如说哪些文件夹要放置哪些文件。
现在进到了 ubuntu
的根目录下,各个文件的规定如下:


这个就是在 FHS
规范的建议下,
linux
根目录下各个文件的规定。尽管
FHS
这个不是强制的标准,但是作为一个开发人员,我们还是要遵守这个标准的,比如说后面我自己定义了一个命令,就要把这个命令放到 bin
文件下,不然别人接手你的项目就容易出现混乱。
二、Linux 文件系统
操作系统中负责管理和存储文件系统的软件称为文件系统。Linux
系统必须要挂载一个文件系统,如果系统不能从指定的设备挂载,系统就会出错。linux 常见文件系统的类型有
ext3
,
ext4
,
proc
文件系统 ,sysfs 文件系统。
ext3
文件系统是从
ext2
发展过来的,它完全兼容
ext2
文件系统,并且比
ext2
要小,要可靠。ext4
文件系统是在
ext3
的基础上改进的,并且
ext4
文件系统在性能和可靠性上都要比
3
的表现更好,而且功能也非常的丰富,并且 ext4
完全兼容
ext3
,
ext3
只支持
32000
个子目录,但是
ext4
支持无限数量的子目录,所以比 3
更优秀。
Proc
文件系统是
linux
系统中特殊的文件系统,实际上它是只存在内存中的,他是一个伪文件系统。这个文件系统是内核和内核模块用来向进程发送消息的机制。
ubuntu 的文件系统类型可以用
df
命令来查看。
df
命令可以显示磁盘分区上的可以使用的磁盘空间
使用 df -T
可以显示文件系统的类型,用
man
手册来查看下。

Filesystem 显示该文件系统是在哪个分区,它这里把所有的设备名称都列出来了,如下图所示/dev/sda1是 ubuntu
的主分区,
Type
是文件系统的类型。所以我们
ubuntu
的主分区的文件类型就是
ext4
。
ext4
上边的 tmpfs
是虚拟内存文件系统。
1031004984
这串数字代表的是我们内存的总和,
1k-blocks
代表单位。
ext4 和 ext3
它是日志型的文件系统,要比传统型的文件系统安全,因为它可以用独立内容的日志来跟踪磁盘内容的变化,Used
是已经使用的空间大小,
Available
这一列是剩余空间大小,
Use%
是磁盘使用率,这里要注意下,如果 /dev/sda1
使用率在
90%
以上都要用满了,就要注意了,可能会造成我们系统出问题。最后一个 Mounted on
是磁盘挂载的目录,就是说磁盘挂载到哪个目录下,这里
/dev/sda1
就挂载到了
/
目录上面。

输入“
df -Th
”命令,以人们更容易读的方式显示。

第三列就变成了 Size
,把
kb
单位帮助我们换成了
1.9G
,
393M ,
这样看起来就更加容易了,如果不想看文件系统的内容,就可以不加 T
参数,直接输入
df -h
参数,这样就能看到一个磁盘的使用状况。