文件系统
块设备命名:
IDE设备:/dev/hda, /dev/hdb
SATA/SAS/USB设备:/dev/sda, /dev/sdb
virtio-blk 超虚拟化存储: /dev/vda, /dev/vdb
NVMe设备(SSD):/dev/nvme0, /dev/nvme1
逻辑卷:/dev/mapper/*
文件系统类型:
Windows 文件系统类型: fat32, NTFS
Linux 本地文件系统: ext2, ext3, ext4(rhel6), xfs(rhel7, rhel8)
网络文件系统: NFS, CIFS
集群文件系统: GFS, GFS2
分布式文件系统: CEPH
光盘: iso9660
文件数据块(block):存放文件的数据,文件的最小存储单元,默认大小是 4K。
inode 是文件的唯一标识号,存放文件的元数据,包括:
- 文件类型,权限,UID 和 GID
- 文件的链接数
- 文件大小和时间戳
- 文件数据块(block)在磁盘上的块指针
- 其他信息
使用 df -h
查看系统的文件组织结构
目录和文件的关系
系统识别文件是通过 inode
人识别文件是通过文件名
目录用来存放文件名和 inode 的映射关系,使用 ls -i file.sh
查看,可以得到 1075535 file.sh
文件:数据部分就是文件内容,元数据部分是文件属性
目录:数据部分是文件名和 inode 的对应关系,元数据部分是目录属性
cp 和 inode 的关系
- 分配一个新的 inode,并添加到 inode 表里
- 在新的目录下面,将该 inode 关联一个文件名
- 数据拷贝到新的文件
rm 和 inode 的关系
- 每执行一次 rm,链接数减1
- 当链接数变为 0 时,inode 会被回收,数据不会被擦除,只是标记为可用
mv 和 inode 的关系
在同一个文件系统内:
- 在新的目录下面创建文件名和 inode 的对应关系
- 删除旧目录下的对应关系
在不同的文件系统下:
cp + rm
硬链接
同一个文件系统下,多个文件名指向同一个 inode,这些文件的内容一样,修改其中的一个文件内容,其它的内容也会变。
语法:ln filename linkname
软链接
软链接和源文件有着不同的 inode,这是两个不同的文件。linkname 始终链接到 filename。
语法:ln -s filename linkname
如果用相对路径,这里的 filename 指的是相对于 linkname 的路径,所以 filename 最好用绝对路径。
tips: 软链接的大小,是源文件所在的位置,该位置的字符串的长度
文件类型
- 普通文件
d 目录
c 字符设备文件
b 块设备文件
l 链接文件
p 管道文件
s 套接字文件
文件系统使用情况
-
baobab 使用图形工具查看文件系统使用情况
-
df 查看已挂载的文件系统使用情况
-h 查看文件系统的使用情况,单位换算为 M 和 G 等
-i 查看 inode 使用情况
-T 查看文件系统类型 -
du 查看目录的大小
-h 查看文件系统的使用情况(以 block 为单位),单位换算为 M 和 G 等
-s 查看目录汇总的大小
文件压缩和打包
打包
打包把多个文件变成一个文件,不压缩数据,保留文件的属性,进行备份恢复时很方便。
tar 工具
tar [options] tarfile sourcefile
-c 建立归档
-f 指定归档名
-x 解包
-t 列出归档内容
-z 调用gzip压缩工具,进行归档压缩
-j 调用bzip2压缩工具,进行归档压缩
-J 调用xz压缩工具,进行归档压缩
-v 显示所有过程
-C 将文件解压到指定目录下
可以只解压一部分文件,方法是在后面指定
tar -zxf etc.tar.gz etc/hostname
压缩
将文件变小
gzip/gunzip filename,压缩成.gz
bzip2/bunzip2 filename,压缩成.bz
xz/unxz filename,压缩成.xz
三个压缩工具的压缩比依次增大
挂载和卸载文件系统
mount
语法:mount 设备 挂载点
挂载光盘:mount /dev/cdrom /media
umount
语法:umount 设备/挂载点
umount /dev/cdrom
或者 umount /media
(未完待续)