Linux cal 命令

Linux 命令大全 Linux 命令大全


什么是 cal 命令

cal 是 Linux 系统中一个简单但实用的命令行工具,用于在终端显示日历。它的名称来源于 "calendar"(日历)的缩写。

基本功能

  • 显示当前月份的日历
  • 显示指定月份的日历
  • 显示整年日历
  • 支持多种显示格式和选项

基本语法

cal [选项] [[月份] 年份]

参数说明

  • 不添加任何参数:显示当前月份的日历
  • 只指定年份:显示该年所有月份的日历
  • 同时指定月份和年份:显示该月日历

常用选项详解

1. 显示当前月日历(默认)

实例

cal

示例输出:

      十月 2023         
日 一 二 三 四 五 六  
 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              

2. 显示指定月份日历

实例

cal 12 2023

显示 2023 年 12 月的日历

3. 显示整年日历

实例

cal 2023

显示 2023 年所有月份的日历

4. 显示上/下月日历

实例

cal -3

显示当前月及前后各一个月的日历(共三个月)

5. 显示 Julian 日历(1-366)

实例

cal -j

显示 Julian 日期格式的日历,每年从第 1 天计数到第 365/366 天

6. 显示周一作为每周的第一天

实例

cal -m

默认周日作为每周的第一天,使用 -m 选项改为周一


高级用法

1. 组合使用选项

实例

cal -j -m 12 2023

显示 2023 年 12 月的 Julian 日历,并以周一作为每周的第一天

2. 显示特定年份的日历

实例

cal 1752

显示 1752 年的日历(历史上从 Julian 历法切换到 Gregorian 历法的年份)

3. 显示历史日历

实例

cal 9 1752

显示 1752 年 9 月的日历(注意这个月少了 11 天)


实际应用示例

示例 1:快速查看下个月

实例

cal $(date +"%m %Y" -d "next month")

示例 2:查看当前季度

实例

month=$(date +%m)
cal -3 $(( (month-1)/3*3+1 )) $(date +%Y)

示例 3:创建日历文件

实例

cal 2023 > 2023_calendar.txt

将 2023 年日历保存到文件


常见问题解答

Q1: cal 命令显示不准确?

A: 确保输入的年份在 1-9999 范围内,月份在 1-12 范围内

Q2: 如何显示其他语言的日历?

A: 可以设置 LANG 环境变量,例如:

实例

LANG=zh_CN.UTF-8 cal

Q3: cal 和 ncal 有什么区别?

A: ncal 是 cal 的变体,提供不同的布局选项,可以通过 man ncal 查看详情


总结表格

选项 说明 示例
显示当前月日历 cal
-j Julian 日历格式 cal -j
-m 周一作为每周第一天 cal -m
-3 显示前/当前/后三个月 cal -3
-y 显示当年所有月份 cal -y
月份 年份 显示指定月日历 cal 12 2023
年份 显示指定年日历 cal 2023

Linux 命令大全 Linux 命令大全