linux命令date、time

date 命令可以显示设置日期和时间。

-d 根据指定的字符串来显示时间,必须加上双引号
-s 根据指定的字符串来设置时间

-u 根据utc显示和设置

-R 以 RFC 2822格式输出时间

<+格式>:指定显示时使用的日期时间格式。

%H 小时,24小时制(00~23)
%I 小时,12小时制(01~12)
%k 小时,24小时制(0~23)
%l 小时,12小时制(1~12)
%M 分钟(00~59)
%p 显示出AM或PM
%r 显示时间,12小时制(hh:mm:ss %p)
%s 从1970年1月1日00:00:00到目前经历的秒数
%S 显示秒(00~59)
%T 显示时间,24小时制(hh:mm:ss)
%X 显示时间的格式(%H:%M:%S)
%Z 显示时区,日期域(CST)
%a 星期的简称(Sun~Sat)
%A 星期的全称(Sunday~Saturday)
%h,%b 月的简称(Jan~Dec)
%B 月的全称(January~December)
%c 日期和时间(Tue Nov 20 14:12:58 2012)
%d 一个月的第几天(01~31)
%x,%D 日期(mm/dd/yy)
%j 一年的第几天(001~366)
%m 月份(01~12)
%w 一个星期的第几天(0代表星期天)
%W 一年的第几个星期(00~53,星期一为第一天)
%y 年的最后两个数字(1999则是99)
#显示当前时间
[root@izj6cfw9yi1iqoik31tqbgz push]# date
Thu Jul  5 09:41:30 CST 2018
[root@izj6cfw9yi1iqoik31tqbgz push]# date +"%Y-%m-%d %H:%M:%S"
2018-07-05 09:41:58
#显示特定时间
date -d "+1 day" +"%Y-%m-%d %H:%M:%S"  #明天
date -d "-1 day" +"%Y-%m-%d %H:%M:%S"  #昨天
date -d "+1 month" +"%Y-%m-%d %H:%M:%S" #下个月
date -d "+1 year" +"%Y-%m-%d %H:%M:%S"  #明年

date -d "+1 week" +"%Y-%m-%d %H:%M:%S"  #下周(加7天)
#2018-07-12 09:46:11
设置时间
date -s "2018-07-05 09:49:33"

date -s "+1 day"
#查看时区代表东8区
[root@192 ~]# date +"%Z %z"
CST +0800

[root@192 ~]# date -R
Fri, 06 Jul 2018 10:40:33 +0800

如果想要修改时区,可以链接 /usr/share/zoneinfo 目录下的一个文件到 /etc/localtime,比如要设置亚洲上海时区。

ln -sf /usr/share/zoneinfo/Asia/Shanghai /etc/localtime


time 是用来统计程序运行花费的 cpu 时间,bash 内置就有 time 命令,但是功能有限,只能用来显示如下。

[root@192 ~]# time find /usr -name aaa

real	0m5.003s
user	0m0.039s
sys	0m0.767s

real 代表花费的时钟时间。
user 用户 cpu 时间
sys 系统内核的 cpu 时间

想要额外功能,可以安装 time。

yum install time
[root@192 ~]# which time
/usr/bin/time

由于系统首先会查找 bash 内置命令,所以想要运行刚安装的这个命令,需要绝对路径调用。

-o 输出到文件
-a 追加模式

-f 指定输出格式

下面是一些格式,从man time 翻译过来,英文好的朋友可以自行去参考。

时间

%E     时钟时间 (in [hours:]minutes:seconds).
%e     时钟时间(in seconds).
%S     系统内核cpu时间.
%U     用户cpu时间.
%P     总cpu百分比(%U + %S) / %E

内存

%M     最大驻留集大小, in Kbytes.
%t     平均驻留集大小, in Kbytes.
%K     平均使用内存(data+stack+text), in Kbytes.
%D     未共享的数据区内存(data), in Kbytes.
%p     未共享的栈空间(stack), in Kbytes.
%X     平均共享上下文(text)大小, in Kbytes.
%Z     系统内存页大小, in bytes. 系统常量.
%F     运行时主要页错误发生次数,发生在从硬盘读取内容到内存。
%R     次要或可恢复的错误,比如暂时不可用但是还没有被其他程序
       声明的虚拟页,这些页有效的,只是需要更新系统页表。
%W     交换内存的次数.
%c     被动的上下文切换次数(比如cpu时间片到期)
%w     主动切换为等待次数,比如io等待。

I/O

%I     文件系统输入次数.
%O     文件系统输出次数.
%r     接收到socket信息的次数.
%s     socket信息发送的次数.
%k     信号到达的次数.
%C     命令行名称和参数.
%x     退出状态
[root@192 ~]# /usr/bin/time -f "%e %U %S %P %K %I %M %Z" find /usr -name dddd
0.10 0.03 0.07 106% 0 0 3744 4096


上一篇: linux命令man、locale、selinux
下一篇: linux命令at、crontab、anacron
作者邮箱: 203328517@qq.com