Windows 和 Linux 文件系统区别 -- 结构
Windows 下的文件系统
- 在 Windows 下,打开 “计算机”,我们看到的是一个个的驱动器盘符:
001_Windows下的多个盘.png
- 每个驱动器都有自己的根目录结构,这样形成了多个树并列的情形,如图所示:
001-Windows下多个盘为节点的目录分支.png
Linux 下的文件系统
在 ubuntu 中所有的文件都是基于目录的方式存储的。一切都是目录,一切都是文件。这本来就是 linux 所倡导的。
在 Linux 下,我们是看不到这些驱动器盘符,我们看到的是文件夹(目录):
002_Ubuntu文件目录.png
Ubuntu 没有盘符这个概念,只有一个根目录 /,所有文件都在它下面
003-Linux的树形示意图.png
Windows 和 Linux 文件系统 -- 类型
windows 中常见的磁盘格式有 fat16、fat32 和 ntfs 。windows 是一个封闭的系统。无法打开 ext3 或者 mac 日志式。
在 ubuntu 中其文件系统广泛使用 ext3 ( ext4 是 ext3 的扩展)的文件格式,从而实现了将整个硬盘的写入动作完整的记录在磁盘的某个区域上。
如果装 windows 和 ubuntu 双系统的话,在 ubuntu 中可以实现主动挂载 windows 的文件系统,并以只读的方式访问磁盘中 windows 系统上的文件。
Ubuntu文件目录系统
- Ubuntu文件系统的设计目的就是把文件有序地组织在一起,提供一个从逻辑上组织文件的文件系统。除了文件的组织外,文件安全也是文件系统的设计要点,所以文件的访问权限是文件系统不可缺少的组成部分
- Ubuntu文件系统的组织结构是按一定的逻辑功能划分的,并且便于用户访问和使用。
- ubuntu严格区分大小写和空格,所以Sun和sun是两个不同的文件。
Ubuntu的根目录 \
- Linux和Unix文件系统是按树型结构分级组织的。
- 文件系统的最高级别是/或者根目录,其他文件或目录都在根目录下。
- 根目录整个文件系统的逻辑终点
- 一般根目录下只存放目录,在 linux 下有且只有一个根目录,所有的东西都是从这里开始
- 当在终端里输入 /home,其实是在告诉电脑,先从 /(根目录)开始,再进入到 home 目录
根目录下的一级目录
目录 | 说明 |
---|---|
/bin | 包含普通用户和系统管理员可以共享的各种通用程序,如bash、dd、df、gzip、grep、mv、mkdir等常用的基本命令 |
/boot | 包含系统引导程序GRUB及其配置文件、linux内核文件vmlinuz和磁盘内存映像文件initrd.img等重要引导文件 |
/dev | 包含系统支持的所有设备文件。具体来说,console表示控制台,lp0表示打印机,mem表示系统的物理内存,sda表示连接到主控制器的第一个磁盘,ttyXX表示串口设备 |
/etc | 包含系统管理和维护方面的所有配置文件 |
/home | 包含所有普通用户的家目录 |
/lost+found | 用于存储fsck命令在检测与修复文件系统时删除的文件和目录 |
/media | 包含移动存储介质的挂载点,插入U盘,系统会自动将U盘挂载到该目录的某个子目录 |
/mnt | 包含所有自定义的文件系统的挂载点,可以挂载任何文件系统 包括NFS或CIFS网络文件系统 |
/opt | 应用程序等附加软件的安装目录,类似于windows系统中的Program Files目录 |
/proc | 虚拟文件目录,系统关闭时为空目录,系统运行时进程文件系统根目录,其中的部分文件系统分别对应当前正在运行的进程,可用于访问当前进程的地址空间 |
/root | 超级用户root的家目录 |
/sbin | 超级用户管理员的常用工具、如管理和维护、系统引导和恢复命令集合 |
/srv | 分担了var目录的一些功能,保存了一些网络服务所需的数据文件 |
/sys | 和proc一样是虚拟目录,系统各种设备配置信息的根目录,如block子目录中包含有磁盘及磁盘分区的配置信息 |
/tmp | 临时文件目录,用于存储系统运行过程生成的临时文件,也可以供用户存储自己的临时文件。需要注意的是,只有文件的创建者才可以删除相应文件 |
/usr | 既可以作为根目录下的一个子目录,其中保存系统提供的各种共享数据(用户命令、库函数、头文件、文档等),又可以作为一个单独的文件系统,可以认为是对根目录的一个递归目录,使得文件系统具有更大的灵活性 |
/var | 该目录和usr 类似,首先是根目录下的子目录,也可以作为单独的文件系统,用于存储各种可变长的数据文件(如日志文件)、暂存文件或待处理的临时文件 |
一些重要的二级目录
目录 | 说明 |
---|---|
/boot/grub | 其中存有GRUB配置文件,以及三种不同类型的初始引导程序 |
/etc/apt | 包含软件管理工具使用的配置文件,如sources.list |
/etc/cron.d | 用于存储cron进程调度运行后台进程所用的配置文件盒控制文件。其他有关目录 cron.hourly cron.daily cron.weekly cron.monthly 四个目录 |
/etc/init.d | 用于存储系统启动引导过程中需要由init调度执行的脚本文件 |
/etc/network | 包含网络接口的配置文件interfaces,以及相关的配置工具 |
/etc/X11 | 包含X服务器使用的各种配置文件,如xorg.conf等 |
/usr/bin | 包含用户经常使用的各种命令 |
/usr/include | 用于存储各种C语言头文件。这个目录及其子目录是开发人员经常引用的文件 |
/usr/lib | 其中包含各种共享的库函数,可供程序员已静态或动态的方式链接自己开发的程序 |
/usr/sbin | 包含系统引导完成之后系统管理员经常使用的各种系统管理和维护命令 |
/usr/share | 共享目录 包含man(联机文档的根目录)、info(GNU info文档的根目录)等子目录 |
/usr/src | 存放linux系统内核的源代码和文档等 |
/var/lib | 存储软件包特定的动态链接共享库、配置文件、数据文件和状态信息等 |
/var/log | 系统守护进程日志文件的存储目录 |
/var/lock | 用于存储各种服务进程或应用程序访问特定的设备或文件时设置的封锁文件 |
/var/run | 系统运行信息文件的根目录,其中包括各种.pid文件中存有守护进程的PID。 |
/var/spool | 用于缓存各种等待处理的文件,如打印服务等。通常每类待处理的缓存文件均位于各自的子目录中,如/var/spool/cups等 |
/var/tmp | 用于存储各种临时文件 |
/usr 文件结构
usr并不是user的缩写,而是Unix Software Resource的缩写,即“Unix 操作系统软件资源”放在该目录。这个目录 相当于Windows操作系统的“C:\Windows\”和“C:\Program files\”这两个目录的综合体
目录 | 说明 |
---|---|
/usr/bin | 存放应用程序 |
/usr/share | 存放共享数据 |
/usr/lib | 存放不能直接运行的,却是许多程序运行所必需的一些函数库文件 |
/usr/local | 存放软件升级包 |
/usr/share/doc | 系统说明文件存放目录 |
/usr/share/man | 程序说明文件存放目录 |
/var 文件结构
var放置系统执行过程中经常变化的文件
目录 | 说明 |
---|---|
/var/log | 随时更改的日志文件 |
/var/spool/mail | 邮件存放的目录 |
/var/run | 程序或服务启动后,其 PID 存放在该目录下 |
参考资料:
- 【Ubuntu 16】深入Ubuntu文件系统
- 传智播客的Linux课程讲义
- ubuntu 文件系统简介