Linux中國

在 Linux 命令行中規劃你的假期日曆

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

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

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

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

$ cal
    December 2018  
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 的更多信息,查看 Opensouce.com 社區版主 Don Watkin 的優秀文章 date 和 cal 命令概述

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

$ cal | boxes -d diamonds -p a1l4t2 
       /          /          /
    ///\/    ///\/    ///\/
 ///\///\///\///\///\///\/
//\///\///\///\///\///\///\
\///                            /\//
 /                                  /
 /           December 2018          /
//\      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 | boxes -d diamonds -p a1t2l3 | boxes -a c -d scroll        
 / ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 
|  /~~                                              /~~  |
|    |         /          /          /         |   / /|
|    /|      ///\/    ///\/    ///\/      |   / |
|  ~~  |   ///\///\///\///\///\///\/   |  ~~  |
|      |  //\///\///\///\///\///\///\  |      |
|      |  \///                            /\//  |      |
|      |   /                                  /   |      |
|      |   /          December 2018           /   |      |
|      |  //\     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                       /   |      |
|      |   /                                  /   |      |
|      |  //\/                            ///\  |      |
|      |  \///\///\///\///\///\///\//  |      |
|      |   /\///\///\///\///\///\///   |      |
|      |      /\///    /\///    /\///      |      |
|      |         /          /          /         |      |
|      |                                            |      |
      |~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~|     /
     /                                                 /
   ~~~                                                ~~~

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

關於雪,我抓取了一些 Bash 和 Gawk 的漂亮代碼片段,幸虧我發現了 CLIMagic。如果你不熟悉 CLIMagic,去查看他們的網站,在 Twitter 上關注他們。你會滿意的。

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

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

大功告成。

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

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

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

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

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

本文由 LCTT 原創編譯,Linux中國 榮譽推出


本文轉載來自 Linux 中國: https://github.com/Linux-CN/archive

對這篇文章感覺如何?

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

    You may also like

    Leave a reply

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

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

    More in:Linux中國