du(英文全称:disk used):检查磁盘空间使用量
成都创新互联公司秉承实现全网价值营销的理念,以专业定制企业官网,成都做网站、网站建设,重庆小程序开发,网页设计制作,成都手机网站制作,成都全网营销推广帮助传统企业实现“互联网+”转型升级专业定制企业官网,公司注重人才、技术和管理,汇聚了一批优秀的互联网技术人才,对客户都以感恩的心态奉献自己的专业和所长。
但是与 df 命令不同的是 Linux du 命令是对文件和目录磁盘使用的空间的查看。
df命令则是检查文件系统的磁盘空间占用情况。可以利用该命令来获取硬盘被占用了多少空间,目前还剩下多少空间等信息。
统计目录中的文件的大小并以列表显示: du [Path] -a 全部文件 包括隐藏的。 -h 以M 为单位显示文件大小结果。 -s 统计此目录中所有文件大小总和。 .. 这些是常用的 e.g.: du -sh du -ah
du [选项][文件]
显示每个文件和目录的磁盘使用空间。
-a或-all 显示目录中个别文件的大小。
-b或-bytes 显示目录或文件大小时,以byte为单位。
-c或--total 除了显示个别目录或文件的大小外,同时也显示所有目录或文件的总和。
-k或--kilobytes 以KB(1024bytes)为单位输出。
-m或--megabytes 以MB为单位输出。
-s或--summarize 仅显示总计,只列出最后加总的值。
-h或--human-readable 以K,M,G为单位,提高信息的可读性。
-x或--one-file-xystem 以一开始处理时的文件系统为准,若遇上其它不同的文件系统目录则略过。
-L符号链接或--dereference符号链接 显示选项中所指定符号链接的源文件大小。
-S或--separate-dirs 显示个别目录的大小时,并不含其子目录的大小。
-X文件或--exclude-from=文件 在文件指定目录或文件。
--exclude=目录或文件 略过指定的目录或文件。
-D或--dereference-args 显示指定符号链接的源文件大小。
-H或--si 与-h参数相同,但是K,M,G是以1000为换算单位。
-l或--count-links 重复计算硬件链接的文件。
命令:
du
输出:
说明:
只显示当前目录下面的子目录的目录大小和当前目录的总的大小,最下面的11536当前目录的总大小。
命令:
du hello.i
输出:
命令:
du ./process
输出:
命令:
du -s
输出:
命令:
du -h
命令:du -ah
命令 du -c hello.i ./use_code
输出
命令:
du -h |sort -nr|more
输出:
命令:
du -h --max-depth=1
输出:
-s 就是summary, 显示该目录占用空间的总和
区别在于/bin下面有子目录的时候, 因为/bin没有子目录所以结果相同, 比如
du /etc会看到一大堆输出
du -s /etc 就只有一行输出
Linux磁盘管理常用三个命令为df、du、fdisk。
df,全称:disk full,列出文件系统的整体磁盘使用量
du,全称:disk used,检查磁盘空间使用量
fdisk,用于磁盘分区。
1、df命令
检查文件系统的磁盘空间占用情况,可以利用该命令获取磁盘被占用了多少空间,目前还剩下多少空间等信息。
语法:df[-ahikHTm][目录或文件名]
参数:
-a 列出所有文件系统,包括系统特有的/proc等文件系统;
-k 以KBytes的容量显示各文件系统;
-m 以MBytes的容量显示各文件系统;
-h 以较易阅读的格式自行显示,比如:GBytes、MBytes、KBytes;
-H 以M=1000K取代M=1024K的进位方式;
-T 显示文件系统类型;
-i 不用磁盘容量,以inode的数量来显示。
2、du命令
也是查看使用空间的,但是与df命令不同的是,Linux du命令是对文件和目录磁盘使用的空间进行查看,和df命令有一定的区别。
语法:du[-ahskm]文件或目录名称
参数:
-a 列出所有的文件与目录容量;
-h 以较易阅读的格式显示;
-s 列出总量而已,而不列出每个各别的目录占用容量;
-S 不包括子目录下的统计,与-s存在差别;
-k 以KBytes列出容量显示;
-m 以MBytes列出容量显示。
3、fdisk命令
fdisk是Linux的磁盘分区表操作工具。
语法:fdisk[-l]装置名称
参数:
-l 输出后面接的装置所有的分区内容。若仅有fdisk -l时,则系统将会把整个系统内能够搜寻到的装置的分区均列出来。
一个比较经典的问题:
如果线上机器的磁盘占用率超级高,怎么办?
这时候优先想到的肯定是,定位到占用磁盘空间最大的那些文件,然后把可以删的给删掉。
那么,问题来了,如何定位到占用磁盘空间最大的文件?
一个办法是执行如下命令:
里面涉及三个指令:du、sort、more
既然用到了,就顺便多了解一下这三个指令的用法,算是做下个人笔记。
首先是du
作用:用来查看文件所占用的磁盘情况。
格式:du [选项] [文件]
可用选项(如下为du --help展示的内容):
操作示例:
对几个比较常用的选项单独拿出来,在机器上实际操作,效果如下:
首先,当前目录如下:
du:
其实吧,从图里面可以看到,使用“du”的时候,最后一行就当前目录的磁盘使用总量,所以,感觉一般情况下-c这个选项并没有什么用。
du -s:只计算总量
不过,注意:-s与-a不能同时存在,会报错的。
sort
作用:对输出的结果进行排序
可用选项:
-r:代表逆序排序
-n:按照字符串数值排序
-g:按照常规数值排序
-f:忽略字母大小写
实测效果:
首先是测试文件的原始状态:
测试一:sort
可以发现:
空行排在了第一位;
不管数字有多大,字符串都会排在数字的后面;
数字之间排序的时候,优先考虑首位数字(感觉是把数字也当成了一个字符串进行排序);
more
作用:用于一页一页地展示文件内容。
几个常用操作:
空格:翻到下一页
b:翻到上一页
/:启动字符串搜索(类似于vim)
此外:
more +n XXX:从XXX文件的第n行开始展示
more -n XXX:展示XXX文件,并且将n行视为一页,也就是按空格时,只会显示后续的N行
cat
作用:一次性的展示所有文件内容
cat有两个比较有用的选项:
-n:输出所有行号
-b:只对非空行输出行号
此外,
cat支持同时输出多个文件的内容:cat XXX YYYY ZZZZ
并且,cat可以与more结合使用:cat XXX | more 或者 cat XXX YYYY ZZZZ | more 或者 cat -n XXX | more
less:
作用:对文件或者输出内容进行分页展示,并且less可以用于打开多个文件
常用操作:
j:向上滚动一行
k:向下滚动一行(类似于vim)
g:跳到第一行
G:跳到最后一行
b:向上翻一页
空格:翻页
n%:跳转到整个文件的n%处
:e :在使用less打开多个文件时,使用“:e”选择跳转到其他文件去
/:进行字符串搜索
v:启动编辑
常用选项:
-N:在每一行前面都显示行号
-m:显示读取文件的百分比
-M:显示读取文件的百分比、行号和总行数
注意:
其他两个比较简单的指令:
head:显示一个文件的前N行
用法:head -n 行数 文件名
tail:显示一个文件的最后N行
用法:tail -n 行数 文件名
不过,使用tai的时候,因为-f选项可以自动显示新增加的内容,所以经常会使用如下方式:
tail -f 文件名