一、文件组成
1. Linux的文件组成:
(1) 数据:数据就是文件的内容数据。
(2) 文件名:文件的名称。保持在名为dentry目录项的结构中。在实质上,该文件名是把一个文件名称和一个i节点关联起来。
(3) Metadata元数据:文件的权限、时间、大小、长度、类型等都属于元数据,这些信息都保存在inode节点的结构中。
2. i节点
Linux系统中,每个文件都有一个相关i节点,里面保存着除了文件名和数据以外的所有文件属性信息。
(1) 文件类型:目录、符号链接、设备节点等。
(2) 所有者身份及权限:每个文件和目录都有所有者、所有组和其他,这些信息都保存在i节点中,而且所有的文件的i节点结构相同,所以我们在查看时,显示内容及修改时的命令等都相同。
(3) 时间信息:
名称 | 命令 | 含义 |
atime | 访问时间 | 文件数据每次被阅读后更新 |
ctime | 改变事件 | 文件的i节点信息每次被改变后更新 |
mtime | 修改时间 | 文件数据每次被改变后更新 |
(4) inode节点信息使用stat命令查看
File :文件名称
size:文件长度
blocks:文件系统空间块数
regular:文件类型
links:链接计数
uid:文件所有者以及权限
access:该文件的atime/mtime/ctime
还可以使用ls -i filename命令查看i节点编号:
注意:逻辑文件系统和硬件系统是两个系统,逻辑文件系统是建立在硬件系统的基础之上的,所以,逻辑文件系统的的使用是不可以超过硬件的限制的。
磁盘中最小的存储单位是扇区(sector),每个扇区大小为512byte,此值不会改变,此值限制了逻辑文件系统的block块的存储单位。逻辑文件系统是为了方便系统对文件和数据的管理,实际上硬盘上存储数据时是一段一段的,所以存储的时候可能比较分散,这样系统是很难管理的,所以,此时出现了逻辑文件系统,方便对硬件及数据的管理。
系统调用数据流程:系统在读取数据的时候,是先点击文件名,然后通过文件名找到对应的inode,通过inode判断文件是否可以读取,如果可以则通过inode调出相对应存储数据。相当于,文件名就是点名的老师,inode是一个班级的名单,老师使用inode找要找的数据,每个数据都有对应的位置编号。
(5) wc文件字数计算
wc [选项][文件名]
wc [-clw][--help][--version][文件...]
计算文件的Byte数、字数、或是列数,若不指定文件名称、或是所给予的 文件名为"-",则wc指令会从标准输入设备读取数据。
-c或--bytes或--chars 只显示Bytes数。
-l或--lines 只显示列数。
-w或--words 只显示字数。
--help 在线帮助。
--version 显示版本信息。
显示信息:
$wc testfile # testfile文件的统计信息
3 92 598 testfile # testfile文件的行数为3、单词数92、字节数598
二、文件别名:alias
alias #直接输入alias是查看别名列表
alias othername=’comand’ #comand如果没有空格可以不用单引号
unalias name #立刻取消别名
vi /root/.bashrc #永久生效配置文件:
别名的优先级高于命令的优先级,带路径的优先级是最高的,优先级越高越先执行:
绝对路径或相对路径>别名>bash内部命令>$PATH 环境变量定义的目录
三、文件软硬链接:ln
ln file1 file2 #建立硬链接
ln -s file file2 #建立软链接
软链接 | 硬链接 |
软连接可以关联到目录 | 目录之间不可用硬链接 |
删除原文件会导致链接不可用 | 可以删除任意链接,互不影响 |
软链可以关联不同文件系统中的文件 | 硬链接必须在同一个文件系统下面 |
当一个文件依赖于另一个文件而存在,一般使用软连接 | 链接两端文件经常被使用到,甚至其中一端的文件不存在,用硬链接比较合适 |
例子:在开发一个软件时,如果两个人同时开发,如果用硬链接,其中一个更新了则另外一个也同时更新。软链接像快捷方式。
注:(1)Danglinglink空链接:链接目标文件被删除,软连接就变成了空链接;
(2)递归链接:file1链接file2,file2链接file1,这种互相的链接,称为递归 链接。
(3)绝对软链接和相对软链接:由路径决定给。