1.文件系统和设备
(1)对于Linux文件系统层次结构,不用知道文件所在的存储设备,只需要知道文件所在的目录。文件系统可以挂载到一个目录上,目录称为挂载点,挂载支持手动挂载和自动挂载。
(2)Linux 中,对存储设备的低级别访问是访问块设备文件,在挂载这些块设备前,必须先使用文件系统对其进行格式化。块设备存储在/dev 目录中。
SATA/SAS/USB附加存储 | /dev/sda、/dev/sdb ... |
超虚拟化存储 | /dev/vda, /dev/vdb ... |
NVMe附加存储 | /dev/nvme0, /dev/nvme1 ... |
SD/MMC/eMMC存储 | /dev/mmcblk0, /dev/mmcblk1 ... |
(3)分区就是存储设备通常划分为更小的区块,不同分区可以通过不同的文件系统进行格式化或用于不同的用途分区本身就是块设备。
2.检查文件系统
(1)df命令:可以查看文件系统的空间状况。
-h 选项:单位是 KiB (2^10 )、MiB (2^20 ) 或 GiB (2^30 );
-H 选项:单位是 SI 单位,即 KB (10^3 )、MB (10^6 ) 或 GB (10^9 )
(2)du命令:可以查看特定目录使用空间状况,同样可以使用 -h 和 -H 选项。
3.手动挂载文件系统
(1)文件系统需要挂载后才能访问,mount 命令允许 root 用户手动挂载文件系统,第一个参数指定要挂载的文件系统,第二个参数指定在文件系统层次结构中用作挂载点的目录,文件系统可以用设备名称或 UUID 方式表示,推荐使用 UUID 方式进行挂载,UUID 稳定地与文件系统关联,这是一个非常长的十六进制数字,用作唯一标识符。要挂载文件系统,目标目录必须已存在,默认情况下,/mnt 目录存在并用作临时挂载点。
(2)lsblk 命令:可列出所有块设备的详细信息
-fp命令:列出设备的完整路径、其 UUID 和挂载点,以及分区中文件系统的类型
(3)umount命令:可以手动卸载文件系统
(4)lsof命令:列出目录中所有打开的文件以及访问它们的进程
4.搜索文件
(1)locate命令:搜索预生成索引中的文件名或文件路径,并即时返回结果。locate 从 mlocate 数据库中查找,速度比较快,但数据库不会实时更新, locate 数据库每日自动更新,updatedb 命令可以手动更新。
-i选项:执行不区分大小写的搜索
-n选项:返回的搜索结果数量
(2)find命令:通过遍历整个文件系统来实时搜索文件。比locate慢,但准确度更高,还可以根据文件权限、文件类型、文件大小、修改时间或文件名搜索文件。
-iname 选项:对文件名执行不区分大小写的搜索
-user 、 -group、 -uid、 -gid 选项:根据所有权或权限搜索文件
-perm选项:用于查找具有特定权限的文件
-size选项:加上数字值与单位可以查找与大小相符的文件
-mmin选项:加上以分钟表示的时间,将搜索内容在过去 n 分钟前更改的所有文件
-type选项将搜索范围限制为给定的文件类型
-f 表示普通文件
-d 表示目录
-l表示软链接
-b表示块设备