[Linux] calコマンドの使い方 – カレンダーを表示する

calコマンドは、LinuxやUnix系システムでカレンダーを表示するためのコマンドです。

デフォルトでは、現在の月のカレンダーを表示します。

特定の年や月を指定して表示することも可能です。

例えば、cal 2023と入力すると2023年のカレンダー全体が表示され、cal 10 2023と入力すると2023年10月のカレンダーが表示されます。

オプションとして、-3で前後1か月を含む3か月分のカレンダーを表示することもできます。

この記事でわかること
  • calコマンドの基本的な使い方
  • 各種オプションの活用法
  • 応用例による実践的な利用法
  • calコマンドと関連コマンドの違い
  • カレンダー表示のカスタマイズ方法

目次から探す

calコマンドとは

calコマンドは、LinuxやUnix系のオペレーティングシステムで使用されるカレンダー表示ツールです。

このコマンドを使うことで、特定の月や年のカレンダーを簡単に表示することができます。

デフォルトでは、現在の月のカレンダーが表示され、オプションを指定することで、過去や未来の月、さらには1年分のカレンダーを表示することも可能です。

calコマンドは、シンプルで直感的なインターフェースを持ち、ターミナルから手軽に利用できるため、日常的なスケジュール管理やイベントの確認に役立ちます。

また、カレンダーの表示形式をカスタマイズするための多くのオプションが用意されており、ユーザーのニーズに応じた柔軟な使い方ができます。

calコマンドの基本的な使い方

現在の月のカレンダーを表示する

calコマンドを単独で実行すると、現在の月のカレンダーが表示されます。

特別なオプションは必要ありません。

cal
    October 2024     
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コマンドに年を引数として指定します。

cal 2024
                              2024                              
      January               February               March        
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  6               1  2  3                   1  2
 7  8  9 10 11 12 13    4  5  6  7  8  9 10    3  4  5  6  7  8  9
14 15 16 17 18 19 20   11 12 13 14 15 16 17   10 11 12 13 14 15 16
21 22 23 24 25 26 27   18 19 20 21 22 23 24   17 18 19 20 21 22 23
28 29 30 31            25 26 27 28 29         24 25 26 27 28 29 30
                                              31                 

      April                  May                   June          
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  6            1  2  3  4                   1  
 7  8  9 10 11 12 13    5  6  7  8  9 10 11    2  3  4  5  6  7  8
14 15 16 17 18 19 20   12 13 14 15 16 17 18    9 10 11 12 13 14 15
21 22 23 24 25 26 27   19 20 21 22 23 24 25   16 17 18 19 20 21 22
28 29 30               26 27 28 29 30 31      23 24 25 26 27 28 29
                                              30                 

      July                 August              September         
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  6               1  2  3    1  2  3  4  5  6  7
 7  8  9 10 11 12 13    4  5  6  7  8  9 10    8  9 10 11 12 13 14
14 15 16 17 18 19 20   11 12 13 14 15 16 17   15 16 17 18 19 20 21
21 22 23 24 25 26 27   18 19 20 21 22 23 24   22 23 24 25 26 27 28
28 29 30 31            25 26 27 28 29 30 31   29 30               

    October               November              December         
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   

特定の月のカレンダーを表示する

特定の月のカレンダーを表示するには、calコマンドに年と月を指定します。

月は1から12の数字で表します。

cal 2024 10
    October 2024     
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  

前後の月を含めたカレンダーを表示する

前後の月を含めたカレンダーを表示するには、-3オプションを使用します。

このオプションを指定すると、現在の月の前後1か月を含むカレンダーが表示されます。

cal -3
   September 2024        October 2024         November 2024     
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  6  7       1  2  3  4  5                    1  2
 8  9 10 11 12 13 14   6  7  8  9 10 11 12   3  4  5  6  7  8  9
15 16 17 18 19 20 21  13 14 15 16 17 18 19  10 11 12 13 14 15 16
22 23 24 25 26 27 28  20 21 22 23 24 25 26  17 18 19 20 21 22 23
29 30                 27 28 29 30 31        24 25 26 27 28 29 30

calコマンドのオプション

-3オプション:前後1か月を含むカレンダー表示

-3オプションを使用すると、現在の月の前後1か月を含むカレンダーが表示されます。

これにより、前後の月の予定を一目で確認できます。

cal -3
   September 2024        October 2024         November 2024     
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  6  7       1  2  3  4  5                    1  2
 8  9 10 11 12 13 14   6  7  8  9 10 11 12   3  4  5  6  7  8  9
15 16 17 18 19 20 21  13 14 15 16 17 18 19  10 11 12 13 14 15 16
22 23 24 25 26 27 28  20 21 22 23 24 25 26  17 18 19 20 21 22 23
29 30                 27 28 29 30 31        24 25 26 27 28 29 30

-yオプション:1年分のカレンダーを表示

-yオプションを使用すると、指定した年の1年分のカレンダーが表示されます。

これにより、年間の予定を把握するのに便利です。

cal -y 2024
                              2024                              
      January               February               March        
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  6               1  2  3                   1  2
 7  8  9 10 11 12 13    4  5  6  7  8  9 10    3  4  5  6  7  8  9
14 15 16 17 18 19 20   11 12 13 14 15 16 17   10 11 12 13 14 15 16
21 22 23 24 25 26 27   18 19 20 21 22 23 24   17 18 19 20 21 22 23
28 29 30 31            25 26 27 28 29         24 25 26 27 28 29 30
                                              31                 

      April                  May                   June          
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  6            1  2  3  4                   1  
 7  8  9 10 11 12 13    5  6  7  8  9 10 11    2  3  4  5  6  7  8
14 15 16 17 18 19 20   12 13 14 15 16 17 18    9 10 11 12 13 14 15
21 22 23 24 25 26 27   19 20 21 22 23 24 25   16 17 18 19 20 21 22
28 29 30               26 27 28 29 30 31      23 24 25 26 27 28 29
                                              30                 

      July                 August              September         
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  6               1  2  3    1  2  3  4  5  6  7
 7  8  9 10 11 12 13    4  5  6  7  8  9 10    8  9 10 11 12 13 14
14 15 16 17 18 19 20   11 12 13 14 15 16 17   15 16 17 18 19 20 21
21 22 23 24 25 26 27   18 19 20 21 22 23 24   22 23 24 25 26 27 28
28 29 30 31            25 26 27 28 29 30 31   29 30               

    October               November              December         
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         

-mオプション:特定の月を表示

-mオプションを使用すると、特定の月のカレンダーを表示できます。

このオプションは、年を指定する必要があります。

cal -m 10 2023
    October 2024     
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  

-sオプション:週の開始曜日を指定する

-sオプションを使用すると、週の開始曜日を指定できます。

デフォルトでは日曜日が開始曜日ですが、-sオプションを使うことで月曜日などに変更できます。

cal -s 1

出力例(週の開始曜日が月曜日の場合):

    October 2024     
Mo Tu We Th Fr Sa Su  
    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  

-Aオプション:指定した月数後のカレンダーを表示

-Aオプションを使用すると、指定した月を含んだnヶ月後のカレンダーを表示できます。

例えば、3か月後のカレンダーを表示する場合は次のようにします。

cal -A 3
    October 2024     
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  

    November 2024     
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  

    December 2024     
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              

    January 2025      
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  

-Bオプション:指定した月数前のカレンダーを表示

-Bオプションを使用すると、指定した月を含む、nヶ月前のカレンダーを表示できます。

例えば、2か月前のカレンダーを表示する場合は次のようにします。

cal -B 2
    August 2024      
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  

    September 2024   
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                 

    October 2024     
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コマンドの応用例

祝日やイベントをカレンダーに追加する

calコマンド自体には祝日やイベントを表示する機能はありませんが、echoprintfコマンドと組み合わせることで、カレンダーに祝日やイベントを追加することができます。

以下の例では、特定の日付にイベントを追加して表示します。

cal | sed 's/^/ /; s/ 10/ 10 ★イベント/; s/ 20/ 20 ★祝日/'
    October 2024     
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  

スクリプトで自動的にカレンダーを表示する

Bashスクリプトを作成して、定期的にカレンダーを表示することができます。

以下のスクリプトは、毎日カレンダーを表示する例です。

#!/bin/bash
while true; do
    clear
    cal
    sleep 86400  # 1日(86400秒)待機
done

このスクリプトを実行すると、毎日カレンダーが表示されます。

カレンダーをファイルに保存する

calコマンドの出力をファイルに保存することも簡単です。

リダイレクトを使用して、カレンダーをテキストファイルに保存できます。

cal > calendar.txt

このコマンドを実行すると、現在の月のカレンダーがcalendar.txtというファイルに保存されます。

カレンダーをメールで送信する

calコマンドの出力をメールで送信することも可能です。

mailコマンドを使用して、カレンダーを指定したメールアドレスに送信します。

cal | mail -s "今月のカレンダー" example@example.com

このコマンドを実行すると、現在の月のカレンダーが「今月のカレンダー」という件名で指定したメールアドレスに送信されます。

calコマンドの関連コマンド

ncalコマンドとの違い

ncalコマンドは、calコマンドの代替として使用されるカレンダー表示ツールです。

主な違いは、ncalがカレンダーを縦に表示する点です。

これにより、月の全体像を把握しやすくなります。

また、ncalは、週の開始曜日を変更するオプションや、特定の日付を強調表示する機能も備えています。

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

dateコマンドとの組み合わせ

dateコマンドは、現在の日付や時刻を表示するためのコマンドです。

calコマンドと組み合わせることで、特定の日付のカレンダーを表示することができます。

例えば、現在の日付を取得して、その月のカレンダーを表示することができます。

cal $(date +%Y %m)

このコマンドを実行すると、現在の年と月のカレンダーが表示されます。

calとgrepを組み合わせて特定の日付を検索する

calコマンドの出力をgrepコマンドと組み合わせることで、特定の日付を簡単に検索することができます。

例えば、特定の日付が含まれる行を表示する場合は、次のようにします。

cal | grep "15"
13 14 15 16 17 18 19

このコマンドを実行すると、カレンダーの中で 15 が含まれる行が表示されます。

これにより、特定の日付の予定を簡単に確認することができます。

よくある質問

calコマンドで祝日を表示できますか?

calコマンド自体には祝日を表示する機能はありませんが、祝日を手動で追加することは可能です。

例えば、sedコマンドを使って特定の日付にマークを付けることで、祝日をカレンダーに表示することができます。

また、祝日情報を含むカレンダーを生成するためのスクリプトを作成することもできます。

calコマンドで週の開始曜日を変更するには?

calコマンドでは、-sオプションを使用して週の開始曜日を変更できます。

デフォルトでは日曜日が開始曜日ですが、-sオプションを使うことで月曜日などに変更できます。

例えば、月曜日を開始曜日にする場合は次のようにします。

cal -s 1

このコマンドを実行すると、週の開始曜日が月曜日に設定されたカレンダーが表示されます。

calコマンドで過去のカレンダーを表示できますか?

はい、calコマンドを使用して過去のカレンダーを表示することができます。

特定の年や月を指定することで、過去の任意のカレンダーを表示できます。

例えば、2010年の5月のカレンダーを表示するには、次のようにします。

cal 2010 5

このコマンドを実行すると、2010年5月のカレンダーが表示されます。

まとめ

この記事では、calコマンドの基本的な使い方やオプション、応用例、関連コマンドについて詳しく解説しました。

これにより、カレンダーを表示するためのさまざまな方法や、日常的なタスクに役立つ活用法を知ることができました。

ぜひ、実際にコマンドを試してみて、自分のニーズに合わせたカレンダー管理を行ってみてください。

  • URLをコピーしました!
目次から探す