Linux磁盘查看的命令lsblk/df/du不同特点及用法
一、lsblk
1.功能:列出系统上的所有的磁盘列表
2.命令格式
lablk [选项] [设备文件名]
3.选项
-d:仅列出磁盘本身,并不会列出该磁盘的分区信息
-f:同时列出该磁盘内的文件系统名称
-i:使用ASCII的字符输出,不要使用使用复杂的编码(在某些环境下有用)
-m:同时输出该设备在/dev下面的权限信息(rwx的数据)
-p:列出该设备的完整文件名(因为不加这个选项,显示的是最后的名字)
-t:列出该磁盘设备的详细数据,包括磁盘列阵机制、预读写的数据量大小等
2.df
df命令可以获取硬盘被占用了多少空间,目前还剩下多少空间等信息,它也可以显示所有文件系统对i节点和磁盘块的使用情况。
df命令各个选项的含义如下:
-a或--all 包含全部的文件系统。(显示所有文件系统的磁盘使用情况,包括0块(block)的文件系统,如/proc文件系统。) --block-size=<区块大小> 以指定的区块大小来显示区块数目。 -h或--human-readable 以可读性较高的方式来显示信息。 -H或--si 与-h参数相同,但在计算时是以1000 Bytes为换算单位而非1024 Bytes。 -i或--inodes 显示inode的信息。(显示i节点信息,而不是磁盘块。) -k或--kilobytes 指定区块大小为1024字节。(以k字节为单位显示。) -l或--local 仅显示本地端的文件系统。 -m或--megabytes 指定区块大小为1048576字节。(以m字节为单位显示。) --no-sync 在取得磁盘使用信息前,不要执行sync指令,此为预设值。 -P或--portability 使用POSIX的输出格式。 --sync 在取得磁盘使用信息前,先执行sync指令。 -t<文件系统类型>或--type=<文件系统类型> 仅显示指定文件系统类型的磁盘信息。(显示各指定类型的文件系统的磁盘空间使用情况。) -T或--print-type 显示文件系统的类型。(显示文件系统类型。) -x<文件系统类型>或--exclude-type=<文件系统类型> 不要显示指定文件系统类型的磁盘信息。(列出不是某一指定类型文件系统的磁盘空间使用情况(与t选项相反)。) --help 显示帮助。 --version 显示版本信息。
我们先看看使用df命令的例子:
//列出各文件系统的磁盘空间使用情况 #df Filesystem 1k-blocks Used Available Use% Mounted on /dev/hda5 381139 332921 28540 93% / /dev/hda1 46636 6871 37357 16% /boot /dev/hda3 10041144 6632528 2898556 70% /home none 127372 0 127372 0% /dev/shm /dev/hda2 27474876 24130460 1948772 93% /usr /dev/hda6 256667 232729 10686 96% /var
第1列是代表文件系统对应的设备文件的路径名(一般是硬盘上的分区);第2列给出分区包含的数据块(1024字节)的数目;第3,4列分别表示已用的和可用的数据块数目。
◆用户也许会感到奇怪,第3,4列块数之和不等于第2列中的块数。这是因为默认的每个分区都留了少量空间供系统管理员使用的缘故。即使遇到普通用户空间已满的情况,管理员仍能登录和留有解决问题所需的工作空间。清单中Use%列表示普通用户空间使用的百分比,若这一数字达到100%,分区仍然留有系统管理员使用的空间。
最后,Mounted on列表示文件系统的安装点。
//列出各文件系统的i节点使用情况。 #df -ia Filesystem Inodes IUsed IFree IUse% Mounted on /dev/hda5 98392 23919 74473 25% / none 0 0 0 - /proc /dev/hda1 12048 38 12010 1% /boot none 0 0 0 - /dev/pts /dev/hda3 1275456 355008 920448 28% /home none 31843 1 31842 1% /dev/shm /dev/hda2 3489792 133637 3356155 4% /usr /dev/hda6 66264 9876 56388 15% /var //列出文件系统的类型。 #df -T Filesystem Type 1k-blocks Used Available Use% Mounted on /dev/hda5 ext3 381139 332921 28540 93% / /dev/hda1 ext3 46636 6871 37357 16% /boot /dev/hda3 ext3 10041144 6632528 2898556 70% /home none tmpfs 127372 0 127372 0% /dev/shm /dev/hda2 ext3 27474876 24130460 1948772 93% /usr /dev/hda6 ext3 256667 232729 10686 96% /var2
3. du
du的英文原义为“disk usage”,含义为显示磁盘空间的使用情况,统计目录(或文件)所占磁盘空间的大小。该命令的功能是逐级进入指定目录的每一个子目录并显示该目录占用文件系统数据块(1024字节)的情况。若没有给出指定目录,则对当前目录进行统计。
du命令的各个选项含义如下:
-a或-all 显示目录中个别文件的大小。(递归地显示指定目录中各文件及子目录中各文件占用的数据块数。若既不指定-s,也不指定-a,则只显示Names中的每一个目录及其中的各子目录所占的磁盘块数。) -b或-bytes 显示目录或文件大小时,以byte为单位。(以字节为单位列出磁盘空间使用情况(系统默认以k字节为单位)。) -c或--total 除了显示个别目录或文件的大小外,同时也显示所有目录或文件的总和。(最后再加上一个总计(系统默认设置)。) -D或--dereference-args 显示指定符号连接的源文件大小。 -h或--human-readable 以K,M,G为单位,提高信息的可读性。 -H或--si 与-h参数相同,但是K,M,G是以1000为换算单位。 -k或--kilobytes 以1024 bytes为单位。(以1024字节为单位列出磁盘空间使用情况。) -l或--count-links 重复计算硬件连接的文件。(计算所有的文件大小,对硬链接文件,则计算多次。) -L<符号连接>或--dereference<符号连接> 显示选项中所指定符号连接的源文件大小。 -m或--megabytes 以1MB为单位。 -s或--summarize 仅显示总计。(对每个Names参数只给出占用的数据块总数。) -S或--separate-dirs 显示个别目录的大小时,并不含其子目录的大小。 -x或--one-file-xystem 以一开始处理时的文件系统为准,若遇上其它不同的文件系统目录则略过。(跳过在不同文件系统上的目录不予统计。) -X<文件>或--exclude-from=<文件> 在<文件>指定目录或文件。 --exclude=<目录或文件> 略过指定的目录或文件。 --max-depth=<目录层数> 超过指定层数的目录后,予以忽略。 --help 显示帮助。 --version 显示版本信息。
下面举例说明du命令的使用:
//查看/mnt目录占用磁盘空间的情况 #du –abk /mnt 1 /mnt/cdrom 1 /mnt/floppy 3 /mnt //列出各目录所占的磁盘空间,但不详细列出每个文件所占的空间 #du 3684 ./log 84 ./libnids-1.17/doc 720 ./libnids-1.17/src 32 ./libnids-1.17/samples 1064 ./libnids-1.17 4944 .
输出清单中的第1列是以块为单位计的磁盘空间容量,第2列列出目录中使用这些空间的目录名称。
◆这可能是一个很长的清单,有时只需要一个总数。这时可在du命令中加-s选项来取得总数:
#du –s /mnt 3 /mnt //列出所有文件和目录所占的空间(使用a选项),并以字节为单位(使用b选项)来计算大小 #du –ab /root/mail 6144 mail/sent-mail 1024 mail/saved-messages 8192 mail
一.比较
1)df:主要检查文件系统的占用情况,如下图所示:

2)lsbk:列出所有可用块设备信息,如下图所示:
3)fdisk:磁盘分区时使用,可查看磁盘分区情况

二、查看文件系统是否存在文件占用过大的情况
du -sh * | sort -nr
如下图所示:
