Linux学习笔记(2)——分区文件系统、文件权限学习

一、文件系统

1、定义

组织文件的方法:以不同的数据结构进行数据的存储

2、分类

ext2、ext3、ext4、fat、ntfs
ext2全称:second extended file system第二代扩展文件系统
fat全称:File Allocation Table文件分配表
ntfs全称:New Technology File System,新式技术文件系统

3、LInux常用文件系统入门

1)ext2、ext3文件系统

在这里插入图片描述
在Ext4之前,也就是Ext2和Ext3文件系统中,都是通过间接块的方式存储大文件的数据的。具体如下图所示,文件数据的位置通过inode中i_block成员(15个32为整数成员的数组)指出,其前面12个成员直接指向12个数据块,第13个成员(block12)指向的磁盘块存储的不是文件数据,而是一个指向数据块的指针列表,我们称为一级块,一级间接块最多有block size / 4个指针,block size就是数据块的大小,因为一个索引是4个字节,所以除以4。以此类推,block13通过二级间接块指向具体的数据,而block14则通过三级间接块指向具体的数据。通过这种间接指向的方式实现对大文件的管理。
在这里插入图片描述

2)ext4文件系统

linux默认文件系统,比较复杂暂时没看懂:
Ext4文件系统有两种数据管理方式,一种是inline的方式,可以将数据存储在inode节点内部,另一种是通过extent的方式,将文件数据组织成为一个B树。当然,为了兼容Ext3及之前的文件系统,Ext4也实现了间接块的方式。Ext4文件系统文件数据管理参考了现代文件系统的实现方式,也即extent方式。如下图所示,其数据管理的入口仍然是inode节点的i_block成员。差异是此时i_block并非一个32位整数数组,而是一个描述B树结构的数据结构(包含ext4_extent_header和ext4_extent_idx)。在该数据结构中,只有叶子节点中存储的数据包含文件逻辑地址与磁盘物理地址的映射关系。在数据管理中有3个关键的数据结构,分别是ext4_extent_header、ext4_extent_idx和ext4_extent。ext4_extent_header 该数据结构在一个磁盘逻辑块的最开始的位置,描述该磁盘逻辑块的B树属性,也即该逻辑块中数据的类型(例如是否为叶子节点)和数量。如果eh_depth为0,则该逻辑块中数据项为B树的叶子节点,此时其中存储的是ext4_extent数据结构实例,如果eh_depth>0,则其中存储的是非叶子节点,也即ext4_extent_idx,用于存储指向下一级的索引。
在这里插入图片描述

3)与fat文件系统对比

在这里插入图片描述

3、Linux常用文件夹含义

/

这个为根目录,所有文件都挂载于此

/boot

boot配置文件、内核和其它启动时所需要的文件

/etc

存放系统配置有关的文件
全称:Editable Text Configuration可编辑文本配置

/home

存放普通用户目录

/mnt

硬盘上手动挂载的文件系统
全称:mount 挂载点

/media

自动挂载(加载)的硬盘分区以及类似CD、数码相机等可移动的介质

/cdrom

挂载光盘

/opt

存放一些可选程序,如某个程序的测试版本,安装到该目录的程序的所有数据,库文件都存在同个目录下

/root

系统管理员目录,系统管理员可以对系统进行任何操作,包括删除根目录文件,会直接导致系统死掉,因此轻易不能以管理员身份运行

/bin

存放常用的程序文件(命令文件)

/sbin

存放管理员的系统管理命令和管理程序

/tmp

存放临时文件

/usr

这是一个神奇的文件
可以存放不适合放在/bin和/etc目录下的额外工具,其中包含以下比较有用的目录:

/usr/bin

用于存放程序;叫做非必要可执行文件(在单用户模式下不需要);面向所有用户

/usr/share

存放与体系结构无关的共享数据

/usr/lib

二进制文件库;存放那些不能直接运行但是某些程序依赖的库文件

/usr/local

本地数据第三层,具体到本台主句,通常而言有进一步的子目录,例如:bin/ lib/ share/等
一般用来存放用户自编译软件,一般是通过源码包安装的软件

/usr/src

存放源代码

/usr/include

标准包含文件

/var

该目录存放那些经常被修改的文件,包括各种日志、数据文件;

/var/cache/

应用程序缓存数据。这些数据是在本地生成的一个耗时的I/O或计算结果。应用程序必须能够再生或恢复数据。缓存的文件可以被删除而不导致数据丢失。

/var/lib/

状态信息。 由程序在运行时维护的持久性数据。 例如:数据库、包装的系统元数据等。

/var/lock/

锁文件,一类跟踪当前使用中资源的文件。

/var/log/

日志文件,包含大量日志文件。

/var/mail/

用户的电子邮箱。

/var/run/

自最后一次启动以来运行中的系统的信息,例如:当前登录的用户和运行中的守护进程。现已经被/run代替[13]。

/var/spool/

等待处理的任务的脱机文件,例如:打印队列和未读的邮件。

/var/spool/mail/

用户的邮箱(不鼓励的存储位置)

/var/tmp/

在系统重启过程中可以保留的临时文件。

/lib

目录是根文件系统上的程序所需的共享库,存放了根文件系统程序运行所需的共享文件。这些文件包含了可被许多程序共享的代码,以避免每个程序都包含有相同的子程序的副本,故可以使得可执行文件变得更小,节省空间。

/lost+found

该目录在大多数情况下都是空的。但当突然停电、或者非正常关机后,有些文件就临时存放在;

/dev

存放设备文件

/run

代替/var/run目录,

/proc

虚拟文件系统,可以在该目录下获取系统信息,这些信息是在内存中由系统自己产生的,该目录的内容不在硬盘上而在内存里;

/sys

和proc一样,虚拟文件系统,可以在该目录下获取系统信息,这些信息是在内存中由系统自己产生的,该目录的内容不在硬盘上而在内存里;

在这里插入图片描述

二、文件权限及所有者

通过ls -l可以发现以下内容:
在这里插入图片描述
第一列包含四类信息 -rwxrwxrwx
第一个-:代表一般文件 a:代表文件夹
第一个rwx:代表user所有者用于读(r),写(w),执行(x)的权限
第二个表示group所有组的权限
第三个代表其他人
权限必用三个位置表示,因此没有该权限显示-

后面的adairwilson表示所有者用户名,所有组用户名。

三、个人理解与windows不同的地方

在文件管理方面,与win最大的不同在于对分区的理解。
在win下的分区为所有文件的最初的位置,文件的存在建立在各分区文件夹下。
而linux所采用的一切皆文件的思想认为分区只是文件的下属功能,若分区结束之后并未将分区挂载(相当于放在莫个文件夹下)在某一个文件夹下的话,将无法找到该分区内容。
因此分区在linux中只是改变或者定义了某些文件的存储位置并未打乱一切皆文件的思想。
若理解有误望批评指正

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值