一、基本概念
1.1文件系统原理及访问机制
1.1.1、文件描述符012
可以使用write,read直接使用012描述符,操作
- 0标准输入
- 1标准输出
- 2标准错误
1.1.2、静态文件,动态文件
- 静态文件,存放在块设备中的文件系统文件中,磁盘中
- 动态文件
- 当open文件,Linux内核在进程中建立一个数据结构,把文件加载到内存中去。
- 内核申请内存空间,并把静态文件内容读取到内存,叫动态文件
读写操作都是在操作内存中的动态文件 - 当close,内核将内存中的动态文件同步到磁盘块设备中的静态文件中去
1.1.3、为什么这么设计
- 提高读写效率
- 块设备是按块读写,内存是按字节读写
内存操作灵活,可以随读写机操作
1.2什么是文件信息节点inode
原文链接:https://blog.csdn.net/weixin_46619666/article/details/119798497
1.2.1、inode是什么
- 硬盘最小存储单位扇区
文件存储最小单位块(block),由很多个扇区组成 - inode索引节点,用来存储文件元信息
例如:创建者,创建时间,文件大小等等
1.2.2、inode内容
-
用stat命令,查看文件inode信息
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-Z8dhJ0wN-1678614189585)(C:\Users\戴尔\AppData\Roaming\Typora\typora-user-images\1678067969646.png)]
-
文件的字节数
-
文件拥有者的User ID
-
文件的Group ID
-
文件的读、写、执行权限
-
文件的时间戳,共有三个:ctime指inode上一次变动的时间,mtime指文件内容上一次变动的时间,atime指文件上一次打开的时间。
-
链接数,即有多少文件名指向这个inode
-
文件数据block的位置
1.2.3、inode大小
- 每个硬盘分区inode总数和使用数量,可以用指令df -i
- sudo dumpe2fs -h /dev/hda | grep “Inode size”
- 由于每个文件都必须有一个inode,因此有可能发生inode已经用光,但是硬盘还未存满的情况。这时,就无法在硬盘上创建新文件。
1.2.4、inode号码
- 操作系统用inode号码识别不同的文件,不是文件名
- ls -i查看号码
- 特殊作用:
- 因为特殊字符无法删除文件,可以直接删除inode节点
- 移动重命名文件,不影响inode号码
1.3文件权限,各用户对其的权限
1.3.1、文件权限
- 3种权限,rwx421
- root切换:
su root
exit
1.3.2、用户权限
- 分3种身份,owner(user) group,others
账号信息存储在,/etc/passwd文件
个人密码,/etc/shadow
群组名称,/etc/group
1.3.3、chmod,更改权限
-
chmod 764 文件名
-
chmod u+rwx,g+rw,o+r filename
u主用户,g组用户,o其他用户,a所有
chmod +x filename 默认a所有