概述
Linux文件系统管理 常见命令df、du、fsck、dumpe2fs。
文件系统查看命令:df
通过 df 命令可以査看已经挂载的文件系统的信息包括设备文件名、文件系统总大小、已经使用的大小、剩余大小、使用率和挂载点等。
df 命令格式如下:
[root@localhost ~]# df [选项] [挂载点或分区设备文件名]
选项:
选项 | 选项说明 |
-a | 显示所有文件系统信息,包括特殊文件系统,如 /proc、/sysfs |
-h | 使用习惯单位显示容量,如 KB、MB 或 GB 等 |
-T | 显示文件系统类型 |
-m | 以 MB 为单位显示容量 |
-k | 以 KB 为单位显示容量。默认以 KB 为单位 |
1, 显示系统内的文件系统信息
[root@localhost ~]# df 文件系统 块 已用 可用 已用% 挂载点 /dev/sda1 194235 135531 44368 76% /boot 、 #内存虚拟出来的磁盘空间 tmpfs 934328 100 934228 1% /dev/shm
说明一下命令的输出结果。
第一列 | 第二列 | 第三列 | 第四列 | 第五列 | 第六列 |
设备文件名 | 文件系统总大小,默认以 KB 为单位 | 已用空间大小 | 未用空间大小 | 空间使用百分比 | 文件系统的挂载点 |
2. 带选项查询系统内的文件系统信息
#-a显示特殊文件系统,这些文件系统几乎都是保存在内存中的,如/proc。因为是挂载在内存中的,所以占用量是0
#-h单位不再只用KB,而是换算成习惯单位
#-T多出了文件系统类型一列
[root@localhost ~]# df -ahT 文件系统 类型 容量 已用 可用 已用% 挂载点 sysfs sysfs 0 0 0 - /sys proc proc 0 0 0 - /proc tmpfs tmpfs 913M 100K 913M 1% /dev/shm cgroup cgroup 0 0 0 - /sys/fs/cgroup/systemd configfs configfs 0 0 0 - /sys/kernel/config /dev/sda1 ext4 190M 133M 44M 76% /boot /dev/sr0 iso9660 4.1G 4.1G 0 100% /run/media/lizhouwei/CentOS 7 x86_64 ........省略部分输出.........
统计目录或文件所占磁盘空间大小:du
du 是统计目录或文件所占磁盘空间大小的命令。需要注意的是,使用"ls -l"命令是可以看到文件的大小的。但是在使用"ls -l"命令査看目录大小时,目录的大小多数是 4KB,这是因为目录下的子目录名和子文件名是保存到父目录的 block(默认大小为 4KB)中的,如果父目录下的子目录和子文件并不多,一个 block 就能放下,那么这个父目录就只占用了一个 block 大小。
但是我们在统计目录时,不是想看父目录下的子目录名和子文件名到底占用了多少空间,而是想看父目录下的子目录和子文件的总磁盘占用量大小,这时就需要使用 du 命令才能统计目录的真正磁盘占用量大小。
du 命令的格式如下:
[root@localhost ~]# du [选项] [目录或文件名]
选项:
选项 | 选项说明 |
-a | 显示每个子文件的磁盘占用量。默认只统计子目录的磁盘占用量 |
-h | 使用习惯单位显示磁盘占用量,如 KB、MB 或 GB 等 |
-s | 统计总磁盘占用量,而不列出子目录和子文件的磁盘占用量 |
1. 统计当前目录的总磁盘占用量大小
同时会统计当前目录下所有子目录的磁盘占用量大小,不统计子文件磁盘占用量的大小。默认单位为KB
[root@localhost ~]# du 4 ./.config/abrt 8 ./.config 8 ./.cache/abrt 12 ./.cache 76 .
2.统计当前目录总大小
统计当前目录的总大小,同时会统计当前目录下所有子文件和子目录磁盘占用量的大小。默认单位为 KB
[root@localhost ~]# du -a 4 ./anaconda-ks.cfg 4 ./.viminfo 4 ./.bash_history 4 ./.bashrc 4 ./.config/abrt 8 ./.config 4 ./.bash_profile 8 ./.cache/abrt 12 ./.cache 4 ./.bash_logout 76 . …省略部分输出…
3. 只统计磁盘占用量总的大小,同时使用习惯单位显示
[root@localhost ~]# du -sh
[root@localhost ~]# du -sh
76K .
du命令和df命令的区别
使用 du 命令和 df 命令去统计分区的使用情况时,得到的数据是不一样的。那是因为df命令是从文件系统的角度考虑的,通过文件系统中未分配的空间来确定文件系统中已经分配的空间大小。也就是说,在使用 df 命令统计分区时,不仅要考虑文件占用的空间,还要统计被命令或程序占用的空间(最常见的就是文件已经删除,但是程序并没有释放空间)。
而 du 命令是面向文件的,只会计算文件或目录占用的磁盘空间。也就是说,df 命令统计的分区更准确,是真正的空闲空间。
检测和修复文件系统命令:fsck
fsck 命令格式如下:
[root@localhost ~]# fsck [选项] 分区设备文件名
选项:
选项 | 选项说明 |
-t | 文件系统:指定分区的文件系统 |
-A | 按照配置文件 /etc/fstab 检查所有分区 |
-a | 不用显示用户提示,自动修复文件系统 |
-C | 显示检查分区的进度条 |
-f | 强制检测。一般 fsck 命令如果没有发现分区有问题,则是不会检测的。如果强制检测,那么不管是否发现问题,都会检测 |
-y | 自动修复。和 -a 作用一致,不过有些文件系统只支持 -y |
1. 修复某个分区
如果想要自动修复修复某个分区,则只需执行如下命令:[root@localhost ~]#fsck -y /dev/sdb1
显示磁盘状态命令:dumpe2fs
命令:
[root@localhost ~]# dumpe2fs /dev/sda1
dumpe2fs 1.42.9 (28-Dec-2013)
Filesystem volume name: <none> #卷标名 Last mounted on: /boot #挂载点 Filesystem UUID: b71bedac-fe5d-411b-a67a-3d8a7d0d2c65 Filesystem magic number: 0xEF53 Filesystem revision #: 1 (dynamic) Filesystem features: has_journal ext_attr resize_inode dir_index filetype needs_recovery extent 64bit flex_bg sparse_super huge_file uninit_bg dir_nlink extra_isize Filesystem flags: signed_directory_hash Default mount options: user_xattr acl #挂载参数 Filesystem state: clean #文件系统状态,正常 Errors behavior: Continue Filesystem OS type: Linux Inode count: 51200 #inode总数 Block count: 204800 #块总数 Reserved block count: 10240 Free blocks: 58704 Free inodes: 50862 First block: 1 Block size: 1024 #块大小 Fragment size: 1024 Group descriptor size: 64 Reserved GDT blocks: 256 Blocks per group: 8192 Fragments per group: 8192 Inodes per group: 2048 Inode blocks per group: 256 Flex block group size: 16 Filesystem created: Mon Nov 5 20:06:30 2018 Last mount time: Sun Nov 18 08:30:31 2018 Last write time: Sun Nov 18 08:30:31 2018 Mount count: 6 Maximum mount count: -1 Last checked: Mon Nov 5 20:06:30 2018 Check interval: 0 (<none>) Lifetime writes: 197 MB Reserved blocks uid: 0 (user root) Reserved blocks gid: 0 (group root) First inode: 11 Inode size: 128 Journal inode: 8 Default directory hash: half_md4 Directory Hash Seed: bda20e55-b95f-48f1-a723-2fe197bd2e78 Journal backup: inode blocks Journal features: journal_64bit Journal size: 4096k Journal length: 4096 Journal sequence: 0x0000017d Journal start: 1Group 0: (Blocks 1-8192) [ITABLE_ZEROED] #第一组的内容 Checksum 0x1300, unused inodes 1710 #校验和0x1300,1710外未使用的inode Primary superblock at 1, Group descriptors at 2-3 Reserved GDT blocks at 4-259 #保留的GDT块位于1-259
Block bitmap at 260 (+259), Inode bitmap at 276 (+275) Inode table at 292-547 (+291) 3773 free blocks, 1710 free inodes, 9 directories, 1710 unused inodes Free blocks: 4420-8192 可用块数:4420-8192
Free inodes: 339-2048