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
如果 df 没有加任何选项,那么默认会将系统内所有的 (不含特殊内存内的文件系统与 swap) 都以 1 Kbytes 的容量来列出来!
输出结果列解释说明:
Filesystem:代表该文件系统是哪个分区的,所以列出的是设备名称。
1K-blocks:数字单位是1KB,可利用-h或-m来改变单位大小,也可以用-B来设置。
Used:已经使用的空间大小。
Available:剩余的空间大小。
Use%:磁盘使用率。如果使用率在90%以上时,就需要注意了,避免磁盘容量不足出现系统问题,尤其是对于文件内容增加较快的情况(如/home、/var/spool/mail等)。
Mounted on:磁盘挂载的目录,即该磁盘挂载到了哪个目录下面。(关于挂载下节做详细解释)
②将容量结果以易读的容量格式显示出来
df -h
说明下:
/dev/vda1是块设备文件,它是(楠神的)服务器的系统盘。
设备文件是用于为操作系统与设备提供连接的一种文件。在Linux系统中将设备作为文件来处理,操作设备就像是操作普通文件一样。每一个设备对应一个设备文件,存放在 /dev 目录中。
我们一般不用自己来创建设备文件,因为这些文件是和内核相关联的。
③将系统内的所有特殊文件格式及名称都列出来
df -ahT
说明:系统里面存在很多特殊的文件系统,这些比较特殊的文件系统几乎都是在内存当中,(如/proc挂载点),所以,这些特殊文件系统都不会占据硬盘空间。
④将 /etc 目录的可用的磁盘容量以易读的容量格式显示
df -h /etc
拓展:
查看Linux的内存情况,可使用free命令。
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
直接输入 du 没有加任何选项时,则 du 会分析当前所在目录的文件与目录所占用的硬盘空间。
②将文件的容量也列出来
du -a
③将容量结果以易读的容量格式显示出来
du -ah
与 df 不一样的是,du 这个命令其实会直接到文件系统内去搜寻所有的文件数据。
额外介绍说明:
很多人很纳闷,为什么所有的文件容量都是4KB?
就像a.sh文件显然就4个字节的内容。这是因为:
在Linux中,文件系统中是有block(块)的概念的,块就像一间间屋子,是占用空间的最小的基本单位。
也就是说一个文件再小,起码得占一个block。
getconf PAGESIZE
使用getconf PAGESIZE命令可查看一个block有多大:4096字节。
所以说,a.sh文件虽然只有5个字节,但它也要独占4KB的容量。
总结:
df、du是两个查看命令,我们再怎么操作也不会修改磁盘什么。
下面这几个命令:
fdisk:用于磁盘分区
mkfs:磁盘格式化
fsck:磁盘检查
有兴趣了可去了解。楠神没有深入操作过,也不敢随便演示。哈哈。