Linux命令行上如何使用日历详解
作者:MjSeven 发布时间:2023-11-04 09:39:08
前言
通过 Linux 上的日历,不仅仅可以提醒你今天是星期几。诸如 date、cal、 ncal 和 calendar 等命令可以提供很多有用信息。
Linux 系统可以为你的日程安排提供更多帮助,而不仅仅是提醒你今天是星期几。日历显示有很多选项 —— 有些可能很有帮助,有些可能会让你大开眼界。
日期
首先,你可能知道可以使用 date 命令显示当前日期。
$ date
Mon Mar 26 08:01:41 EDT 2018
cal 和 ncal
你可以使用 cal 命令显示整个月份。没有参数时,cal 显示当前月份,默认情况下,通过反转前景色和背景颜色来突出显示当天。
$ cal
March 2018
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 31
如果你想以“横向”格式显示当前月份,则可以使用 ncal 命令。
$ ncal
March 2018
Su 4 11 18 25
Mo 5 12 19 26
Tu 6 13 20 27
We 7 14 21 28
Th 1 8 15 22 29
Fr 2 9 16 23 30
Sa 3 10 17 24 31
例如,如果你只想查看特定周几的日期,这个命令可能特别有用。
$ ncal | grep Th
Th 1 8 15 22 29
ncal 命令还可以以“横向”格式显示一整年,只需在命令后提供年份。
$ ncal 2018
2018
January February March April
Su 7 14 21 28 4 11 18 25 4 11 18 25 1 8 15 22 29
Mo 1 8 15 22 29 5 12 19 26 5 12 19 26 2 9 16 23 30
Tu 2 9 16 23 30 6 13 20 27 6 13 20 27 3 10 17 24
We 3 10 17 24 31 7 14 21 28 7 14 21 28 4 11 18 25
Th 4 11 18 25 1 8 15 22 1 8 15 22 29 5 12 19 26
Fr 5 12 19 26 2 9 16 23 2 9 16 23 30 6 13 20 27
Sa 6 13 20 27 3 10 17 24 3 10 17 24 31 7 14 21 28
...
你也可以使用 cal 命令显示一整年。请记住,你需要输入年份的四位数字。如果你输入 cal 18,你将获得公元 18 年的历年,而不是 2018 年。
$ cal 2018
2018
January February March
Su Mo Tu We Th Fr Sa Su Mo Tu We Th Fr Sa Su Mo Tu We Th Fr Sa
1 2 3 4 5 6 1 2 3 1 2 3
7 8 9 10 11 12 13 4 5 6 7 8 9 10 4 5 6 7 8 9 10
14 15 16 17 18 19 20 11 12 13 14 15 16 17 11 12 13 14 15 16 17
21 22 23 24 25 26 27 18 19 20 21 22 23 24 18 19 20 21 22 23 24
28 29 30 31 25 26 27 28 25 26 27 28 29 30 31
April May June
Su Mo Tu We Th Fr Sa Su Mo Tu We Th Fr Sa Su Mo Tu We Th Fr Sa
1 2 3 4 5 6 7 1 2 3 4 5 1 2
8 9 10 11 12 13 14 6 7 8 9 10 11 12 3 4 5 6 7 8 9
15 16 17 18 19 20 21 13 14 15 16 17 18 19 10 11 12 13 14 15 16
22 23 24 25 26 27 28 20 21 22 23 24 25 26 17 18 19 20 21 22 23
29 30 27 28 29 30 31 24 25 26 27 28 29 30
July August September
Su Mo Tu We Th Fr Sa Su Mo Tu We Th Fr Sa Su Mo Tu We Th Fr Sa
1 2 3 4 5 6 7 1 2 3 4 1
8 9 10 11 12 13 14 5 6 7 8 9 10 11 2 3 4 5 6 7 8
15 16 17 18 19 20 21 12 13 14 15 16 17 18 9 10 11 12 13 14 15
22 23 24 25 26 27 28 19 20 21 22 23 24 25 16 17 18 19 20 21 22
29 30 31 26 27 28 29 30 31 23 24 25 26 27 28 29
30
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 2 3 4 5 6 1 2 3 1
7 8 9 10 11 12 13 4 5 6 7 8 9 10 2 3 4 5 6 7 8
14 15 16 17 18 19 20 11 12 13 14 15 16 17 9 10 11 12 13 14 15
21 22 23 24 25 26 27 18 19 20 21 22 23 24 16 17 18 19 20 21 22
28 29 30 31 25 26 27 28 29 30 23 24 25 26 27 28 29
30 31
要指定年份和月份,使用 -d 选项,如下所示:
$ cal -d 1949-03
March 1949
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 31
另一个可能有用的日历选项是 cal 命令的 -j 选项。让我们来看看它显示的是什么。
$ cal -j
March 2018
Su Mo Tu We Th Fr Sa
60 61 62
63 64 65 66 67 68 69
70 71 72 73 74 75 76
77 78 79 80 81 82 83
84 85 86 87 88 89 90
你可能会问:“什么鬼???” OK, -j 选项显示 Julian 日期 -- 一年中从 1 到 365 年的数字日期。所以,1 是 1 月 1 日,32 是 2 月 1 日。命令 cal -j 2018 将显示一整年的数字,像这样:
$ cal -j 2018 | tail -9
November December
Su Mo Tu We Th Fr Sa Su Mo Tu We Th Fr Sa
305 306 307 335
308 309 310 311 312 313 314 336 337 338 339 340 341 342
315 316 317 318 319 320 321 343 344 345 346 347 348 349
322 323 324 325 326 327 328 350 351 352 353 354 355 356
329 330 331 332 333 334 357 358 359 360 361 362 363
364 365
这种显示可能有助于提醒你,自从你做了新年计划之后,你已经有多少天没有采取行动了。
运行类似的命令,对于 2020 年,你会注意到这是一个闰年:
$ cal -j 2020 | tail -9
November December
Su Mo Tu We Th Fr Sa Su Mo Tu We Th Fr Sa
306 307 308 309 310 311 312 336 337 338 339 340
313 314 315 316 317 318 319 341 342 343 344 345 346 347
320 321 322 323 324 325 326 348 349 350 351 352 353 354
327 328 329 330 331 332 333 355 356 357 358 359 360 361
334 335 362 363 364 365 366
calendar
另一个有趣但潜在的令人沮丧的命令可以告诉你关于假期的事情,这个命令有很多选项,但我们这里介绍下你想看到即将到来的假期和值得注意的日历列表。日历的 -l 选项允许你选择今天想要查看的天数,因此 0 表示“仅限今天”。
$ calendar -l 0
Mar 26 Benjamin Thompson born, 1753, Count Rumford; physicist
Mar 26 David Packard died, 1996; age of 83
Mar 26 Popeye statue unveiled, Crystal City TX Spinach Festival, 1937
Mar 26 Independence Day in Bangladesh
Mar 26 Prince Jonah Kuhio Kalanianaole Day in Hawaii
Mar 26* Seward's Day in Alaska (last Monday)
Mar 26 Emerson, Lake, and Palmer record "Pictures at an Exhibition" live, 1971
Mar 26 Ludwig van Beethoven dies in Vienna, Austria, 1827
Mar 26 Bonne fête aux Lara !
Mar 26 Aujourd'hui, c'est la St(e) Ludger.
Mar 26 N'oubliez pas les Larissa !
Mar 26 Ludwig van Beethoven in Wien gestorben, 1827
Mar 26 Emánuel
对于我们大多数人来说,这庆祝活动有点多。如果你看到类似这样的内容,可以将其归咎于你的 calendar.all 文件,该文件告诉系统你希望包含哪些国际日历。当然,你可以通过删除此文件中包含其他文件的一些行来削减此问题。文件看起来像这样:
#include <calendar.world>
#include <calendar.argentina>
#include <calendar.australia>
#include <calendar.belgium>
#include <calendar.birthday>
#include <calendar.christian>
#include <calendar.computer>
假设我们只通过移除除上面显示的第一个 #include 行之外的所有行,将我们的显示切换到世界日历。 我们会看到这个:
$ calendar -l 0
Mar 26 Benjamin Thompson born, 1753, Count Rumford; physicist
Mar 26 David Packard died, 1996; age of 83
Mar 26 Popeye statue unveiled, Crystal City TX Spinach Festival, 1937
Mar 26 Independence Day in Bangladesh
Mar 26 Prince Jonah Kuhio Kalanianaole Day in Hawaii
Mar 26* Seward's Day in Alaska (last Monday)
Mar 26 Emerson, Lake, and Palmer record "Pictures at an Exhibition" live, 1971
Mar 26 Ludwig van Beethoven dies in Vienna, Austria, 1827
显然,世界日历的特殊日子非常多。但是,像这样的展示可以让你不要忘记所有重要的“大力水手雕像”揭幕日以及在庆祝“世界菠菜之都”中它所扮演的角色。
更有用的日历选择可能是将与工作相关的日历放入特殊文件中,并在 calendar.all 文件中使用该日历来确定在运行命令时将看到哪些事件。
$ cat /usr/share/calendar/calendar.all
/*
* International and national calendar files
*
* This is the calendar master file. In the standard setup, it is
* included by /etc/calendar/default, so you can make any system-wide
* changes there and they will be kept when you upgrade. If you want
* to edit this file, copy it into /etc/calendar/calendar.all and
* edit it there.
*
*/
#ifndef _calendar_all_
#define _calendar_all_
#include <calendar.usholiday>
#include <calendar.work> <==
#endif /* !_calendar_all_ */
日历文件的格式非常简单 - mm/dd 格式日期,空格和事件描述。
$ cat calendar.work
03/26 Describe how the cal and calendar commands work
03/27 Throw a party!
注意事项和怀旧
注意,有关日历的命令可能不适用于所有 Linux 发行版,你可能必须记住自己的“大力水手”雕像。
如果你想知道,你可以显示一个日历,远至 9999 —— 即使是预言性的 2525。
来源:https://linux.cn/article-9576-1.html


猜你喜欢
- 实验环境:AS4最小化安装实验目标:架设VSFTP服务器这次我们来学习Linux系统中的 vsftp服务器的配置。下面我们开始了!首先我们安
- 12月21日消息,据国外媒体报道,微软将推迟发布Visual Studio 2010和.NETFramework4等软件以便有更多的时间解决
- 程序员是一个脆弱、特殊的群体,以各种方式生存在有01的世界里。程序员的特点:狂躁,但是有修养随和,但是疯癫肯向任何人学,但是不服任何人守约,
- 容器数据卷介绍什么是数据卷将运用与运行的环境打包形成容器运行,运行可以伴随着容器,但是我们对数据的要求是持久化的。容器之间希望有可能共享数据
- 本文是谷歌关键字广告(Google AdWords)专家Amanda Kelly在“事半功倍做营销”
- 六、邮箱管理能力考察邮件服务器的邮箱管理能力时,应该特别注意产品在为用户建立邮箱时的存储方式。目前主要有三种类型:第一种是集中存放。第二种是
- 常规篇:首先,用ps查看进程,方法如下:$ ps -ef……smx 1822 1 0 11:38 ? 00:00:49 gnome-term
- 很多站长都遇到过原先IIS6.0的配置被改变。这里我们详细介绍了在IIS6.0下怎么恢复配置IIS6.0有个导出配置的功能,但你却找不到界面
- 想开网店,如何才能成功?货源从哪里来?产品上架后如何推广网店?如何选择好的快递公司和值得信耐的支付平台,相信下文会对你有所帮助,成功做好网店
- 问:我使用的在线检查软件警告说,发现DDoS攻击,请问这到底是什么意思?机器是单位的局域网,和这个有关系吗?我应该如何去判断是否遭到流量攻击
- 从小小的文字链到全屏广告,从在网页下层弹出广告到直接在最上层弹出大幅广告,广告尺寸和方式发生了巨大的变化,不禁让我们想到未来,广告将大到什么
- 百度主任架构师廖若雪廖若雪,这个颇有些中性化的名字,却是一个在IT和互联网圈内都鼎鼎大名的“纯爷们儿&rdquo
- 国外有很多的主机商都只是提供Linux的服务器,我看了有不少站长其实也是需要Windows的服务器的,比如你的网站是ASP.NET或者是AS
- Fedora Core 3 在安装时默认把SELinux的选项激活了。SELinux比普通的Linux内核提供了更高的安全性,理论上说,在系
- 介绍rsync命令是一个远程数据同步工具,可通过LAN/WAN快速同步多台主机间的文件。rsync使用所谓的“rsync算法”来使本地和远程
- 1、用户至上无论什么时候,一定要牢记在心:用户至上。没有用户光顾,网站意义何在?更不要谈什么访问量了。2、浏览模式必需考虑网友的浏览器软件,
- Exchange Server 2007 日志规则新日志向导日志报告中包括的内容您是否曾经不得不记录您与某位特定用户之间往来的电子邮件,而结
- 现在国内的爱国者黑客,新世纪网安,黑客动画吧。已经有着不可动摇的地位了。我们如何在这些众多的黑客门户网站中找到自己的立足之地了。首先我们要考
- 要想从事网络游戏运营服务,就必须经过“互联网出版许可证”这第一道准入门槛。这是新闻出版总署、国家版权
- 在与国内互联网用户研究同行交流时,常常会被问到“腾讯很早就拥有眼动仪了,那是不是经常用到它?”、“眼动研究的结果有什么特别的作用?”等之类的