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命令解析
文件属性与权限
文件类型
权限属性
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
默认各个选项之间是用 -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