一切即文件 “给不一样的问题提供相同的解决方式”node
在linux中全部的设备都被当作一个文件来处理,包括咱们的IO设备也是同样的,通常来讲,他们被放在/dev这个目录下linux
eg: IDE硬盘 /dev/hd[a-p] (a-p是它的编号)ide
磁盘分区表ui
a.主引导分区MBR:安装引导加载程序,共446bytesspa
b. 分区表:记录整块硬盘分区的状态,共64bytes3d
分区表位于第一扇区的MBR里,记录了每一个分区的范围,咱们所说的分区实际上是在对分区表作设置日志
**分区表默认会写入四组分区orm
BIOS:开机执行的第一个程序blog
CMOS:记录硬盘各项参数,嵌入在主板的存储器索引
开机流程:BIOS根据用户设置取得能开机的硬盘->读取第一扇区MBR->MBR中的引导加载程序来加载内核文件->内核文件工做
[TAB] 补全命令
[CTRL]+c 中止当前正在运行的程序
[CTRL]+d 直接离开文字界面,至关于exit
使用man命令查询某个命令的参数是咱们会看见被查询的命令含有一个编号例如:man date 就会看见 DATE(1)
编号表明的意思与该文件用途有关以下表:
try:man null
试试上面的命令,咱们会发现NULL(4),对照上面的意思看看它是什么意思
正确的关机方法:由于Linux能够多用户工做,因此咱们在关机前务必查看谁在线(使用who命令),
不要暴力关机不要破坏别人的数据
关机以前要通知在线用户 可使用shutdown和erboot命令~
在系统重启活或者关机以前多使用几回sycn
系统运做模式: 0 关机 3 纯命令模式 5 图形界面 6 重启
普通用户权限: r - 读 w - 写 x - 执行
改变权限命令: chmod、chattr(隐藏权限) (参数都可使用man查询)
查看权限命令: ll 、llattr
改变文件所属用户组:chagrp
(文件拥有者,文件拥有用户组,其余人)
改变用户全部者:chown
文件种类:
普通文件 [ - ]、目录[ d ]、链接文件[ l ]
块设备文件:存储文件,硬盘、软盘
字符设备文件:串行端口接口文件,键盘、鼠标等
EXT2文件系统:Linux的正规文件系统(文件系统规定的文件属性/权限不一样)
inode:文件权限和属性,记录文件数据所在的block编号
data block:实际数据(文件大时可能会占用多个block)
superblock:记录文件系统的总体信息
根据inode里的信息咱们能够找到存放文件数据的block,这种文件系统被称为索引式文件系统
*若是一个文件存储的block太分散在读取的时候磁盘寻址时间就会更久因此所谓的“碎片”
碎片整理即将同一个文件所属的block汇合在一块儿
block
Block大小根据实际状况选择,若是说选择4KB而存储的全是小文件就会形成不少的浪费
inode
访问模式,全部者,大小,建立和状态改变时间,最近读取时间,最近修改时间,特性标志,内容指向
每一个inode大小是128b 是每一个文件都占用一个ionode
*文件系统可以建立的文件数量和inode的数量有关
读取文件时先找到inode并查看权限是否吻合,若是吻合再找到相应的block
指向block方式:直接,间接,单间接,双间接,三间接
总额:直接+间接
superblock
block和inode的总量,文件系统挂载时间,block,inode大小,validbit数值:若是一个文件系统被挂在则为0不然为1
块对照表,inode对照表,文件系统说明
*大小为1024b 每一个区段的superblock可用dumpe2fs查询
查看目录里的文件占用的inode的号码使用ls -i
读取一个文件的流程
新增一个文件的流程:
1.肯定用户对于该文件的权限是否有w x,若是有才能添加
2.根据inode bitmap找到没有使用的inode号码,将新文件的属性和权限写入
3.查找block bitmap找到没有使用的block号码,并将实际的数据写入,更新inode对于block的指向
4.更新inode bitmap和block bitmap
**日志文件系统:解决数据不一致状态问题(Ext3)
咱们在文件系统中专门划分一块block专门用于记录文件写入或者修订的步骤
预备:系统要写入一个文件时先记录要写入的信息
写入:写入文件数据,更新meta data
结束:完成更新meta data以后记录下来