cal
是一个在 Unix/Linux 系统中用于显示日历的简单而强大的命令。它可以帮助用户快速查看某个月或某一年的日历信息。下面我们将详细介绍 cal
命令的基本用法、选项以及一些高级功能。
默认情况下,cal
命令会显示当前月份的日历:
cal
输出示例(假设当前是2023年10月):
October 2023
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 月 年
例如,查看2023年12月的日历:
cal 12 2023
输出示例:
December 2023
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 -y 年
例如,查看2023年的全年日历:
cal -y 2023
这将输出2023年每个月的日历。
-m
:强制显示星期一作为一周的第一天。-t
:显示星期日作为一周的第一天(默认行为)。-3
:显示上一个月、当前月和下一个月的日历。-s
:仅显示给定月份的工作日(周一至周五)。-A num
:显示当前月份之后的几个月。-B num
:显示当前月份之前的几个月。cal -3
输出示例:
September 2023 October 2023 November 2023
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 1 2 3 4 1 2 3
6 7 8 9 10 11 12 5 6 7 8 9 10 11 4 5 6 7 8 9 10
13 14 15 16 17 18 19 12 13 14 15 16 17 18 11 12 13 14 15 16 17
20 21 22 23 24 25 26 19 20 21 22 23 24 25 18 19 20 21 22 23 24
27 28 29 30 26 27 28 29 30 31 25 26 27 28 29 30
你可以将 cal
命令与其他命令结合使用,以实现更复杂的功能。例如,使用 grep
查找某个日期:
cal | grep " 1$"
这将查找每个月的1号,并将其高亮显示。
虽然 cal
命令本身不支持复杂的格式化输出,但可以通过管道与其他工具(如 awk
或 sed
)结合使用来定制输出。
例如,仅显示工作日(周一至周五):
cal | awk 'NR>2 && NF {for(i=1;i<=NF;i++) if($i ~ /^[0-9]+$/) printf "%s%s", $i, (i==NF?ORS:OFS)}'
cal
命令是一个非常实用的工具,可以帮助用户快速查看日历信息。通过掌握其基本用法和常用选项,您可以更高效地管理时间和安排工作。