这里总结介绍一下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信息,用来初始化机器各个部件的状态。它靠系统电源和后备电池供电,系统掉电后信息不会丢失。
如果想要时间变回正常时间,操作如下:
好命令的常用就介绍到这里,希望可以给你一个参考,可以帮到你。
领取专属 10元无门槛券
私享最新 技术干货