当前位置:首页 » 编程软件 » 怎么用脚本执行date命令

怎么用脚本执行date命令

发布时间: 2025-08-08 23:56:47

linuxdate命令查看和设置时间详解图文

date命令
date命令的功能是显示和设置系统日期和时间。
该命令的一般格式为: date [选项] 显示时间格式(以+开头,后面接格式)
date 设置时间格式
命令中各选项的含义分别为:

复制代码代码如下:
-d datestr, --date datestr 显示由datestr描述的日期
-s datestr, --set datestr 设置datestr 描述的日期
-u, --universal 显示或设置通用时间

时间域

复制代码代码如下:
% H 小时(00..23)
% I 小时(01..12)
% k 小时(0..23)
% l 小时(1..12)
% M 分(00..59)
% p 显示出AM或PM
% r 时间(hh:mm:ss AM或PM),12小时
% s 从1970年1月1日00:00:00到目前经历的秒数
% S 秒(00..59)
% T 时间(24小时制)(hh:mm:ss)
% X 显示时间的格式(%H:%M:%S)
% Z 时区 日期域
% a 星期几的简称( Sun..Sat)
% A 星期几的全称( Sunday..Saturday)
% b 月的简称(Jan..Dec)
% B 月的全称(January..December)
% c 日期和时间( Mon Nov 8 14:12:46 CST 1999)
% d 一个月的第几天(01..31)
% D 日期(mm/dd/yy)
% h 和%b选项相同
% j 一年的第几天(001..366)
% m 月(01..12)
% w 一个星期的第几天(0代表星期天)
% W 一年的第几个星期(00..53,星期一为第一天)
% x 显示日期的格式(mm/dd/yy)
% y 年的最后两个数字( 1999则是99)
% Y 年(例如:1970,1996等)

注意:只有超级用户才有权限使用date命令设置时间,一般用户只能使用date命令显示时间。

显示日期和时间
在字符界面下,除了可以显示年月之外,用户还可以使用“date”命令的功能是显示和设置系统日期和时间。需要特别说明的是,只有超级用户才能用“date”命令设置时间,一般用户只能用“date”命令显示时间。

用指定的格式显示时间,命令如下:

其中% x 显示日期的格式(mm/dd/yy),% X 显示时间的格式(%H:%M:%S)。
其它参数可查看上面的date时间域的设置。

例子:


复制代码 代码示例:
设置时间为上午9点16分
命令如下:
# date -s 09:16:00

设置时间为2013年8月1日
命令如下:
# date -s 130801
其中-s是设置日期的参数。

设置时间为2013年8月1日 上午9点16分
命令如下:
# date -s ཅ:16:00 2013-08-01'
其中-s是设置日期的参数。
在shell脚本中获得当天的日期格式,如下:

date命令的其它参数的用法,就不详细举例子,例如%H显示小时(00..23)、%M显示分(00..59)、%p显示出AM或PM、%S显示秒(00..59)和%Z显示时区等。
大家可以自行研究下。

❷ Linuxdate日期格式及加减运算

显示时间是个常用的命令,在写shell脚本中也经常会用到与日期相关文件名或时间显示。无论是Linux还是windows下都是date命令。

Linux下date命令用法
date [OPTION]… [+FORMAT]
date [-u|--utc|--universal] [MMDDhhmm[[CC]YY][.ss]]

date命令参数
-d, –date=STRING 显示STRING指定的时间
-f, –file=DATEFILE 类似–date参数显示DATEFILE文件中的每行时间
-ITIMESPEC, –iso-8601[=TIMESPEC] 以ISO 8601 格式显示日期/时间。TIMESPEC为”date”(只显示日期)、”hours”、”minutes”、”senconds”(显示时间精度)之一,默认为”date”。
-r, –reference=FILE 显示文件的最后修改时间
-R, –rfc-2822 以RFC-2822兼容日期格式显示时间
-s, –set=STRING 设置时间为STRING
-u, –utc, –universal 显示或设定为Coordinated Universal Time时间格式

date命令输出显示格式

%% 字符%
%a 星期的缩写(Sun..Sat)
%A 星期的完整名称 (Sunday..Saturday)
%b 月份的缩写(Jan..Dec)
%B 月份的完整名称(January..December)
%c 日期时间(Sat Nov 04 12:02:33 EST 1989)
%C 世纪(年份除100后去整) [00-99]
%d 一个月的第几天(01..31)
%D 日期(mm/dd/yy)
%e 一个月的第几天 ( 1..31)
%F 日期,同%Y-%m-%d
%g 年份(yy)
%G 年份(yyyy)
%h 同%b
%H 小时(00..23)
%I 小时(01..12)
%j 一年的第几天(001..366)
%k 小时( 0..23)
%l 小时( 1..12)
%m 月份(01..12)
%M 分钟(00..59)
%n 换行
%N 纳秒(000000000..999999999)
%p AM or PM
%P am or pm
%r 12小时制时间(hh:mm:ss [AP]M)
%R 24小时制时间(hh:mm)
%s 从00:00:00 1970-01-01 UTC开始的秒数
%S 秒(00..60)
%t 制表符
%T 24小时制时间(hh:mm:ss)
%u 一周的第几天(1..7); 1 表示星期一
%U 一年的第几周,周日为每周的第一天(00..53)
%V 一年的第几周,周一为每周的第一天 (01..53)
%w 一周的第几天 (0..6); 0 代表周日
%W 一年的第几周,周一为每周的第一天(00..53)
%x 日期(mm/dd/yy)
%X 时间(%H:%M:%S)
%y 年份(00..99)
%Y 年份 (1970…)
%z RFC-2822 风格数字格式时区(-0500)
%Z 时区(e.g., EDT), 无法确定时区则为空

以下是做的一些实验,便于理解

$ date -d "2010-11-15 23:00:01"Mon Nov 15 23:00:01 PST 2010$ date -d "2010/11/15 23:0:2"Mon Nov 15 23:00:02 PST 2010$ date -d "2010/11/15T23:0:2"Mon Nov 15 08:00:02 PST 2010$$ echo "2010-11-15 23:00:01" > date.txt$ echo "2010/11/15 23:00:02" >> date.txt$ cat date.txt2010-11-15 23:00:012010/11/15 23:00:02$ date -f date.txtMon Nov 15 23:00:01 PST 2010Mon Nov 15 23:00:02 PST 2010$$ ls -ltotal 4-rw-r--r-- 1 znan sybase 40 Nov 15 21:14 date.txt$ date -r date.txtMon Nov 15 21:14:36 PST 2010$$ date -I2010-11-15$ date -Ihours2010-11-15T21-0800$ date -Iminutes2010-11-15T21:16-0800$ date -Iseconds2010-11-15T21:16:24-0800$$ date -RMon, 15 Nov 2010 21:47:08 -0800$ date -uTue Nov 16 05:47:13 UTC 2010$$ date +"Today is %A."Today is Monday.$ date +"Date:%b. %e, %G"Date:Nov. 15, 2010$ date +"Date: %b.%e, %G"Date: Nov.15, 2010$ date +"%x %X"11/15/2010 09:50:21 PM$ date +"%Y-%m-%d %H:%M:%S"2010-11-15 21:51:32$ date +"%Y-%m-%d %I:%M:%S %p"2010-11-15 09:51:55 PM

Linux date 常用时间格式

date=$(date "+%Y-%m-%d___%H:%M:%S")
echo date
2012-08-16___05:52:20

date "+%Y-%m-%d"
2012-08-16
------------------------------------

Linux date 日期加减运算
date // 默认时间格式
Thu Aug 16 05:42:38 UTC 2012

date +"%b %e, %G" // 定制格式
Aug 16, 2012

date +"%b %e, %G" -d'-1 day' 或 date -d'-1 day' +"%b %e, %G" // 减一天(加一天类似)
Aug 15, 2012

date +"%b %e, %G" -d'+1 month' 或 date -d'+1 month' +"%b %e, %G" // 加一月(减一月类似)
Sep 16, 2012

date +"%Y年%m月%d日"
2012年08月20日

date +"%Y年%m月%d日" -d'-1 day' // 同上面加减1天(或加减1月)
2012年08月19日

date +"%Y年%-m月%d日" // %-m 去除月份对其的零
2012年8月20日
------------------------------------

Ubuntu 修改系统时间
sudo date -s MM/DD/YY
sudo date -s hh:mm:ss
注意,这里说的是系统时间,是linux由操作系统维护的。

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

如果要确保修改的硬件时间生效,可以执行如下命令。
sudo dwclock -w 或 sudo clock -w(ubuntu下有时候无法用clock -w 没有这个命令 如果没有就 使用这个hwclock -w)
这个命令强制把系统时间写入CMOS。

查看硬件时间

sudo hwclock --show
$ sudo hwclock --show
Thursday, August 16, 2012 PM04:46:32 UTC -0.664019 seconds

核心提示:让VMware虚拟机上的ubuntu10.10时间与网络同步
每次启动虚拟机后,ubuntu10.10的时间都不合适,发现需要这样设置:
系统–>系统管理–>时间和日期
时区选择:Asia/Chongqing
配置选择:与互联网服务器保持同步(这时提示需要安装名称为ntp的软件,安装即可,安装后提示要替换一个文件,选择“替换“)
时间服务器选择:time.nuri.NET(Korea,Asia)


查看文件命令:ls -l 和 ls -l --time-style=long-iso


❸ 如何获取linux毫秒级的当前时间

在Linux系统中,获取当前时间是一个常见的需求。然而,有时候我们不仅仅需要获取到秒级的时间,而是需要获取到更加精确的毫秒级时间。为了实现这一需求,我们可以使用不同的命令或脚本来获取时间信息。

首先,我们来看一个使用date命令获取当前时间的例子。使用命令"date +%Y%m%d-%H:%M:%S.%N"可以获取到当前时间的毫秒级别精度。这个命令会返回一个格式为"年月日-时:分:秒.毫秒"的时间字符串,其中%N代表纳秒级别的时间。我们可以通过截取这一字符串中的毫秒部分,来获取到我们需要的毫秒级时间。

另一种获取当前时间的方法是使用clock命令。通过执行"clock --show",我们可以看到类似"Tue 29 Aug 2017 01:14:21 PM CST -0.396903 seconds"这样的输出。这个输出显示了日期和时间,但并不直接提供毫秒级别的时间。不过,我们可以结合其他工具或脚本,从这个输出中提取出我们需要的时间信息。

值得注意的是,获取毫秒级时间的方法可能会因系统环境和所使用的工具而有所不同。在某些情况下,可能需要结合使用其他命令或脚本来进一步处理时间信息,以达到我们想要的精确度。

此外,获取毫秒级时间在很多应用场景中都非常重要,比如在编写性能测试脚本、日志记录或时间敏感的应用程序时。准确的时间信息可以帮助我们更好地理解程序的运行情况,从而进行更精确的调试和优化。

总之,通过灵活运用Linux系统中的各种命令和工具,我们可以轻松地获取到毫秒级的时间信息,为我们的工作和开发提供有力的支持。

❹ 通过8个案例彻底掌握 Linux Date 命令

在 Linux 系统中,掌握准确日期的显示与设置是基础技能。Linux date 命令专门用于处理此功能。本文将通过八个案例,深入解析如何有效使用 date 命令。

命令基本语法为:`$ date [option]… [+format]`。

不带任何选项使用 date 命令时,系统会显示当前的日期和时间,包括周、月、年等,时间格式为 hh:mm:ss,以及当前时区。

若需查看 UTC(协调世界时)时间,可使用 `-u` 选项。

要以字符串格式显示特定日期,使用 `--date` 选项即可。这不会更改系统时间,而是将日期格式转换为字符串。

通过 `date` 命令,您可以查看过去的日期。例如:查看过去9天、两周、三个月、三年的日期。

同样地,也可以查看未来的日期。例如:查看明天、一周、两周、四个月、两年后的日期。

格式化选项丰富了 date 命令的使用。例如,使用 `+%option` 可以将日期格式化为特定格式,如 `yy/mm/dd`。此外,可以打印出当天的星期、月、年和时间。

若需设置日期和时间,使用 date 命令可以设置特定日期和时间,例如设置为2021年6月25日上午11:15。但不建议直接在系统上更改时间,应使用 Chrony Utility 进行调整。

更改时区时,可使用 `timedatectl` 命令。

在创建 shell 脚本时,常将 date 命令结果保存至变量中,用于生成日志文件,例如:`$ date > log_file.txt`。

❺ shell 脚本中日期运算

在shell脚本中进行日期运算,可以采用以下几种方法:

  1. 日期加减操作

    • 使用date命令结合特定的格式选项进行日期的加减。例如,date +%d d "20201013"可以获取2020年10月13日是几号。
    • 通过d选项可以指定加减的年、月、日、时、分、秒,例如date +"%Y%m%d" d "1 day"获取前一天的日期。
  2. 计算月份的第一天和最后一天

    • 使用算术运算符和date命令结合,可以计算出指定日期所在月份的第一天和最后一天。例如,date +"%Y%m%d" d "$ 1 )) days 20201020"计算2020年10月20日所在月份的第一天。
    • 类似地,date +"%Y%m%d" d "$) days +1 month 20201020")计算最后一天。
  3. 日期与UTC时间的转换

    • 使用date +%s命令可以将当前时间转换为UTC时间戳。
    • 通过date +%s d "特定日期时间"可以将特定日期时间转换为UTC时间戳。
    • 反过来,通过date d "@UTC时间戳"可以将UTC时间戳转换回具体的日期时间。
  4. 日期比较

    • 在shell中进行日期比较,通常先将日期转换为UTC时间戳再进行比较。
    • 可以使用date +%s d "日期1"和date +%s d "日期2"分别获取两个日期的UTC时间戳,然后进行比较。
  5. 日期循环遍历

    • 可以编写脚本,使用循环结构结合日期加减操作,遍历指定时间段内的每一天。
    • 例如,使用for循环和date命令结合,可以遍历某个月的所有日期。

这些方法涵盖了shell脚本中常见的日期运算需求,包括日期的加减、月份的第一天和最后一天的计算、日期与UTC时间的转换、日期的比较以及日期的循环遍历。

❻ Linux Shell 输出北京时间的写法

在Linux或Shell脚本中,使用`date`命令获取时间是常见的操作。然而,由于Linux所在时区的影响,可能输出的时间并非所期望的时间。本文将介绍如何使用`date`命令指定时区,获取特定时区的时间。

无需额外安装,直接在Linux命令行输入或应用在脚本中,`date`命令即可使用。

首先,`date`获取当前时间的命令如下:

执行结果将显示当前的系统时间。

若要获取特定时区的当前时间,例如北京时间(东八区),则使用如下命令:

执行此命令后,将返回北京时间。

欲知更多Linux Shell相关技巧及教程,欢迎访问老王博客。

热点内容
安卓如何查看界面是原声还是网页 发布:2025-08-30 07:19:11 浏览:729
钙红如何配置钙红指示剂 发布:2025-08-30 06:45:41 浏览:658
安卓测量员为什么不能加载摄像头 发布:2025-08-30 06:40:35 浏览:578
scratch编程网 发布:2025-08-30 06:40:00 浏览:556
编程数控图 发布:2025-08-30 06:33:22 浏览:916
安卓q区哪个省的瑶战力最低 发布:2025-08-30 06:23:34 浏览:333
海康云台配置为什么只有一个协议 发布:2025-08-30 06:22:03 浏览:79
网站源码翻译 发布:2025-08-30 06:19:55 浏览:962
创意公益广告脚本 发布:2025-08-30 06:04:41 浏览:224
购买云服务器后 发布:2025-08-30 06:04:38 浏览:247