本文只是对Linux文件系统做基础科普,不对详细的文件系统工作过程、原理等做介绍,如多级索引等。
l文件系统是什么
一块硬盘加载到操作系统中,我们并不能直接操作,也不知道如何操作它,而文件系统很好的解决了这个问题,可以理解为操作系统在硬盘上层使用一种虚拟的软件来指挥调度磁盘,这种软件可让我们进行便捷的操作,这个软件就是文件系统。
linux文件系统分类
Linux 系统能够支持的文件系统非常多,除 Linux 默认文件系统 Ext2、Ext3 和 Ext4 之外,还能支持 fat16、fat32、NTFS(需要重新编译内核)等 Windows 文件系统。也就是说,Linux 可以通过挂载的方式使用 Windows 文件系统中的数据。Linux 所能够支持的文件系统在 "/usr/src/kemels/当前系统版本/fs" 目录中(需要在安装时选择),该目录中的每个子目录都是一个可以识别的文件系统。我们介绍较为常见的 Linux 支持的文件系统,如图:
以测试机器为例:
CentOS7.6,默认使用xfs文件系统。
linux文件系统目录
这里只列举常见的系统文件目录及作用,如图:
文件系统的目录结构是按照功能划分的:
/ 所有linux操作系统的顶点目录,不像windows,每个分区都有一个顶点目录
/boot 存放系统启动时相关的文件,比如kernel内核,grub引导菜单.(不要删除.)
/bin 存放的都是命令,但仅普通用户能执行
/sbin 超级管理员能执行的命令.
/home 存放普通用户的家目录
/root 超级管理员的家目录,普通用户是无法进入
/etc 存放配置文件的目录
/etc/hostname 主机名
/etc/hosts 本地解析域名一种方式
/etc/sysconfig/network-script/ifcfg-* 网卡的配置文件
/dev 设备目录,设备驱动,硬盘\硬盘的分区\光盘\串口…
/dev/null 黑洞,接收所有的东西,只进不出
/dev/zero 摇钱树,可以生产源源不断的数据
/dev/random 产生随机数的一个设备
/dev/pts/0 虚拟的Bash Shell终端,提供给远程用户使用 ,0代表一个终端, 1代表2个终端 以此类推
/usr 类似于windows的C盘下面的windows目录
/usr/lib 共享库文件,后缀都是so结尾, share object
/usr/lib64 共享库文件64位,后缀都是so结尾, share object
/usr/local 早期大家都把软件放在这个目录下,和windows C:\ProgramFile
/usr/bin 、/usr/sbin、 /var
存放一些可变化的内容,比如/var/log日志,可以人为让其发生变化,也或者是随着时间推移产生变化
/tmp 存放临时文件,无论哪个用户都可以放
/proc 反馈当前运行的进程的状态信息,还有提供给用户的一些信息,比如说cpu和内存。
/run 存放程序运行后所产生的pid文件
/media 、/mnt 提供挂载功能的一个目录
/opt 早期第三方厂商的软件存放的目录.
/srv 物理设备产生的一些文件
虚拟文件系统
vfs(虚拟文件系统)就是对各种文件系统的一个抽象,它为各种文件系统提供了一个通用接口,虽然我们在linux中使用df -T可能看到很多种文件系统,但我们在使用的时候却不会感到什么不同,因为linux通过VFS的中间层对这些文件系统提供了完美的支持,用户通过libc和kernel的VFS交互,不需要关心底层文件系统的具体实现。
非特殊说明,本博所有文章均为博主原创。
如若转载,请注明出处:https://tenkms.cn/archives/373
共有 0 条评论