歡迎光臨
每天分享高質量文章

在 Linux 命令列中規劃你的假期日曆 | Linux 中國

將命令連結在一起,構建一個彩色日曆,然後在暴風雪中將其拂去。

— Jason Baker

 

歡迎閱讀今天推出的 Linux 命令列玩具降臨日曆。如果這是你第一次訪問本系列,你可能會問:什麼是命令列玩具。即使我不太確定,但一般來說,它可以是一個遊戲或任何簡單的娛樂,可以幫助你在終端玩得開心。

很可能你們中的一些人之前已經看過我們日曆上的各種選擇,但我們希望給每個人至少一件新東西。

我們在沒有建立實際日曆的情況下完成了本系列的第 7 天,所以今天讓我們使用命令列工具來做到這一點:cal。就其本身而言,cal 可能不是最令人驚奇的工具,但我們可以使用其它一些實用程式來為它增添一些趣味。

很可能,你的系統上已經安裝了 cal。要使用它,只需要輸入 cal 即可。

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

我們不打算在本文中深入介紹高階用法,因此如果你想瞭解有關 cal 的更多資訊,檢視 Opensouce.com 社群版主 Don Watkin 的優秀文章 date 和 cal 命令概述[1]

現在,讓我們用一個漂亮的盒子來為它增添趣味,就像我們在上一篇 Linux 玩具文章中介紹的那樣。我將使用鑽石塊,用一點內邊距來對齊。

  1. $ cal | boxes -d diamonds -p a1l4t2 
  2.        /\          /\          /\
  3.     /\//\\/\    /\//\\/\    /\//\\/\
  4.  /\//\\\///\\/\//\\\///\\/\//\\\///\\/\
  5. //\\\//\/\\///\\\//\/\\///\\\//\/\\///\\
  6. \\//\/                            \/\\//
  7.  \/                                  \/
  8.  /\           December 2018          /\
  9. //\\      Su Mo Tu We Th Fr Sa      //\\
  10. \\//                         1      \\//
  11.  \/        2  3  4  5  6  7  8       \/
  12.  /\        9 10 11 12 13 14 15       /\
  13. //\\      16 17 18 19 20 21 22      //\\
  14. \\//      23 24 25 26 27 28 29      \\//
  15.  \/       30 31                      \/
  16.  /\                                  /\
  17. //\\/\                            /\//\\
  18. \\///\\/\//\\\///\\/\//\\\///\\/\//\\\//
  19.  \/\\///\\\//\/\\///\\\//\/\\///\\\//\/
  20.     \/\\//\/    \/\\//\/    \/\\//\/
  21.        \/          \/          \/

看起來很不錯,但是為了更規整,讓我們把整個東西放到另一個盒子裡,為了好玩,這次我們將使用卷軸式設計。

  1. cal | boxes -d diamonds -p a1t2l3 | boxes -a c -d scroll        
  2.  / ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ \
  3. |  /~~\                                              /~~\  |
  4. |\ \   |         /\          /\          /\         |   / /|
  5. | \   /|      /\//\\/\    /\//\\/\    /\//\\/\      |\   / |
  6. |  ~~  |   /\//\\\///\\/\//\\\///\\/\//\\\///\\/\   |  ~~  |
  7. |      |  //\\\//\/\\///\\\//\/\\///\\\//\/\\///\\  |      |
  8. |      |  \\//\/                            \/\\//  |      |
  9. |      |   \/                                  \/   |      |
  10. |      |   /\          December 2018           /\   |      |
  11. |      |  //\\     Su Mo Tu We Th Fr Sa       //\\  |      |
  12. |      |  \\//                        1       \\//  |      |
  13. |      |   \/       2  3  4  5  6  7  8        \/   |      |
  14. |      |   /\       9 10 11 12 13 14 15        /\   |      |
  15. |      |  //\\     16 17 18 19 20 21 22       //\\  |      |
  16. |      |  \\//     23 24 25 26 27 28 29       \\//  |      |
  17. |      |   \/      30 31                       \/   |      |
  18. |      |   /\                                  /\   |      |
  19. |      |  //\\/\                            /\//\\  |      |
  20. |      |  \\///\\/\//\\\///\\/\//\\\///\\/\//\\\//  |      |
  21. |      |   \/\\///\\\//\/\\///\\\//\/\\///\\\//\/   |      |
  22. |      |      \/\\//\/    \/\\//\/    \/\\//\/      |      |
  23. |      |         \/          \/          \/         |      |
  24. |      |                                            |      |
  25.  \     |~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~|     /
  26.   \   /                                              \   /
  27.    ~~~                                                ~~~

完美。現在,這事有點小激動了。我喜歡我們的設計,但我想更妙一些,所以我要給它上色。但是 Opensource.com 員工所在的北卡羅來版納州羅利辦公室,本週末很有可能下雪。所以,讓我們享受彩色降臨日曆,然後用雪擦掉它。

關於雪,我抓取了一些 Bash 和 Gawk 的漂亮程式碼片段[2],幸虧我發現了 CLIMagic。如果你不熟悉 CLIMagic,去檢視他們的網站[3],在 Twitter[4] 上關註他們。你會滿意的。

我們開始吧。讓我們清除螢幕,扔掉四四方方的日曆,給它上色,等幾秒鐘,然後用暴風雪把它吹走。這些在終端可以用一行命令完成。

  1. $ clear;cal|boxes -d diamonds -p a1t2l3|boxes -a c -d scroll|lolcat;sleep 3;while :;do echo $LINES $COLUMNS $(($RANDOM%$COLUMNS)) $(printf "\u2744\n");sleep 0.1;done|gawk '{a[$3]=0;for(x in a) {o=a[x];a[x]=a[x]+1;printf "\033[%s;%sH ",o,x;printf "\033[%s;%sH%s \033[0;0H",a[x],x,$4;}}'

大功告成。

要使它在你的系統上工作,你需要所有它取用的實用程式(boxlolcatgawk 等),還需要使用支援 Unicode 的終端模擬器。

你有特別喜歡的命令列小玩具需要我介紹的嗎?這個系列要介紹的小玩具大部分已經有了落實,但還預留了幾個空位置。請在評論區留言,我會檢視的。如果還有空位置,我會考慮介紹它的。如果沒有,但如果我得到了一些很好的意見,我會在最後做一些有價值的提及。

看看昨天的玩具:使用 Nyan Cat 在 Linux 命令列休息[5]。記得明天再來!


via: https://opensource.com/article/18/12/linux-toy-cal

作者:Jason Baker[7] 選題:lujun9972 譯者:MjSeven 校對:wxy

贊(0)

分享創造快樂