顯示日曆信息的命令 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的微博
本文轉載來自 Linux 中國: https://github.com/Linux-CN/archive