第十七章:第28节Linux目录与文件——磁盘管理

更新于:2020-10-17 16:33:05

Linux磁盘管理好坏直接关系到整个系统的性能问题。这节主要介绍两个查看磁盘信息的命令:


df:显示磁盘的相关信息

du:检查磁盘空间使用量


1)df(disk free)


用于检测文件系统的磁盘空间占用和空余情况,可以显示所有文件系统对节点和磁盘块的使用情况。


df [-参数] [目录或文件名]


选项与参数:

-a :列出所有的文件系统,包括系统特有的 /proc 等文件系统;
-k :以 KBytes 的容量显示各文件系统;
-m :以 MBytes 的容量显示各文件系统;
-h :以人们较易阅读的 GBytes, MBytes, KBytes 等格式自行显示;
-H :以 M=1000K 取代 M=1024K 的进位方式;
-t :显示指定文件系统的磁盘空间使用情况
-T :显示文件系统类型, 连同该 partition 的 filesystem 名称 (例如 ext3) 也列出;
-i :不用硬盘容量,而以 inode 的数量来显示


演示:


①将系统内所有的文件系统列出来!


df


1.png


如果 df 没有加任何选项,那么默认会将系统内所有的 (不含特殊内存内的文件系统与 swap) 都以 1 Kbytes 的容量来列出来!


输出结果列解释说明:


Filesystem:代表该文件系统是哪个分区的,所以列出的是设备名称。

1K-blocks:数字单位是1KB,可利用-h或-m来改变单位大小,也可以用-B来设置。

Used:已经使用的空间大小。

Available:剩余的空间大小。

Use%:磁盘使用率。如果使用率在90%以上时,就需要注意了,避免磁盘容量不足出现系统问题,尤其是对于文件内容增加较快的情况(如/home、/var/spool/mail等)。

Mounted on:磁盘挂载的目录,即该磁盘挂载到了哪个目录下面。(关于挂载下节做详细解释)


②将容量结果以易读的容量格式显示出来


df -h


1.png


说明下:


1.png


/dev/vda1是块设备文件,它是(楠神的)服务器的系统盘。


设备文件是用于为操作系统与设备提供连接的一种文件。在Linux系统中将设备作为文件来处理,操作设备就像是操作普通文件一样。每一个设备对应一个设备文件,存放在 /dev 目录中。


我们一般不用自己来创建设备文件,因为这些文件是和内核相关联的。


③将系统内的所有特殊文件格式及名称都列出来


df -ahT


1.png


说明:系统里面存在很多特殊的文件系统,这些比较特殊的文件系统几乎都是在内存当中,(如/proc挂载点),所以,这些特殊文件系统都不会占据硬盘空间。


④将 /etc 目录的可用的磁盘容量以易读的容量格式显示


df -h /etc


1.png


拓展:

查看Linux的内存情况,可使用free命令。


1.png


total:总计物理内存的大小

used:已使用多大

free:可用有多少

shared:多个进程共享的内存总额

buff/cached:磁盘缓存的大小

linux下free命令详解,buffer 和 cache 的区别


2) du (disk usage)


用于统计目录或文件所占磁盘空间的大小,该命令的执行结果与df类似,du更侧重于对文件和目录在磁盘使用空间的查看。该命令的使用格式如下:


du  [选项]  目录或文件名


选项与参数:

-a :列出所有的文件与目录容量,因为默认仅统计目录底下的文件量而已。
-h :以人们较易读的容量格式 (G/M) 显示;
-s :列出总量而已,而不列出每个各别的目录占用容量;
-S :不包括子目录下的总计,与 -s 有点差别。
-k :以 KBytes 列出容量显示;
-m :以 MBytes 列出容量显示;


演示:


①列出当前目录下的所有文件容量


du


1.png


直接输入 du 没有加任何选项时,则 du 会分析当前所在目录的文件与目录所占用的硬盘空间。


②将文件的容量也列出来


du -a


1.png


③将容量结果以易读的容量格式显示出来


du -ah


1.png


与 df 不一样的是,du 这个命令其实会直接到文件系统内去搜寻所有的文件数据。


额外介绍说明:


很多人很纳闷,为什么所有的文件容量都是4KB?


1.png


就像a.sh文件显然就4个字节的内容。这是因为:


在Linux中,文件系统中是有block(块)的概念的,块就像一间间屋子,是占用空间的最小的基本单位。

也就是说一个文件再小,起码得占一个block。


getconf PAGESIZE


1.png


使用getconf PAGESIZE命令可查看一个block有多大:4096字节。


所以说,a.sh文件虽然只有5个字节,但它也要独占4KB的容量。


总结:


df、du是两个查看命令,我们再怎么操作也不会修改磁盘什么。

下面这几个命令:


fdisk:用于磁盘分区

mkfs:磁盘格式化

fsck:磁盘检查


腾讯云Linux 系统分区、格式化


有兴趣了可去了解。楠神没有深入操作过,也不敢随便演示。哈哈。