在 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 "\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;}}'
大功告成。
要使它在你的系統上工作,你需要所有它引用的實用程式(box
、lolcat
、gawk
等),還需要使用支援 Unicode 的終端模擬器。
你有特別喜歡的命令列小玩具需要我介紹的嗎?這個系列要介紹的小玩具大部分已經有了落實,但還預留了幾個空位置。請在評論區留言,我會檢視的。如果還有空位置,我會考慮介紹它的。如果沒有,但如果我得到了一些很好的意見,我會在最後做一些有價值的提及。
看看昨天的玩具:使用 Nyan Cat 在 Linux 命令列休息。記得明天再來!
via: https://opensource.com/article/18/12/linux-toy-cal
作者:Jason Baker 選題:lujun9972 譯者:MjSeven 校對:wxy
相關文章
- 推薦三個讓你假裝很忙的Linux 命令列工具Linux命令列
- 在 Linux 命令列上使用日曆Linux命令列
- 假期日曆外掛
- 在 Linux 命令列中轉換大小寫Linux命令列
- Linux命令列結尾提示符有什麼?對linux學習規劃Linux命令列
- LINUX命令列書寫規則Linux命令列
- 使用 Calcurse 在 Linux 命令列中組織任務Linux命令列
- 使用 xclip 在 Linux 命令列中複製貼上Linux命令列
- 在 Linux 中如何從命令列查詢 VirtualBox 版本Linux命令列
- 在Linux命令列檢視影像的方法Linux命令列
- 在Linux中,如何規劃⼀臺 Linux 主機,步驟是怎樣?Linux
- 在Linux命令列中進行大小寫字元轉換Linux命令列字元
- 假裝很忙的三個命令列工具命令列
- 在 Linux 命令列下使用“原力”Linux命令列
- 在 Linux 命令列中使用 tcpdump 抓包Linux命令列TCP
- 在命令列中連線mysql命令列MySql
- Linux命令列Linux命令列
- 在 Linux 命令列中使用 ls 列出檔案的技巧Linux命令列
- 在 Linux 命令列傳送郵件的 5 種方法Linux命令列
- 收集 Linux 命令列執行的命令Linux命令列
- 在Linux中,有哪些基本的 Vim 命令?Linux
- 在Linux命令列內的大小寫轉換(附全套Linux影片教程)Linux命令列
- 在Linux命令列傳送電子郵件Linux命令列
- 你一定是用了假的 Linux cronLinux
- 在 Linux中find命令使用技巧Linux
- Linux中 awk命令根據列的索引批次提取列的資料Linux索引
- Linux下命令列中的複製和貼上Linux命令列
- Linux中11個比較實用的命令列Linux命令列
- Linux awk命令中如何刪除陣列Linux陣列
- 在 Linux 命令列中使用 nudoku 解決謎題Linux命令列
- 在 Linux 中使用ImageMagick命令列操作影像檔案Linux命令列
- Linux的命令列介面簡介Linux命令列
- Linux命令列中幾個使用history相關的技巧Linux命令列
- 在 Linux 中檢視你的時區Linux
- 在 Rocky Linux 中,你可以使用 firewalld 來管理防火牆規則。Linux防火牆
- 在 Golang 中像 Laravel 的 Artisan 一樣使用命令列,Goravel 帶你找回熟悉的味道GolangLaravel命令列
- Linux命令列筆記Linux命令列筆記
- 演算法基礎:動態規劃陣列中滾動陣列的使用演算法動態規劃陣列