一、文件系统
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文件系统
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中只是改变或者定义了某些文件的存储位置并未打乱一切皆文件的思想。
若理解有误望批评指正