Linux中國

顯示日曆信息的命令 cal 和 ncal

  Linux 里內置兩個用來顯示和校準日曆的命令 calncal。一旦你習慣使用它們,你會發現使用命令很多時候都比你運用滑鼠在 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

對這篇文章感覺如何?

太棒了
0
不錯
0
愛死了
0
不太好
0
感覺很糟
0
雨落清風。心向陽

    You may also like

    Leave a reply

    您的電子郵箱地址不會被公開。 必填項已用 * 標註

    此站點使用Akismet來減少垃圾評論。了解我們如何處理您的評論數據

    More in:Linux中國