試験運用中なLinux備忘録・旧記事

はてなダイアリーで公開していた2007年5月-2015年3月の記事を保存しています。

カレンダーを表示するコマンドについて

カレンダーは、コマンドで簡単に表示することができる。
(2015/1/2)以前は前半と後半に分けて公開していたが、このページに統合した。

  1. cal
  2. ncal
  3. GNU gcal

cal

calは横方向に日付が並ぶカレンダーを表示する。実行時の日付は反転表示され(-hオプションで反転無効)、曜日名はロケールに応じた名前となる。
引数を付けないと実行時の月のみを表示する。

$ cal
      9月 2011
日 月 火 水 木 金 土
             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

-3オプションを付けると前後の月を一緒に表示する。

$ cal -3
      8月 2011               9月 2011               10月 2011
日 月 火 水 木 金 土  日 月 火 水 木 金 土  日 月 火 水 木 金 土
    1  2  3  4  5  6               1  2  3                     1
 7  8  9 10 11 12 13   4  5  6  7  8  9 10   2  3  4  5  6  7  8
14 15 16 17 18 19 20  11 12 13 14 15 16 17   9 10 11 12 13 14 15
21 22 23 24 25 26 27  18 19 20 21 22 23 24  16 17 18 19 20 21 22
28 29 30 31           25 26 27 28 29 30     23 24 25 26 27 28 29
                                            30 31

引数を1つ付けると、これを西暦年として解釈してその年のカレンダーを表示する(実行時の年を表示する場合は引数なしで-yオプションのみを付ける方法もある)。

$ cal 2012
                            2012
         1月                    2月                    3月
日 月 火 水 木 金 土  日 月 火 水 木 金 土  日 月 火 水 木 金 土
 1  2  3  4  5  6  7            1  2  3  4               1  2  3
 8  9 10 11 12 13 14   5  6  7  8  9 10 11   4  5  6  7  8  9 10
15 16 17 18 19 20 21  12 13 14 15 16 17 18  11 12 13 14 15 16 17
22 23 24 25 26 27 28  19 20 21 22 23 24 25  18 19 20 21 22 23 24
29 30 31              26 27 28 29           25 26 27 28 29 30 31

(中略)

        10月                   11月                   12月
日 月 火 水 木 金 土  日 月 火 水 木 金 土  日 月 火 水 木 金 土
    1  2  3  4  5  6               1  2  3                     1
 7  8  9 10 11 12 13   4  5  6  7  8  9 10   2  3  4  5  6  7  8
14 15 16 17 18 19 20  11 12 13 14 15 16 17   9 10 11 12 13 14 15
21 22 23 24 25 26 27  18 19 20 21 22 23 24  16 17 18 19 20 21 22
28 29 30 31           25 26 27 28 29 30     23 24 25 26 27 28 29
                                            30 31

引数を2つ付けると、順に

  1. 西暦年

として解釈して特定の年の特定の月のカレンダーのみを表示する。

$ cal 10 2011
      10月 2011
日 月 火 水 木 金 土
                   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

順番が逆(かつ1つ目の引数が13以上)だとエラーとなる。

ncal

ncalFreeBSDのツールでcalの高機能版。引数やオプションはcalと同様に指定することができる。日付は縦方向に並ぶ。

$ ncal
    10月 2011
日      2  9 16 23 30
月      3 10 17 24 31
火      4 11 18 25
水      5 12 19 26
木      6 13 20 27
金      7 14 21 28
土   1  8 15 22 29

-Mオプション(calでは使えない)を付けると月曜から表示される。

$ ncal -3M
    9月 2011           10月 2011          11月 2011
月      5 12 19 26        3 10 17 24 31     7 14 21 28
火      6 13 20 27        4 11 18 25     1  8 15 22 29
水      7 14 21 28        5 12 19 26     2  9 16 23 30
木   1  8 15 22 29        6 13 20 27     3 10 17 24
金   2  9 16 23 30        7 14 21 28     4 11 18 25
土   3 10 17 24        1  8 15 22 29     5 12 19 26
日   4 11 18 25        2  9 16 23 30     6 13 20 27

複数の月を表示する際には、曜日名は上のように一番左にのみ表示される。

GNU gcal

GNU gcal(gcalコマンド)は高機能なカレンダーで、追加でパッケージを選択してインストールしないと利用できない場合がある。表示はncalと同様に縦方向に並べた形となる。実行時の日付はcalncalと同様に反転表示される。-q JPオプションを付けると日本の多くの祝日が太字で強調表示されるが、一部の祝日はズレている場合がある。

$ gcal

October 2011

Sunday          2  9 16 23 30
Monday          3 10 17 24 31
Tuesday         4 11 18 25
Wednesday       5 12 19 26
Thursday        6 13 20 27
Friday          7 14 21 28
Saturday     1  8 15 22 29

引数に1から12の数字を1つ指定すると(実行した年の)指定した月のみのカレンダーが表示される。

$ gcal 11

November 2011

Sunday          6 13 20 27
Monday          7 14 21 28
Tuesday      1  8 15 22 29
Wednesday    2  9 16 23 30
Thursday     3 10 17 24
Friday       4 11 18 25
Saturday     5 12 19 26

13以上の数字を入れると、それは西暦年として解釈され、その年の全ての月を表示する。

$ gcal 2012

                                    2012


     January           February          March             April

Su    1  8 15 22 29        5 12 19 26        4 11 18 25     1  8 15 22 29
Mo    2  9 16 23 30        6 13 20 27        5 12 19 26     2  9 16 23 30
Tu    3 10 17 24 31        7 14 21 28        6 13 20 27     3 10 17 24
We    4 11 18 25        1  8 15 22 29        7 14 21 28     4 11 18 25
Th    5 12 19 26        2  9 16 23        1  8 15 22 29     5 12 19 26
Fr    6 13 20 27        3 10 17 24        2  9 16 23 30     6 13 20 27
Sa    7 14 21 28        4 11 18 25        3 10 17 24 31     7 14 21 28

(中略)

     September         October           November          December

Su       2  9 16 23 30     7 14 21 28        4 11 18 25        2  9 16 23 30
Mo       3 10 17 24     1  8 15 22 29        5 12 19 26        3 10 17 24 31
Tu       4 11 18 25     2  9 16 23 30        6 13 20 27        4 11 18 25
We       5 12 19 26     3 10 17 24 31        7 14 21 28        5 12 19 26
Th       6 13 20 27     4 11 18 25        1  8 15 22 29        6 13 20 27
Fr       7 14 21 28     5 12 19 26        2  9 16 23 30        7 14 21 28
Sa    1  8 15 22 29     6 13 20 27        3 10 17 24        1  8 15 22 29

2つの引数を付けた場合は、calncalと同様に月と年の順での指定となる。

$ gcal 1 2012

January 2012

Sunday       1  8 15 22 29
Monday       2  9 16 23 30
Tuesday      3 10 17 24 31
Wednesday    4 11 18 25
Thursday     5 12 19 26
Friday       6 13 20 27
Saturday     7 14 21 28

使用したバージョン:

  • bsdmainutils 8.2.2
  • gcal 3.6.0