• L33.linux命令每日一练 -- 第五章 Linux信息显示与搜索文件命令 -- du和date


    5.5 du:统计磁盘空间使用情况

    5.5.1 命令详解

    【命令星级】 ★★★★★

    【功能说明】

    ​ du命令可以用于统计磁盘空间的使用情况,这个命令有助于我们找出那个文件过多地占用了磁盘空间。

    【语法格式】

    du [option] [file]
    du [选项] [<文件或目录>]
    
    • 1
    • 2

    ​ **说明:**在du命令及后面的选项里,每个元素之间都至少要有一个空格。

    【选项说明】

    ​ 表5-5针对该命令的参数选项进行了说明。

    ​ 表5-5 du命令的参数选项及说明

    在这里插入图片描述

    5.5.2 使用范例

    ​ **范例5-10:**通过参数-a显示所有目录或文件所占空间。

    [root@centos7 ~]# du -a	#显示当前目录下所有文件(包括隐藏文件及子目录下的所有文件)的大小。
    4	./.bash_logout
    4	./.bash_profile
    4	./.bashrc
    4	./.cshrc
    4	./.tcshrc
    20	./.bash_history
    4	./anaconda-ks.cfg
    4	./.viminfo
    72	.
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10

    ​ **范例5-11:**参数-s与-h的使用案例。

    [root@centos7 ~]# du -s	#显示当前目录的总大小。
    72	.
    [root@centos7 ~]# du -h	#-h参数会换算成K、M、G这种易读易理解的结果。
    72K	.
    [root@centos7 ~]# du -sh	#-sh是常用的命令组合,也是推荐大家使用的方法。
    72K	.
    [root@centos7 ~]# du -sh /usr/local	#显示指定目录的总大小。
    0	/usr/local
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8

    ​ **范例5-12:**显示指定层次的目录的大小。

    [root@centos7 ~]# du -h --max-depth=1 /usr/local/	#只显示第一层目录的大小。
    0	/usr/local/bin
    0	/usr/local/etc
    0	/usr/local/games
    0	/usr/local/include
    0	/usr/local/lib
    0	/usr/local/lib64
    0	/usr/local/libexec
    0	/usr/local/sbin
    0	/usr/local/share
    0	/usr/local/src
    0	/usr/local/
    [root@centos7 ~]# du -h --max-depth=2 /usr/local/	#只显示第一、第二层目录的大小。
    0	/usr/local/bin
    0	/usr/local/etc
    0	/usr/local/games
    0	/usr/local/include
    0	/usr/local/lib
    0	/usr/local/lib64
    0	/usr/local/libexec
    0	/usr/local/sbin
    0	/usr/local/share/applications
    0	/usr/local/share/info
    0	/usr/local/share/man
    0	/usr/local/share
    0	/usr/local/src
    0	/usr/local/
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13
    • 14
    • 15
    • 16
    • 17
    • 18
    • 19
    • 20
    • 21
    • 22
    • 23
    • 24
    • 25
    • 26
    • 27

    ​ **范例5-13:**排除指定目录的案例。

    [root@centos7 ~]# du -h --max-depth=2 /usr/local/ --exclude=/usr/local/share	#不显示/usr/local/share目录的大小。
    0	/usr/local/bin
    0	/usr/local/etc
    0	/usr/local/games
    0	/usr/local/include
    0	/usr/local/lib
    0	/usr/local/lib64
    0	/usr/local/libexec
    0	/usr/local/sbin
    0	/usr/local/src
    0	/usr/local/
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11

    5.6 date:显示与设置系统时间

    5.6.1 命令详解

    【命令星级】 ★★★★★

    【功能说明】

    ​ date命令用于显示当前的系统时间或设置系统时间。

    【语法格式】

    date [option] [+FORMAT]
    date [选项] [+日期格式]
    
    • 1
    • 2

    【选项说明】

    ​ 表5-6针对date命令的参数选项进行了说明。

    ​ 表5-6 date命令的参数选项及说明

    在这里插入图片描述
    在这里插入图片描述
    在这里插入图片描述

    5.6.2 使用范例

    ​ **范例5-14:**常用时间格式测试例子。

    ​ 大家可以对着上面的表格逐一测试参数,这里限于篇幅仅列举一部分:

    [root@centos7 ~]# date +%y	#显示年(短格式)。
    20
    [root@centos7 ~]# date +%Y	#显示年(长格式)。
    2020
    [root@centos7 ~]# date +%m	#显示月。
    10
    [root@centos7 ~]# date +%d	#显示日。
    11
    [root@centos7 ~]# date +%H	#显示小时。
    18
    [root@centos7 ~]# date +%M	#显示分。
    48
    [root@centos7 ~]# date +%S	#显示秒。
    45
    [root@centos7 ~]# date +%F	#显示特殊格式日期(年-月-日)。
    2020-10-11
    [root@centos7 ~]# date +%T	#显示特殊格式时间(时:分:秒)。
    18:48:52
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13
    • 14
    • 15
    • 16
    • 17
    • 18

    ​ **范例5-15:**通过-d显示指定字符串所描述的时间的示例。

    [root@centos7 ~]# date +%F -d "-1day"	#显示昨天(简洁写法)。
    2020-10-10
    [root@centos7 ~]# date +%F -d "yesterday"	#显示昨天(英文写法)。
    2020-10-10
    [root@centos7 ~]# date +%F -d "-2day"	#显示前天。
    2020-10-09
    [root@centos7 ~]# date +%F -d "+1day"	#显示明天。
    2020-10-12
    [root@centos7 ~]# date +%F -d "tomorrow"	#显示明天(英文写法)。
    2020-10-12
    [root@centos7 ~]# date +%F -d "+2day"	#显示2天后。
    2020-10-13
    [root@centos7 ~]# date +%F -d "1month"	#显示1个月后。
    2020-11-11
    [root@centos7 ~]# date +%F -d "1year"	#显示1年后。
    2021-10-11
    #说明:这里的+号表示未来,-号表示过去,day表示日,year表示年,month表示月。
    [root@centos7 ~]# date +%F -d "24hour"	
    2020-10-12
    [root@centos7 ~]# date +%F -d "1440min"
    2020-10-12
    [root@centos7 ~]# date +%F -d "-1440min"
    2020-10-10
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13
    • 14
    • 15
    • 16
    • 17
    • 18
    • 19
    • 20
    • 21
    • 22
    • 23

    ​ **说明:**这里的hour表示小时,min表示分。

    ​ **范例5-16:**时间格式转换例子。

    [root@centos7 ~]# date
    Sun Oct 11 19:00:37 CST 2020
    [root@centos7 ~]# date -d "Sun Oct 11 19:00:37 CST 2020" "+%Y-%m-%d %H:%M:%S"
    2020-10-11 19:00:37
    
    • 1
    • 2
    • 3
    • 4

    说明:

    ​ -d选项后面应接上需要转化的时间,最后再接上你想要输出的时间格式。

    ​ 下面是一个企业面试题,要求转换日志的时间格式,解答该题会利用到上面的知识点,同时还会使用awk命令。

    ​ 备用数据如下:

    [root@centos7 ~]# cat >test.log<
    > Sat May 19 13:40:02 CST 2019 is 13213213
    > Sat May 19 19:37:43 CST 2019 is 1012122
    > Sat May 19 13:40:03 CST 2019 is 13213213
    > Sat May 19 19:37:42 CST 2019 is 1012122
    > Sat May 19 13:40:03 CST 2019 is 13213213
    > Sat May 19 19:37:43 CST 2019 is 1012122
    > EOF
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8

    ​ 解答过程如下:

    [root@centos7 ~]# awk -F "is" '{print "echo $( date -d \" "$1"\" \"+%F %T \" )",$2}' test.log
    #对内容按照命令进行拼接。
    echo $( date -d " Sat May 19 13:40:02 CST 2019 " "+%F %T " )  13213213
    echo $( date -d " Sat May 19 19:37:43 CST 2019 " "+%F %T " )  1012122
    echo $( date -d " Sat May 19 13:40:03 CST 2019 " "+%F %T " )  13213213
    echo $( date -d " Sat May 19 19:37:42 CST 2019 " "+%F %T " )  1012122
    echo $( date -d " Sat May 19 13:40:03 CST 2019 " "+%F %T " )  13213213
    echo $( date -d " Sat May 19 19:37:43 CST 2019 " "+%F %T " )  1012122
    [root@centos7 ~]# awk -F "is" '{print "echo $( date -d \" "$1"\" \"+%F %T \" )",$2}' test.log|bash
    2019-05-19 13:40:02 13213213
    2019-05-19 19:37:43 1012122
    2019-05-19 13:40:03 13213213
    2019-05-19 19:37:42 1012122
    2019-05-19 13:40:03 13213213
    2019-05-19 19:37:43 1012122
    #命令说明:使用is作为分隔符,$1是“Sat May 19 13:40:02 CST 2019”,$2是“13213213”,首先使用date命令对原时间格式进行转换,然后利用awk拼凑出如下格式,最后使用bash执行命令。
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13
    • 14
    • 15
    • 16

    ​ **范例5-17:**通过参数-s设定时间。

    [root@centos7 ~]# date -s 20201008	#设置成20201008,具体时间为空即00:00:00。
    Thu Oct  8 00:00:00 CST 2020
    [root@centos7 ~]# date -s 00:00:03 	#设置具体时间,不会对日期做更改。
    Thu Oct  8 00:00:03 CST 2020
    [root@centos7 ~]# date -s "00:00:03 20201008"	#这样可以设置全部时间。
    Thu Oct  8 00:00:03 CST 2020
    [root@centos7 ~]# date -s "00:00:03 2020-10-08"	#日期可使用不同的格式。
    Thu Oct  8 00:00:03 CST 2020
    [root@centos7 ~]# date -s "00:00:03 2020/10/08"	#日期可使用不同的格式。
    Thu Oct  8 00:00:03 CST 2020
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10

    ​ **范例5-18:**显示时间后换行,再显示日期。

    [root@centos7 ~]# date +%T%n%D	#%n的作用是换行。
    21:44:09
    10/24/20
    
    • 1
    • 2
    • 3
  • 相关阅读:
    左右手切换工具xmouse v1.2版本发布
    谱定理等周边定理
    磁盘原理简要分析
    body加class
    说前端页面性能监控
    [数据结构] 二叉树--堆
    Cesium 地球(1)-概览
    配置Eureka时Status显示的是电脑名而不是localhost及ipAddr显示为本机ip的问题
    【新日标习题集】第13課 までのまとめ (discarded)
    PHP模拟上传文件使用CURLFile函数 加精!!!
  • 原文地址:https://blog.csdn.net/qq_25599925/article/details/125686487