linux date --date?linux的date命令
这篇文章给大家聊聊关于linux date --date,以及linux的date命令对应的知识点,希望对各位有所帮助,不要忘了收藏本站哦。
8个Date命令使用示例
掌握Linux时间管理:date命令详解
Linux date命令,是系统管理中不可或缺的工具,它不仅用于显示当前的日期和时间,还能进行灵活的时间设置。下面我们将通过八个实用示例,带你全面了解date命令的强大功能。
不带选项的基础展示
只需简单输入date,即可获取当前的日期和时间,如:系统显示: [root@server1~]# date Mon May 24 14:50:31 CST 2021,清晰明了地呈现了星期、月份、年份和具体时间。
切换至世界标准时间
想要查看UTC时间?只需添加-u选项,如:命令执行: [root@server1~]# date-u Mon May 24 06:51:21 UTC 2021,便于全球时间的比对和理解。
以字符串格式呈现特定日期
date命令还能通过--date选项,将日期转换为特定格式,如:转换结果: [root@server1~]# date--date="5/20/2021 13:14" Thu May 20 13:14:00 CST 2021,灵活输出定制日期。
查看历史和未来日期
date命令不仅限于当前,还能查看过去和未来,比如查看9天前:[root@server1~]# date--date="9 days ago" Sat May 15 14:56:47 CST 2021,或者一周后:[root@server1~]# date--date="next week" Mon May 31 14:59:27 CST 2021。
定制日期和时间格式
date命令提供了丰富的格式选项,如%Y/%m/%d用于指定日期格式,如[root@server1~]# date"+%Y/%m/%d" 2021/05/24,可自定义输出样式。
设置日期和时间
使用--set选项,你可以直接设定日期和时间,如:设定命令: [root@server1~]# date--set="20210625 11:15" Fri Jun 25 11:15:00 CST 2021,灵活调整系统时间。
在脚本中利用date
在编写Shell脚本时,date命令可嵌入变量,如创建日志文件:#!/bin/bash
LOGFILE=/tmp/logs-$(date+%d-%m-%Y_%T)
...,确保记录的时间信息精准无误。
总结
Linux date命令是系统时间管理的得力助手,通过这些示例,你已掌握如何在Linux系统上灵活运用它。无论是查看、设置还是在脚本中嵌入,date命令都为日常操作和系统维护提供了强大的支持。
linux 的date命令及系统时间设置
Linux时钟分为系统时钟(System Clock)和硬件(Real Time Clock,简称RTC)时钟。系统时钟是指当前Linux Kernel中的时钟,而硬件时钟则是主板上由电池供电的时钟,这个硬件时钟可以在BIOS中进行设置。当Linux启动时,硬件时钟会去读取系统时钟的设置,然后系统时钟就会独立于硬件运作。
Linux中的所有命令(包括函数)都是采用的系统时钟设置。在Linux中,用于时钟查看和设置的命令主要有date、hwclock。
1、date
名称: date
使用权限:所有使用者
使用方式:
date [-u] [-d datestr] [-s datestr] [--utc] [--universal] [--date=datestr] [--set=datestr] [--help] [--version] [+FORMAT] [MMDDhhmm[[CC]YY][.ss]]
说明:
date可以用来显示或设定系统的日期与时间,在显示方面,使用者可以设定欲显示的格式,格式设定为一个加号后接数个标记,其中可用的标记列表如下:
时间方面:
%:印出%
%n:下一行
%t:跳格
%H:小时(00-23)
%I:小时(01-12)
%k:小时(0-23)
%l:小时(1-12)
%M:分钟(00-59)
%p:显示本地 AM或 PM
%r:直接显示时间(12小时制,格式为 hh:mm:ss [AP]M)
%s:从 1970年 1月 1日 00:00:00 UTC到目前为止的秒数
%S:秒(00-60)
%T:直接显示时间(24小时制)
%X:相当于%H:%M:%S
%Z:显示时区
日期方面:
%a:星期几(Sun-Sat)
%A:星期几(Sunday-Saturday)
%b:月份(Jan-Dec)
%B:月份(January-December)
%c:直接显示日期与时间
%d:日(01-31)
%D:直接显示日期(mm/dd/yy)
%h:同%b
%j:一年中的第几天(001-366)
%m:月份(01-12)
%U:一年中的第几周(00-53)(以 Sunday为一周的第一天的情形)
%w:一周中的第几天(0-6)
%W:一年中的第几周(00-53)(以 Monday为一周的第一天的情形)
%x:直接显示日期(mm/dd/yy)
%y:年份的最后两位数字(00.99)
%Y:完整年份(0000-9999)
若是不以加号作为开头,则表示要设定时间,而时间格式为 MMDDhhmm[[CC]YY][.ss],其中 MM为月份,DD为日,hh为小时,mm为分钟,CC为年份前两位数字,YY为年份后两位数字,ss为秒数
参数:
-d datestr:显示 datestr中所设定的时间(非系统时间)
--help:显示辅助讯息
-s datestr:将系统时间设为 datestr中所设定的时间
-u:显示目前的格林威治时间
--version:显示版本编号
例子:
显示时间后跳行,再
显示目前日期:#date'+%T%n%D'
显示月份与日数: date'+%B%d'
显示日期与设定时间(12:34:56):#date--date'12:34:56'
注意:当你不希望出现无意义的 0时(比如说 1999/03/07),则可以在标记中插入-符号,比如说 date'+%-H:%-M:%-S'会把时分秒中无意义的 0给去掉,像是原本的 08:09:04会变为 8:9:4。另外,只有取得权限者(比如说 root)才能设定系统时间。
当你以 root身分更改了系统时间之后,请记得以 clock-w来将系统时间写入 CMOS中,这样下次重新开机时系统时间才会持续抱持最新的正确值。
例子:修改日期时间
在命令行输入:
Date:显示当前时间 Fri Aug 3 14:15:16 CST 2007
date–s:按字符串方式修改时间
可以只修改日期,不修改时间,输入: date-s 2007-08-03
只修改时间,输入:date-s 14:15:00
同时修改日期时间,注意要加双引号,日期与时间之间有一空格,输入:
#date-s"2007-08-03 14:15:00"
2、查看硬件时间
# hwclock
设置硬件时间
# hwclock-set-date="07/07/06 10:19"(月/日/年时:分:秒)
3、硬件时间和系统时间的同步
按照前面的说法,重新启动系统,硬件时间会读取系统时间,实现同步,但是在不重新启动的时候,需要用hwclock命令实现同步。
硬件时钟与系统时钟同步:
# hwclock--hctosys(hc代表硬件时间,sys代表系统时间)
系统时钟和硬件时钟同步:(让系统的时间同步到硬件时钟)
# hwclock–systohc
linux命令大全之date命令详解
在linux环境中,不管是编程还是其他维护,时间是必不可少的,也经常会用到时间的运算,熟练运用date命令来表示自己想要表示的时间,肯定可以给自己的工作带来诸多方便。
1.命令格式:
date [参数]... [+格式]
2.命令功能:
date可以用来显示或设定系统的日期与时间。
3.命令参数:
必要参数:
%H小时(以00-23来表示)。
%I小时(以01-12来表示)。
%K小时(以0-23来表示)。
%l小时(以0-12来表示)。
%M分钟(以00-59来表示)。
%P AM或PM。
%r时间(含时分秒,小时以12小时AM/PM来表示)。
%s总秒数。起算时间为1970-01-01 00:00:00 UTC。
%S秒(以本地的惯用法来表示)。
%T时间(含时分秒,小时以24小时制来表示)。
%X时间(以本地的惯用法来表示)。
%Z市区。
%a星期的缩写。
%A星期的完整名称。
%b月份英文名的缩写。
%B月份的完整英文名称。
%c日期与时间。只输入date指令也会显示同样的结果。
%d日期(以01-31来表示)。
%D日期(含年月日)。
%j该年中的第几天。
%m月份(以01-12来表示)。
%U该年中的周数。
%w该周的天数,0代表周日,1代表周一,异词类推。
%x日期(以本地的惯用法来表示)。
%y年份(以00-99来表示)。
%Y年份(以四位数来表示)。
%n在显示时,插入新的一行。
%t在显示时,插入tab。
MM月份(必要)
DD日期(必要)
hh小时(必要)
mm分钟(必要)
ss秒(选择性)
选择参数:
-d字符串显示字符串所指的日期与时间。字符串前后必须加上双引号。
-s字符串根据字符串来设置日期与时间。字符串前后必须加上双引号。
-u显示GMT。
--help在线帮助。
--version显示版本信息
4.使用说明:
1.在显示方面,使用者可以设定欲显示的格式,格式设定为一个加号后接数个标记,其中可用的标记列表如下:%: 打印出%:
%n:下一行
%t:跳格
%H:小时(00..23)
%I:小时(01..12)
%k:小时(0..23)
%l:小时(1..12)
%M:分钟(00..59)
%p:显示本地 AM或 PM
%r:直接显示时间(12小时制,格式为 hh:mm:ss [AP]M)
%s:从 1970年 1月 1日 00:00:00 UTC到目前为止的秒数
%S:秒(00..61)
%T:直接显示时间(24小时制)
%X:相当于%H:%M:%S
%Z:显示时区%a:星期几(Sun..Sat)
%A:星期几(Sunday..Saturday)
%b:月份(Jan..Dec)
%B:月份(January..December)
%c:直接显示日期与时间
%d:日(01..31)
%D:直接显示日期(mm/dd/yy)
%h:同%b
%j:一年中的第几天(001..366)
%m:月份(01..12)
%U:一年中的第几周(00..53)(以 Sunday为一周的第一天的情形)
%w:一周中的第几天(0..6)
%W:一年中的第几周(00..53)(以 Monday为一周的第一天的情形)
%x:直接显示日期(mm/dd/yy)
%y:年份的最后两位数字(00.99)
%Y:完整年份(0000..9999)
2.在设定时间方面:
date-s//设置当前时间,只有root权限才能设置,其他只能查看。
date-s 20080523//设置成20080523,这样会把具体时间设置成空00:00:00
date-s 01:01:01//设置具体时间,不会对日期做更改
date-s“01:01:01 2008-05-23″//这样可以设置全部时间
date-s“01:01:01 20080523″//这样可以设置全部时间
date-s“2008-05-23 01:01:01″//这样可以设置全部时间
date-s“20080523 01:01:01″//这样可以设置全部时间
3.加减:
date+%Y%m%d //显示前天年月日
date+%Y%m%d--date="+1 day" //显示前一天的日期
date+%Y%m%d--date="-1 day" //显示后一天的日期
date+%Y%m%d--date="-1 month" //显示上一月的日期
date+%Y%m%d--date="+1 month" //显示下一月的日期
date+%Y%m%d--date="-1 year" //显示前一年的日期
date+%Y%m%d--date="+1 year" //显示下一年的日期
5.使用实例:
实例1:显示当前时间
命令:
复制代码
代码如下:
date
date'+%c'
date'+%D'
date'+%x'
date'+%T'
输出:
复制代码
代码如下:
[root@localhost~]# date
2012年 12月 08日星期六 08:31:35 CST
[root@localhost~]# date'+%c'
2012年12月08日星期六 08时34分44秒
[root@localhost~]# date'+%D'
12/08/12[root@localhost~]# date'+%x'
2012年12月08日
[root@localhost~]# date'+%T'
08:35:36[root@localhost~]# date'+%X'
08时35分54秒
[root@localhost~]#
实例2:显示日期和设定时间
命令:date--date 08:42:00
输出:
复制代码
代码如下:
[root@localhost~]# date'+%c'
2012年12月08日星期六 08时41分37秒
[root@localhost~]# date--date 08:42:00
2012年 12月 08日星期六 08:42:00 CST
[root@localhost~]# date'+%c'--date 08:45:00
2012年12月08日星期六 08时45分00秒
[root@localhost~]#
[code]/pp实例3:date-d参数使用
命令: date-d"nov 22"
输出:
[code]
[root@localhost~]# date-d"nov 22"
2012年 11月 22日星期四 00:00:00 CST
[root@localhost~]# date-d'2 weeks'
2012年 12月 22日星期六 08:50:21 CST
[root@localhost~]# date-d'next monday'
2012年 12月 10日星期一 00:00:00 CST
[root@localhost~]# date-d next-day+%Y%m%d
20121209
[root@localhost~]# date-d tomorrow+%Y%m%d
20121209
[root@localhost~]# date-d last-day+%Y%m%d
20121207
[root@localhost~]# date-d yesterday+%Y%m%d
20121207
[root@localhost~]# date-d last-month+%Y%m
201211
[root@localhost~]# date-d next-month+%Y%m
201301
[root@localhost~]# date-d'30 days ago'
2012年 11月 08日星期四 08:51:37 CST
[root@localhost~]# date-d'-100 days'
2012年 08月 30日星期四 08:52:03 CST
[root@localhost~]# date-d'dec 14-2 weeks'
2012年 11月 30日星期五 00:00:00 CST
[root@localhost~]# date-d'50 days'
2013年 01月 27日星期日 08:52:27 CST
说明:#后为需要输入的命令
date命令的另一个扩展是-d选项,该选项非常有用。使用这个功能强大的选项,通过将日期作为引号括起来的参数提供,您可以快速地查明一个特定的日期。-d选项还可以告诉您,相对于当前日期若干天的究竟是哪一天,从现在开始的若干天或若干星期以后,或者以前(过去)。通过将这个相对偏移使用引号括起来,作为-d选项的参数,就可以完成这项任务。
具体说明如下:
date-d"nov 22" 今年的 11月 22日是星期三
date-d'2 weeks' 2周后的日期
date-d'next monday'(下周一的日期)
date-d next-day+%Y%m%d(明天的日期)或者:date-d tomorrow+%Y%m%d
date-d last-day+%Y%m%d(昨天的日期)或者:date-d yesterday+%Y%m%d
date-d last-month+%Y%m(上个月是几月)
date-d next-month+%Y%m(下个月是几月)
使用 ago指令,您可以得到过去的日期:
date-d'30 days ago'(30天前的日期)
使用负数以得到相反的日期:
date-d'dec 14-2 weeks'(相对:dec 14这个日期的两周前的日期)
date-d'-100 days'(100天以前的日期)
date-d'50 days'(50天后的日期)
实例4:显示月份和日数
命令:date '+%B%d'
输出:
复制代码
代码如下:
[root@localhost~]# date'+%B%d'
十二月
08[root@localhost~]#
实例5:显示时间后跳行,再显示目前日期
命令:date'+%T%n%D'
输出:
复制代码
代码如下:
[root@localhost~]# date'+%T%n%D'
09:00:30
12/08/12
[root@localhost~]#