显示日历信息的命令 cal 和 ncal
Linux 里内置两个用来显示和校准日历的命令 cal 和 ncal。一旦你习惯使用它们,你会发现使用命令很多时候都比你运用鼠标在 GUI 的日历里查看要来的更迅速和方便。命令行下,有许多参数,这些参数能完成您所需要的所有关于日历的需求,目前来说,我还没有发现我需要显示的一种日历的需求是它没有的,哈。
下面,我就来和大家一起学习学习这些命令,这些命令我都在 Ubuntu Linux 日常使用:
问1、如何显示当前月份的信息
答:直接使用 cal 命令就可以,不需要添加任何参数
$ cal July 2013 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 July 2013 Su 7 14 21 28 Mo 1 8 15 22 29 Tu 2 9 16 23 30 We 3 10 **17** 24 31 Th 4 11 18 25 Fr 5 12 19 26 Sa 6 13 20 27
您可以看到整个当前月份的日历,当天日期是高亮显示的,您可以使用 -h 参数来关闭高亮。
问2、如何竖向排列日期
答:使用 ncal 命令同时添加 -J 参数
$ ncal -J July 2013 Su 1 8 15 22 29 Mo 2 9 16 23 30 Tu 3 10 17 24 31 We **4** 11 18 25 Th 5 12 19 26 Fr 6 13 20 27 Sa 7 14 21 28
问3、想查询复活节日期
答:使用 ncal 命令添加 -e 参数
$ ncal -e 31 March 2013
问4、怎么显示 Julian 日历
答:使用 cal 命令添加 -j 参数
$ cal -j July 2013 Su Mo Tu We Th Fr Sa 182 183 184 185 186 187 188 189 190 191 192 193 194 195 196 197 **198** 199 200 201 202 203 204 205 206 207 208 209 210 211 212
问5、如何显示指定月份日历
答:使用 cal 命令添加 -m 参数和月份
$ cal -m1 January 2013 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
默认情况下,您添加的 -m参数和月份为当年的月份,如果您希望看到指定的某个年的月份,您可以在后面添加四位数字的年份。
$ cal -m1 1999 January 1999 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
问6、如何同时显示前一个月本月和下一个月三个月的日历
答:使用 cal 命令添加 -3 参数
$ cal -3 June 2013 July 2013 August 2013 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 6 1 2 3 2 3 4 5 6 7 8 7 8 9 10 11 12 13 4 5 6 7 8 9 10 9 10 11 12 13 14 15 14 15 16 **17** 18 19 20 11 12 13 14 15 16 17 16 17 18 19 20 21 22 21 22 23 24 25 26 27 18 19 20 21 22 23 24 23 24 25 26 27 28 29 28 29 30 31 25 26 27 28 29 30 31 30
同样道理,您可以查看任意三个月的日历:
$ cal -3 -m3 1984 February 1984 March 1984 April 1984 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 1 2 3 1 2 3 4 5 6 7 5 6 7 8 9 10 11 4 5 6 7 8 9 10 8 9 10 11 12 13 14 12 13 14 15 16 17 18 11 12 13 14 15 16 17 15 16 17 18 19 20 21 19 20 21 22 23 24 25 18 19 20 21 22 23 24 22 23 24 25 26 27 28 26 27 28 29 25 26 27 28 29 30 31 29 30
问7、如何显示orthodox Easter 的信息
答:使用 ncal 命令添加 -o 参数
$ ncal -o 5 May 2013
问8、如何显示国家代码
答:使用 ncal 命令添加 -p 参数
$ ncal -p AL Albania 1912-11-30 IT Italy 1582-10-04 AT Austria 1583-10-05 JP Japan 1918-12-18 AU Australia 1752-09-02 LI Lithuania 1918-02-01 BE Belgium 1582-12-14 LN Latin 9999-05-31 BG Bulgaria 1916-03-18 LU Luxembourg 1582-12-14 CA Canada 1752-09-02 LV Latvia 1918-02-01 CH Switzerland 1655-02-28 NL Netherlands 1582-12-14 CN China 1911-12-18 NO Norway 1700-02-18 CZ Czech Republic 1584-01-06 PL Poland 1582-10-04 DE Germany 1700-02-18 PT Portugal 1582-10-04 DK Denmark 1700-02-18 RO Romania 1919-03-31 ES Spain 1582-10-04 RU Russia 1918-01-31 FI Finland 1753-02-17 SI Slovenia 1919-03-04 FR France 1582-12-09 SW Sweden 1753-02-17 GB United Kingdom 1752-09-02 TR Turkey 1926-12-18 GR Greece 1924-03-09 *US United States 1752-09-02 HU Hungary 1587-10-21 YU Yugoslavia 1919-03-04 IS Iceland 1700-11-16
问9、如何按自然月显示周信息
答:使用 ncal 命令添加 -w 参数
$ ncal -w July 2013 Su 7 14 21 28 Mo 1 8 15 22 29 Tu 2 9 16 23 30 We 3 10 17 24 31 Th 4 11 18 25 Fr 5 12 19 26 Sa 6 13 20 27 26 27 28 29 30
最下面的一行是下个月的信息。
问10、怎么一下查看全年的日历
答:使用 ncal 命令添加 -y 参数和 四位数的年份
$ ncal -y 2010 2010 January February March April Su 3 10 17 24 31 7 14 21 28 7 14 21 28 4 11 18 25 Mo 4 11 18 25 1 8 15 22 1 8 15 22 29 5 12 19 26 Tu 5 12 19 26 2 9 16 23 2 9 16 23 30 6 13 20 27 We 6 13 20 27 3 10 17 24 3 10 17 24 31 7 14 21 28 Th 7 14 21 28 4 11 18 25 4 11 18 25 1 8 15 22 29 Fr 1 8 15 22 29 5 12 19 26 5 12 19 26 2 9 16 23 30 Sa 2 9 16 23 30 6 13 20 27 6 13 20 27 3 10 17 24 May June July August Su 2 9 16 23 30 6 13 20 27 4 11 18 25 1 8 15 22 29 Mo 3 10 17 24 31 7 14 21 28 5 12 19 26 2 9 16 23 30 Tu 4 11 18 25 1 8 15 22 29 6 13 20 27 3 10 17 24 31 We 5 12 19 26 2 9 16 23 30 7 14 21 28 4 11 18 25 Th 6 13 20 27 3 10 17 24 1 8 15 22 29 5 12 19 26 Fr 7 14 21 28 4 11 18 25 2 9 16 23 30 6 13 20 27 Sa 1 8 15 22 29 5 12 19 26 3 10 17 24 31 7 14 21 28 September October November December Su 5 12 19 26 3 10 17 24 31 7 14 21 28 5 12 19 26 Mo 6 13 20 27 4 11 18 25 1 8 15 22 29 6 13 20 27 Tu 7 14 21 28 5 12 19 26 2 9 16 23 30 7 14 21 28 We 1 8 15 22 29 6 13 20 27 3 10 17 24 1 8 15 22 29 Th 2 9 16 23 30 7 14 21 28 4 11 18 25 2 9 16 23 30 Fr 3 10 17 24 1 8 15 22 29 5 12 19 26 3 10 17 24 31 Sa 4 11 18 25 2 9 16 23 30 6 13 20 27 4 11 18 25
问11、如何显示某个月和某个月前几个月和后几个月的日历
答:使用 cal 命令添加 -m -B -A 参数和月个数
$ cal -m4 -B2 -A2 February 2013 March 2013 April 2013 Su Mo Tu We Th Fr Sa Su Mo Tu We Th Fr Sa Su Mo Tu We Th Fr Sa 1 2 1 2 1 2 3 4 5 6 3 4 5 6 7 8 9 3 4 5 6 7 8 9 7 8 9 10 11 12 13 10 11 12 13 14 15 16 10 11 12 13 14 15 16 14 15 16 17 18 19 20 17 18 19 20 21 22 23 17 18 19 20 21 22 23 21 22 23 24 25 26 27 24 25 26 27 28 24 25 26 27 28 29 30 28 29 30 31 May 2013 June 2013 Su Mo Tu We Th Fr Sa Su Mo Tu We Th Fr Sa 1 2 3 4 1 5 6 7 8 9 10 11 2 3 4 5 6 7 8 12 13 14 15 16 17 18 9 10 11 12 13 14 15 19 20 21 22 23 24 25 16 17 18 19 20 21 22 26 27 28 29 30 31 23 24 25 26 27 28 29 30
显示结果上,您可以看出,我们想显示 4 月份和 4 月份前两个月和后两个月的日历。如果您想显示指定年份的日历同时在显示年份前后的几个月,那么直需要在添加 -y 参数和四位数的年份即可:
$ cal -y 2012 -B2 -A2 November 2011 December 2011 January 2012 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 1 2 3 4 5 6 7 6 7 8 9 10 11 12 4 5 6 7 8 9 10 8 9 10 11 12 13 14 13 14 15 16 17 18 19 11 12 13 14 15 16 17 15 16 17 18 19 20 21 20 21 22 23 24 25 26 18 19 20 21 22 23 24 22 23 24 25 26 27 28 27 28 29 30 25 26 27 28 29 30 31 29 30 31 February 2012 March 2012 April 2012 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 1 2 3 1 2 3 4 5 6 7 5 6 7 8 9 10 11 4 5 6 7 8 9 10 8 9 10 11 12 13 14 12 13 14 15 16 17 18 11 12 13 14 15 16 17 15 16 17 18 19 20 21 19 20 21 22 23 24 25 18 19 20 21 22 23 24 22 23 24 25 26 27 28 26 27 28 29 25 26 27 28 29 30 31 29 30 May 2012 June 2012 July 2012 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 1 2 3 4 5 6 7 6 7 8 9 10 11 12 3 4 5 6 7 8 9 8 9 10 11 12 13 14 13 14 15 16 17 18 19 10 11 12 13 14 15 16 15 16 17 18 19 20 21 20 21 22 23 24 25 26 17 18 19 20 21 22 23 22 23 24 25 26 27 28 27 28 29 30 31 24 25 26 27 28 29 30 29 30 31 August 2012 September 2012 October 2012 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 1 1 2 3 4 5 6 5 6 7 8 9 10 11 2 3 4 5 6 7 8 7 8 9 10 11 12 13 12 13 14 15 16 17 18 9 10 11 12 13 14 15 14 15 16 17 18 19 20 19 20 21 22 23 24 25 16 17 18 19 20 21 22 21 22 23 24 25 26 27 26 27 28 29 30 31 23 24 25 26 27 28 29 28 29 30 31 30 November 2012 December 2012 January 2013 Su Mo Tu We Th Fr Sa Su Mo Tu We Th Fr Sa Su Mo Tu We Th Fr Sa 1 2 3 1 1 2 3 4 5 4 5 6 7 8 9 10 2 3 4 5 6 7 8 6 7 8 9 10 11 12 11 12 13 14 15 16 17 9 10 11 12 13 14 15 13 14 15 16 17 18 19 18 19 20 21 22 23 24 16 17 18 19 20 21 22 20 21 22 23 24 25 26 25 26 27 28 29 30 23 24 25 26 27 28 29 27 28 29 30 31 30 31 February 2013 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
从结果上我们看到,除了 2012 年整年外,我们还能看到 2011 年最后俩月和 2013 年前俩月的日历。
问12、如何让 ncal 命令显示成 cal 命令的结果
答:可以使用 -C 参数来完成这一点
$ ncal July 2013 Su 7 14 21 28 Mo 1 8 15 22 29 Tu 2 9 16 23 30 We 3 10 17 24 31 Th 4 11 18 25 Fr 5 12 19 26 Sa 6 13 20 27 $ cal July 2013 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 -C July 2013 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
同样,你可以使用 -N 参数来让 cal 命令看起来和 ncal 一样:
$ cal July 2013 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 July 2013 Su 7 14 21 28 Mo 1 8 15 22 29 Tu 2 9 16 23 30 We 3 10 17 24 31 Th 4 11 18 25 Fr 5 12 19 26 Sa 6 13 20 27 $ cal -N July 2013 Su 7 14 21 28 Mo 1 8 15 22 29 Tu 2 9 16 23 30 We 3 10 17 24 31 Th 4 11 18 25 Fr 5 12 19 26 Sa 6 13 20 27
问13、如何让日历显示成以周一为每周第一天的样子
答:使用 ncal 命令添加 -M 参数即可
$ ncal -M July 2013 Mo 1 8 15 22 29 Tu 2 9 16 23 30 We 3 10 **17** 24 31 Th 4 11 18 25 Fr 5 12 19 26 Sa 6 13 20 27 Su 7 14 21 28
还有一个 -S 参数,可以按周日为第一天来显示
问14、如何切换 ncal 命令为以前的显示方式
答:使用 ncal 命令添加 -b 参数
$ ncal July 2013 Su 7 14 21 28 Mo 1 8 15 22 29 Tu 2 9 16 23 30 We 3 10 **17** 24 31 Th 4 11 18 25 Fr 5 12 19 26 Sa 6 13 20 27 $ ncal -b July 2013 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 和 ncal 命令的一些其他相关信息
虽然我们可以查看这两个的命令的 man page 来得到更多的信息,不过在这里,我还有一些其他信息要告诉大家。需要指定年份的时候,我们需要四位数的年份。不是所有的参数都可以同时使用的,比如 -y, -3, -1 他们之间是冲突的,如果同时使用,后面的参数会覆盖掉前面的参数。
已同步至 linux的微博