文件概念及其inode

115 阅读2分钟

4月「掘金·日新计划」第1天

文件编程

一、深入内容

1.1文件系统原理及访问机制

1.1.1、文件描述符012

可以使用write,read直接使用012描述符,操作

  1. 0标准输入
  2. 1标准输出
  3. 2标准错误

1.1.2、静态文件,动态文件

  1. 静态文件,存放在块设备中的文件系统文件中,磁盘中

  2. 动态文件

    1. 当open文件,Linux内核在进程中建立一个数据结构,把文件加载到内存中去。
    2. 内核申请内存空间,并把静态文件内容读取到内存,叫动态文件 读写操作都是在操作内存中的动态文件
    3. 当close,内核将内存中的动态文件同步到磁盘块设备中的静态文件中去

1.1.3、为什么这么设计

  1. 提高读写效率
  2. 块设备是按块读写,内存是按字节读写 内存操作灵活,可以随读写机操作

1.2什么是文件信息节点inode

原文链接:blog.csdn.net/weixin_4661…

1.2.1、inode是什么

  1. 硬盘最小存储单位扇区 文件存储最小单位块(block),由很多个扇区组成
  2. inode索引节点,用来存储文件元信息 例如:创建者,创建时间,文件大小等等

1.2.2、inode内容

  1. 用stat命令,查看文件inode信息

  2. 文件的字节数

  3. 文件拥有者的User ID

  4. 文件的Group ID

  5. 文件的读、写、执行权限

  6. 文件的时间戳,共有三个:ctime指inode上一次变动的时间,mtime指文件内容上一次变动的时间,atime指文件上一次打开的时间。

  7. 链接数,即有多少文件名指向这个inode

  8. 文件数据block的位置

1.2.3、inode大小

  1. 每个硬盘分区inode总数和使用数量,可以用指令df -i
  2. sudo dumpe2fs -h /dev/hda | grep "Inode size"
  3. 由于每个文件都必须有一个inode,因此有可能发生inode已经用光,但是硬盘还未存满的情况。这时,就无法在硬盘上创建新文件。

1.2.4、inode号码

  1. 操作系统用inode号码识别不同的文件,不是文件名

  2. ls -i查看号码

  3. 特殊作用:

    1. 因为特殊字符无法删除文件,可以直接删除inode节点
    2. 移动重命名文件,不影响inode号码

1.3文件权限,各用户对其的权限

1.3.1、文件权限

  1. 3种权限,rwx421
  2. root切换: su root exit

1.3.2、用户权限

  1. 分3种身份,owner(user) group,others 账号信息存储在,/etc/passwd文件 个人密码,/etc/shadow 群组名称,/etc/group

1.3.3、chmod,更改权限

  1. chmod 764 文件名

  2. chmod u+rwx,g+rw,o+r filename

    u主用户,g组用户,o其他用户,a所有 chmod +x filename 默认a所有