linux文件系统

本文深入探讨了Linux系统中的文件系统结构、设备管理、分区概念、挂载原理及目录组织,详细解释了索引节点、文件类型、软连接与硬连接、ls命令解析等内容。

windows中,每个存储设备都有一个独立的文件系统存储树。linux中,无论多少存储器和存储设备,只有一个文件系统存储树,存储器挂在到文件系统存储树中。

内核分为 进程管理系统 、 内存管理系统 、 I/O 管理系统 和文件管理系统 等四个子系统。在 Linux 系统中,以 文件 方式访问设备, Linux 内核引导时,从文件 /etc/fstab 中读取要加载的文件系统


什么是索引节点

Linux 系统中的每个文件都被赋予一个唯一的数值,这个数值称做索引节点。索引节点存储在一个称作索引节点表< inode table>中,该表在磁盘格式化时被分配。每个实际的磁盘或分区都有其自己的索引节点表。 一个索引节点包含文件的所有信息, 包括磁盘上数据的地址和文件类型。文件类型包括如普通文件、目录和特殊文件这样的信息。

linux 硬盘组织方式为:引导区超级块 (superblock)(包含i节点表 和 空闲块表), 索引结点 (inode) , 数据块 (datablock),目录块( diredtory block) 。其中超级块中包含了关于该硬盘或分区上的文件系统的整体信息,如文件系统的大小等; 超级块后面的数据结构是索引结点, 它包含了针对某一个具体文件的几乎全部信息, 如文件的存取权限、 所有者、 大小、 建立时间以及对应的目录块和数据块等;数据块是真正存储文件内容的位置。 但是索引结点中不包括文件的名字, 文件名是放在目录块里的。目录块里包含有文件的名字以及此文件的索引结点编号。


Linux下磁盘分区和目录的关系如下

–      任何一个分区都必须挂载到某个目录上。

–      目录是逻辑上的区分。分区是物理上的区分。

–      磁盘Linux分区都必须挂载到目录树中的某个具体的目录上才能进行读写操作。

–      根目录是所有Linux的文件和目录所在的地方,需要挂载上一个磁盘分区。

基本分区与扩展分区

基本分区+扩展分区<=4

基本分区可以马上被使用且不能被再分

扩展分区必须再次分区后才能使用,扩展分区的再次分区被称为逻辑分区



linux目录结构

/   根目录

/bin 存放普通命令,包含系统启动和运行所需的程序(linux内核,驱动程序,启动加载程序)

/sbin 存放需要一定权限才能使用的命令

/home 存放普通用户的文件,一个用户对应一个用户主目录

/etc 存放系统层面配置相关的文件和shell脚本,系统每次启动shell脚本都会打开系统服务

        /etc/passwd用户账号列表

        /etc/fstab 存储设备以及相关挂载点列表

        /etc/crontab 定义了自动化任务运行时间

/dev  接口设备文件

/boot 引导文件

/var 存放经常变化的数据

/mnt 挂在软驱或光驱

/lib 共享库

/root 存放root用户相关文件

/usr 程序的默认安装文件夹



为什么要分区,如何分区

 安装 Linux 系统对硬盘分区时,必须有两种分区类型: 文件系统分区(存储文件) 和 交换分区(虚拟内存)

–      可以把不同资料,分别放入不同分区中管理,降低风险。

–      大硬盘搜索范围大,效率低

–      磁盘配合只能对分区做设定

–      /home /var /usr/local经常是单独分区,因为经常会操作,容易产生碎片


挂载的概念 

当要使用某个设备时,例如要读取硬盘中的一个格式化好的分区、光盘或软件等设备时,必须先把这些设备对应到某个目录上,而这个目录就称为“挂载点(mount point)”,这样才可以读取这些设备,而这些对应的动作就是“挂载”。 

移动硬盘有驱动模块会自动挂载,如果有个新硬盘,要先进行分区,并通过mount命令挂载到某个文件夹。如果要自动挂载则可以修改/etc/fstab文件.


文件类型

a) 普通文件:C语言元代码、SHELL脚本、二进制的可执行文件等。分为纯文本和二进制。

b) 目录文件:目录,存储文件的唯一地方。

c) 链接文件:指向同一个文件或目录的的文件。

d) 特殊文件:与系统外设相关的,通常在/dev下面。分为块设备和字符设备。


软连接与硬连接

在Linux系统中,内核为每一个新创建的文件分配一个Inode(索引结点),每个文件都有一个惟一的inode号。文件属性保存在索引结点里,在访问文件时,索引结点被复制到内存中从而实现文件的快速访问。

硬连接:与源文件inode id一致。只能引用同一文件系统中的文件(不能是目录),移动或删除原始文件时,硬链接不会被破坏。

符号链接 是一个指针,指向文件在文件系统中的位置。符号链接可以跨文件系统,甚至可以指向远程文件系统中的文件。符号链接只是指明了原始文件的位置,用户需要对原始文件的位置有访问权限才可以使用链接。如果原始文件被删除,所有指向它的符号链接也就都被破坏了。它们会指向文件系统中并不存在的一个位置。

硬连接记录的是目标的 inode,符号连接记录的是目标的 path。

软连接就像是快捷方式,而硬连接就像是备份!符号连接可以做跨分区的 link;而 硬连接由于 inode 的缘故,只能在本分区中做 link.所以,符号连接的使用频率要高的多。


ls命令解析

104501_D5Nf_81653.gif

文件属性与权限

104600_I35g_81653.gif

文件类型

104726_Cpu2_81653.gif

权限属性

104921_PYqY_81653.gif

104952_7soy_81653.gif


mount

查看已挂载文件列表

[weiwei@localhost mydir]$ mount
/dev/sda2 on / type ext4 (rw)
proc on /proc type proc (rw)
sysfs on /sys type sysfs (rw)
devpts on /dev/pts type devpts (rw,gid=5,mode=620)
tmpfs on /dev/shm type tmpfs (rw,rootcontext="system_u:object_r:tmpfs_t:s0")
/dev/sda1 on /boot type ext4 (rw)
none on /proc/sys/fs/binfmt_misc type binfmt_misc (rw)
vmware-vmblock on /var/run/vmblock-fuse type fuse.vmware-vmblock (rw,nosuid,nodev,default_permissions,allow_other)

第一行表示/dev/sda2挂在根目录下

现在插入一个u盘,u盘会自动挂载

mount -t vfat /dev/sdb1  /mnt/upan

umount /dev/sdb1

查看分区情况 df

[weiwei@localhost mydir]$ df .
Filesystem           1K-blocks      Used Available Use% Mounted on
/dev/sda2              7985608   3113636   4466316  42% /

查看df后面的dir的关联的分区

locate 以较简单的方式查询文件

locate搜索路径名数据库,并输入包含要搜索字符串的所有文件

find查找文件

[weiwei@localhost mydir]$ find ~ |wc -l
12719

find可以按照name,type,size以及各种规则对文件进行匹配

[weiwei@localhost mydir]$ find ~ -type f -name '*.jpg' -size +10k |wc -l
44

165814_wI3i_81653.gif

默认各个选项之间是用 -and连接的

find还可以指定动作

[weiwei@localhost mydir]$ find ~ -type f -name '*.jpg' -size +10k  -delete
[weiwei@localhost mydir]$ find ~ -type f -name '*.jpg' -size +10k  -print



reference:

http://www.iteye.com/topic/816268

http://wenku.baidu.com/view/f72c572acfc789eb172dc828.html


转载于:https://my.oschina.net/hnuweiwei/blog/297638

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值