我一直对历史日期感兴趣,并想确定某个事件实际发生在一周中的哪一天。美国独立宣言是在一周中的哪一天签署的?我出生在一周中的哪一天?1876 年 7 月 4 日是在一周中的哪一天?我知道你可以使用搜索引擎来回答许多这些问题。但是,您是否知道 Linux 命令行也可以提供这些答案?
1776 年 7 月 4 日是星期四。1876 年 7 月 4 日是星期二。我妈妈很快就要过生日了,我知道她出生在 11 月 6 日星期六。(我不能告诉你哪一年,因为她不想让别人知道她的年龄。)
Linux 的 date 和 calendar 命令的功能远不止提供这些有趣的花絮。以下是一些您可以在命令行中发出的简单 cal 命令示例
显示当前日历月:$ cal
November 2016 Su Mo Tu We Th Fr Sa 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30
显示特定月份的日历:$ cal -m February
February 2016 Su Mo Tu We Th Fr Sa 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29
显示带有儒略日的日历:$ cal -j
November 2016 Su Mo Tu We Th Fr Sa 306 307 308 309 310 311 312 313 314 315 316 317 318 319 320 321 322 323 324 325 326 327 328 329 330 331 332 333 334 335
显示当前月份、上个月和下个月:$ cal -3
October November December Su Mo Tu We Th Fr Sa Su Mo Tu We Th Fr Sa Su Mo Tu We Th Fr Sa 1 1 2 3 4 5 1 2 3 2 3 4 5 6 7 8 6 7 8 9 10 11 12 4 5 6 7 8 9 10 9 10 11 12 13 14 15 13 14 15 16 17 18 19 11 12 13 14 15 16 17 16 17 18 19 20 21 22 20 21 22 23 24 25 26 18 19 20 21 22 23 24 23 24 25 26 27 28 29 27 28 29 30 25 26 27 28 29 30 31 30 31 |
您可以使用 $ cal -y
显示全年,或使用 $ cal -jy
显示儒略日,从 1 月 1 日的 1 开始,到 12 月 31 日的 365 或 366(如果是闰年)结束。您还可以使用相关的 ncal 命令找出稍微复杂的日期。例如,$ ncal -e
显示当年复活节的日期。
像大多数命令行工具一样,日历工具可以与管道或其他函数组合使用。如果您想要整年的打印输出,然后将日历命令通过管道传输到文本文件,您可以简单地运行 $ cal 2016 > YearlyCalendar.txt
。该文本文件可以在任何文本编辑器中打开和编辑,或保存为 PDF 并共享。
Linux 中的 date 命令可以显示多种格式的日期,或设置计算机 Linux 操作系统上的日期。date 命令可以与 shell 脚本结合使用,例如,轻松地将日期附加到您正在编辑的文件中。除了日历日期之外,还可以指定时间。以下是一些示例。
您可以使用以下命令显示今天的日期:$ date
Wed Nov 2 21:20:22 EDT 2016
您还可以将一种日期格式转换为另一种日期格式。例如,要转换为日期标准格式,请使用:$date --date="11/30/16"
Wed Nov 30 00:00:00 EST 2016
也可以指定时间:$ date --date="December 1 2017 12:00:00"
Fri Dec 1 12:00:00 EST 2017
您还可以指定日期格式。例如,对于 YYYY-Mo-Day 格式,请使用 $ date +%F
,或者通过指定要显示的精确详细信息来提供更高的精度,例如 $ date +"%y-%m-%d"
。您也可以直接指定时间格式:$ date +%H
以 24 小时格式显示当前小时,而 $ date +%I
将以 12 小时格式显示。
date 也有一些快捷方式,例如,$ date --date "next monday"
或 $ date --date "yesterday"
,这在脚本上下文中可能很有用。处理日期在编写 Bash 脚本时尤其有用,例如,$ echo "Today is $(date)"
将输出 Today is Tue Dec 6 2016 15:53:41 2016
。或者通过附加日期轻松创建文件备份,例如,$ cp foo.txt "foo.txt.$(date +%F)"
以添加今天的日期。
要了解更多信息或查看 date 命令的更多示例,请查看 Gnu Coreutils 文档。
15 条评论