linux学习笔记之cal
在所有的类linux操作系统中,cal 或者ncal 命令会在命令行打印出一个有格式的日历(阳历)。
默认情况下,即不给定任何参数的情况下,cal和ncal将会输入本月的日历,并突出显示当前的日期(在Ubuntu22.04LTS下,ncal突出显示当前的日期): > cal :
六月 2022
日 一 二 三 四 五 六
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
> ncal :
六月 2022
一 6 13 20 27
二 7 14 21 28
三 1 8 15 22 29
四 2 9 16 23 30
五 3 10 17 24
六 4 11 18 25
日 5 12 19 26
可以看到ncal 命令和cal 命令都会在控制台输出有格式的日历,但是ncal 命令显示的日历是竖着的,有别于传统的日历格式。
安装?
有的时候,当你输入cal 命令时,控制台会输出command not found: cal ,这代表运行环境没有安装cal ,需要进行安装。 这里我找到一些运行环境的安装代码:
apt-get install bsdmainutils
apt-get install bsdmainutils
apk add util-linux
pacman -S util-linux
apt-get install bsdmainutils
yum install util-linux
brew install util-linux
docker run cmd.cat/cal cal
要注意的是,安装可能需要管理员权限,要加上sodu 之类的。
语法
cal 和ncal 命令的 语法为(Ubuntu 22.04 LTS):
Usage: cal [general options] [-jy] [[month] year]
cal [general options] [-j] [-m month] [year]
ncal -C [general options] [-jy] [[month] year]
ncal -C [general options] [-j] [-m month] [year]
ncal [general options] [-bhJjpwySM] [-H yyyy-mm-dd] [-s country_code] [-W number of days] [[month] year]
ncal [general options] [-Jeo] [year]
General options: [-31] [-A months] [-B months] [-d yyyy-mm]
cal [month] [year] [-m month] [-y year] [-h] [-3] [-1] [-A num] [-B num]
[-d YYYY-MM] [-j] [-N]
ncal [month] [year] [-m month] [-y year] [-h] [-3] [-1] [-A num] [-B num]
[-d YYYY-MM] [-J] [-C] [-e] [-o] [-p] [-w] [-M] [-S] [-b]
可选参数
cal 和 ncal一样的基本参数
通用参数:[-3] [-1] -h -y [year] -m [month] [-A months] [-B months] [-d yyyy-mm]
参数 | 作用 |
---|
-1 | 只显示本月的日历,这是默认的参数 | -3 | 显示上一月、本月以及下个月共三个月的日历 | -y [year] | 显示指定年份的所有月份,如果不指定哪一年,默认为本年。-y 可以省略 | -m [month] | 显示本年指定月份; [month] 可以是数字或者月份对应的英文全拼或缩写,== [month]参数不可省==;如果使用数字指定月份,那么可以在数字后面添加f(following) 或p( previous) 参数用于指定下一年或者上一年(注意,数字和参数不可有空格!)。 | -A [num] | 显示在已指定的任何月份之后发生的月份数(num 个月),即add num months | -B[num] | 显示在已指定的任何月份之前发生的月份数(num 个月),即before num months | -d YYYY-MM | 显示年份为YYYY ,月份为MM 的日期 | -h | 不突出显示今天的日期 |
下面是一些实例:
cal MM YYYY | ncal MM YYYY 可以指定某一年的某个月的日历。 cal 3 2000
cal -3 | cal -1 | ncal -1 | ncal -3
ncal -3 -A 3 | cal -3 -A 3 ncal -y 2021 -A 2 | cal -y 2022 -A 2 显示2021年所有月份和之后的两个月 cal -m 2p | ncal -m 2p ncal -3 -B 1 | cal -3 -B 1 cal -d 2000-12 | ncal -d 2000-12
其它参数
-j
Display a Julian calendar, instead of the default Gregorian calendar. 日期显示为从本年1月1日开始的计算的天数,而不是传统的从每月的第一天计算
2. -jy 和-j 一样,而显示一年的日期,日期数字是从1月1日开始计算的数字。
cal [general options] [-jy] [[month] year]
可以指定某一年的某一月,注意先是月份,后是年份;如果只给一个参数,那默认是年份;如果只想指点月份,则需要-m 参数,默认是今年。
语法:
cal [general options] [-jy] [[month] year]
cal [general options] [-j] [-m month] [year]
ncal [general options] [-jy] [[month] year]
ncal [general options] [-j] [-m month] [year]
ncal -C [general options] [-jy] [[month] year]
ncal -C [general options] [-j] [-m month] [year]
ncal的特殊参数
有些参数对于中国人来说意义不大。
ncal [general options] [-bhJjpwySM] [-H yyyy-mm-dd] [-s country_code] [-W number of days] [[month] year]
ncal [general options] [-Jeo] [year]
参数 | 说明 |
---|
-J | 显示儒略历,而不是默认的公历。所有日期都从1月1日开始编号,而不是从月初开始。如果与-o 组合,则根据儒略历显示东正教复活节的日期。 | -e | 显示西方日历的复活节日期。存在此选项是因为复活节是计算传统日历日期时的定义日期。 | -o | Display the date of orthodox Easter. | -p | Print country codes and “switching days” for switching from Julian to Gregorian calendars in various countries. | -w | 打印“每周”列下的周数。 | -C | 使ncal 表现得像cal | -M | 以周一为第一天 | -S | 以周日为第一天显示周。=默认值= | -b | 使ncal 表现得像cal ,且以周一为第一天 |
参考资料
|