Linux下date命令常用方法小计

这里总结介绍一下date命令格式化输出和时间设置的方法。

date命令参数详解:

给定的格式FORMAT 控制着输出,解释序列如下:

时间输出

在Linux下date命令是由coreutils安装出来的一个系统命令,用来显示当前系统时间,不过默认显示结果可能不是你想想要的,特别是结果作为文件名输出不是很合适,这时候就可以利用好date命令格式化选项了。

在linux Shell中并没有毫秒级的时间单位,只有秒和纳秒其实这样就足够了,因为纳秒的单位范围是(000000000..999999999),所以从纳秒也是可以的到毫秒的。

使用 date +%s%N 可以获得一个纳秒级的unix时间戳(当前时间),然后根据需要截取一部分即可得到毫秒级的精度,例如 echo $[$(date +%s%N)/1000000] 即为毫秒级时间戳

如果是指定某个时间字符串对应的时间戳,则将上面的 更改为

时间设置

一般我们会使用来修改系统时间,比如我们把当前系统时间设定为2008年8月8日:

将系统时间设定成20点08分08秒的命令:

注意:这里说的是系统时间,是linux由操作系统维护的。

在系统启动时,Linux操作系统将时间从CMOS中读到系统时间变量中,以后修改时间通过修改系统时间实现。为了保持系统时间与CMOS时间的一致性,Linux每隔一段时间会将系统时间写入CMOS。由于该同步是每隔一段时间(大约是11分钟)进行的,在我们执行date -s后,如果马上重起机器,修改时间就有可能没有被写入CMOS,这就是问题的原因。

如果要确保修改生效可以执行如下命令:

这个命令强制把系统时间写入CMOS。

CMOS:一个微机主板上可读可写的RAM芯片,它存储了微机系统的实时钟信息和硬件配置信息等。共128个字节,系统在加电引导机器时,要读取CMOS信息,用来初始化机器各个部件的状态。它靠系统电源和后备电池供电,系统掉电后信息不会丢失。

如果想要时间变回正常时间,操作如下:

好命令的常用就介绍到这里,希望可以给你一个参考,可以帮到你。

  • 发表于:
  • 原文链接https://kuaibao.qq.com/s/20180516G0AG4R00?refer=cp_1026
  • 腾讯「云+社区」是腾讯内容开放平台帐号(企鹅号)传播渠道之一,根据《腾讯内容开放平台服务协议》转载发布内容。

扫码关注云+社区

领取腾讯云代金券

年度创作总结 领取年终奖励