首页 > 系统相关 >linux基本功之date命令实战

linux基本功之date命令实战

时间:2023-03-01 15:33:28浏览次数:51  
标签:-- mufenggrow 时间 linux date 格式 基本功 root

前言

在日常工作中,我们经常会用到date命令来判断任务执行的时间,或者使用date命令去实现时间段内的工作任务,今天我们一起来探讨下date命令

一、date简介

date 英[deɪt] 日期,时间,时间,约会时间,海枣
date 命令用于 显示 或 设置系统的时间或日期。
date命令来自于英文单词的时间、时钟

二、常用参数

2.1 date命令的使用格式

格式:date [参数] [+日期格式]

2.2 常用参数和格式

这里我们使用–help帮助,查看常用的参数

[root@k8s-master ~]# date --help

用法:date [选项]... [+格式]

 或:date [-u|--utc|--universal] [MMDDhhmm[[CC]YY][.ss]]

 -d, --date=STRING         display time described by STRING, not 'now'

 -f, --file=DATEFILE       like --date once for each line of DATEFILE

 -I[TIMESPEC], --iso-8601[=TIMESPEC]  output date/time in ISO 8601 format.

                           TIMESPEC='date' for date only (the default),

                           'hours', 'minutes', 'seconds', or 'ns' for date

                           and time to the indicated precision.

 -r, --reference=文件  显示文件指定文件的最后修改时间

 -s, --set=STRING          set time described by STRING

 -u, --utc, --universal    print or set Coordinated Universal Time (UTC)

     --help  显示此帮助信息并退出

     --version  显示版本信息并退出

通过上述帮助命令,我们可以看到,常用的一些参数:

-d datestr

显示datestr中所设定的时间(非系统时间)

-s datestr

将系统时间设为datestr 中所设定的时间

-u

显示目前的格林威治时间

--help

显示帮助信息

--version

显示版本信息

常用格式:

linux基本功之date命令实战_赋值

2.3 date应用示例

2.3.1 以默认格式输出系统当前的日期与时间信息

此处直接写date即可,显示完整的日期格式。

[root@mufenggrow ~]# date

linux基本功之date命令实战_版本信息_02

这里的CST表示时区的缩写,一般可视为中国的标准时间或者美国中部时间

2.3.2 按照年-月-日的指定格式输出日期

[root@mufenggrow ~]# date +%F

linux基本功之date命令实战_赋值_03

以上方式类似与:

可以看到两种方式显示的结果一样,我们默认情况下直接使用 %F即可。

2.3.3 按格式年-月-日 时:分:秒输出当前日期

[root@mufenggrow ~]# date "+%Y-%m-%d %H:%M:%S"

linux基本功之date命令实战_赋值_04

这里的 - 或者: ,仅仅作为一个连接符使用,可以换成其他任何的形式。

2.3.4 使用-d参数指定时间运算

格式: date -d ‘运算规则’
作用:指定时间运算规则,date会将当前时间做指定的运算,然后输出运算后的时间

[root@mufenggrow ~]# date -d '3 minutes'  ## 三分钟后

linux基本功之date命令实战_文件路径_05

[root@mufenggrow ~]# date -d '3 days'

linux基本功之date命令实战_文件路径_06


2.3.5 使用 -f 参数进行多行输入

格式:date -f 文件路径
作用:可将-d参数指定的运算规则写入文件中,通过-f参数指定文件路径,date命令逐行读取该文件,并按照此文件指定的运算规则输出运算后的时间。

[root@mufenggrow ~]# cat >>/root/datefile <<EOF

> date  

> 1 years ago

> 3 months

> 2 days

> 1 year

> -3 days

linux基本功之date命令实战_版本信息_07

[root@mufenggrow ~]# date -f datefile

linux基本功之date命令实战_赋值_08

可以看到,直接写date是不行的,当使用-f的时候文件内容应该写运算规则。

2.3.6 -s 参数,修改系统时间

格式:date -s ‘字符串’

作用:根据-s指定的内容设定系统的时间。执行此命令需要提权

这里需要说明的是: 由于跨年、跨月、闰平年等特殊性,在日常编程过程中对日期的处理总是异常麻烦。

目前,各种编程语言也都要自己的日期函数库,所以在对日期进行处理前,一定先查查你使用的编程语言有没有日期函数库。

[root@mufenggrow ~]# date -s " 20121212 8:30:00"

2012年 12月 12日 星期三 08:30:00 CST

[root@mufenggrow ~]# date

2012年 12月 12日 星期三 08:30:01 CST

如果要还原 回来需要用到时间同步服务器,ntpdate

比如要与上海时区时间同步:

[root@mufenggrow ~]# ntpdate -u ntp.api.bz

11 Jan 19:39:30 ntpdate[75487]: step time server 114.118.7.161 offset 318164310.373762 sec

[root@mufenggrow ~]# date

2023年 01月 11日 星期三 19:39:32 CST

2.3.7 -r 显示文件最后被修改的时间

-r 等于 --reference

使用方法:

格式:date -r 文件路径

作用:显示指定文件最后被修改的时间。

t@mufenggrow ~]# date -r datefile

2023年 01月 11日 星期三 19:25:57 CST

注:cat查看文件不影响,vim进入文件即会修改时间

2.3.8 计算1970年距今的秒数

date +%s

//从 1970 年 1 月 1 日 00:00:00 UTC 到目前为止的秒数(时间戳)

[root@mufenggrow ~]# date +%s

1673437755

这个秒数带了时区计算,所以得额外判断时区。

我们可以写脚本检测一组命令花费的时间:

脚本思路:

先计算命令执行前距离1970的秒数并赋值给start变量

执行命令

执行完后再次统计当前距离1970年产生的秒数并赋值给end

然后对start和end做运算,计算两者的差值。

之后打印这个差值,这个差值就是命令花费的时间

代码示例如下:

[root@mufenggrow ~]# cat a.sh

linux基本功之date命令实战_赋值_09

当然这个脚本还可以继续完善,让他具备更强大的功能






标签:--,mufenggrow,时间,linux,date,格式,基本功,root
From: https://blog.51cto.com/u_15867943/6092445

相关文章

  • linux的cgroups详解
    引子最近在研究k8s,学习到容器的一些知识。了解到docker的核心原理:利用linuxnamespace隔离资源;利用cgroups限制资源的使用;利用chroot改变进程的根目录到指定的目录;我来......
  • 在Linux下写一个简单的驱动程序
    本文首先描述了一个可以实际测试运行的驱动实例,然后由此去讨论Linux下驱动模板的要素,以及Linux上应用程序到驱动的执行过程。相信这样由浅入深、由具体实例到抽象理论......
  • iOS15.4以上NSDateformatter12小时制日期格式问题及解决
    最近有客户反应App点击提交按钮报错的问题,经过分析发现问题是因为时间格式的问题导致的,客户系统iOS15.4以上,系统时间格式设置的是12小时制如下代码NSDate*date=[NSDat......
  • linux虚拟扩容磁盘
    物理磁盘先扩容新增后可能需要重启才会看到。扩容步骤查看分区情况[root@app1~]#fdisk-l磁盘/dev/sda:37.6GB,37580963840字节,73400320个扇区Units=扇区of1*......
  • 【Linux】孤儿进程 | 命令行参数 | 进程优先级
    1.孤儿进程如果父进程一直存在,子进程先退出了,父进程对子进程退出不管不顾,会出现什么样问题么?创建makefile并输入以下内容mytest:test.c2gcc-o$@$^3.PHONY:clea......
  • 【EDATEC】智慧水务大数据管理系统?树莓派:都让开!让我来!
    现阶段智慧水务发展仍处于初级阶段,存在较多问题,然而智慧水务作为智慧城市建设的重要环节,其在未来发挥的作用将越来越凸显,提高企业运营管理效率,提升城市居民生活幸福质量,相......
  • 基于Rocky Linux搭建Windows域控制器
    1、基于RockyLinux搭建Windows域控制器https://blog.csdn.net/Sakura0156/article/details/125822938?spm=1001.2101.3001.6650.8&utm_medium=distribute.pc_relevant.no......
  • Rocky Linux 9 安装 Redis Cluster 配置
    1、安装Redis6.2(六个节点,三主、三副本)dnf-yinstallredis2、修改配置(六个节点)#修改部分的配置文件#vim/etc/redis/redis.conf...bind0.0.0.0daemonizey......
  • Linux服务器的稳定性优势有哪些
    1、服务器重启的时间windows一个月重启一次为最长时间,人工维护力度要强大,另外就是内存不会自动释放,内存不释放意味着时间越长机器就越卡,而Linux2-3个月重启一次即可,或......
  • linux挂载磁盘步骤
    一、查看需要挂载设备,如下sda(默认路径/dev/sda)   二、新建分区,执行如下命令进入操作fdisk/dev/sda1、m 查看可操作的命令   2、键入 n,根据需要新......