• 正文
    • figlet:
    • toilet:
    • 終端組合命令:
    • 結(jié)語
  • 相關(guān)推薦
申請入駐 產(chǎn)業(yè)圖譜

分享自己的終端diy顯示的banner

02/01 09:17
271
加入交流群
掃碼加入
獲取工程師必備禮包
參與熱點資訊討論

ubuntu是大家最常用的的linux桌面發(fā)行版,所以它的各方面的生態(tài)也很全面,今天給大家分享我使用很久兩小工具figlet和toilet,這兩個工具可以幫助我們的界面可玩性多一些??梢詭臀覀円粋€酷炫的banner界面。

上面是我自己的一個終端log,每次打開一個新終端都會進(jìn)行打印輸出我的彩色名字拼音,接下來我就來給大家分享一下我的制作過程。

歡迎關(guān)注微信公眾號:羽林君,或者添加作者個人微信:become_me


figlet:

figlet是一種用C語言編寫的可以將普通終端文本轉(zhuǎn)換為大字母的命令。

使用figlet 工具可以將message 轉(zhuǎn)化為空心的字體, 一般用來制作程序啟動時的banner, 比如一些雷達(dá)包的啟動界面等,

sudo?apt?install?figlet

安裝好之后我們就可以進(jìn)行命令操作了,下面是figlet的常用的輸出參數(shù):

-f選擇字體。
-d選擇字體目錄。
-c使輸出文本居中。
-l將文本向左對齊。
-r將文本右對齊。
-w指定輸出大小。
-k啟用字距調(diào)整,分別創(chuàng)建每個字母,而不是與相鄰字母合并。

其中-f選擇字體為選擇字體,但是我們需要知道電腦里面支持的字體,使用showfigfonts 進(jìn)行查看。

使用showfigfonts查看的不同字體輸出LiuYuNing這幾個詞

figlet?-f??standard?LiuYuNing

通過以上不同字體輸出,大家就可以自行去選擇自己喜歡的字體。

此外在ubuntu上,安裝figlet之后,大家也可以使用system函數(shù)執(zhí)行figlet命令,這樣你的函數(shù)執(zhí)行起來就可以看到空心log了。

#include<stdlib.h>
void?main()
{
?system("figlet?-f??slant??LiuYuNing");
?
}

python的話可以通過導(dǎo)入 os模塊,進(jìn)行system系統(tǒng)函數(shù)執(zhí)行

import?os
os.system("figlet?-f??slant??LiuYuNing")

除了這些,我參看網(wǎng)上其他博主的文章,分享一個Figlet時鐘例子,通過組合watch和date命令以標(biāo)準(zhǔn)字體輸出日期和時間,每秒更新一次打印。退出出的時候使用ctrl+c。

watch?-n1?"date?'+%D%n%T'|figlet?-k"

我們可以修改figlet各種命令選項來調(diào)整它以適合你自己的想法,但它有一個缺陷:它不能著色

為了輸出獲取彩色,就選擇了使用toilet命令。

toilet:

toilet 和 figlet 相似,支持彩色輸出。它具有HTML,SVG和TGA圖像以及ANSI等導(dǎo)出選項。

先安裝:

sudo?apt?install?toilet

toilet 支持兩種彩色格式:--gay 和 --metal

通過man toilet命令,我們就可以看到輸出顏色的選項了,在下面圖片的中間,白色高亮顯示部分

和figlet一樣,我們安裝好toilet之后,我們也可以使用system進(jìn)行函數(shù)執(zhí)行。

#include<stdlib.h>
void?main()
{
?system("toilet??--gay?LiuYuNing");
?
}

這里也是參看網(wǎng)上其他博主的文章,分享一個toilet 彩色時鐘例子。

while?true;?do?echo?"$(date?'+%D?%T'?|?toilet?-f?term?-F?border?--gay)";?sleep?1;?done

這里我們得到了空心字體和彩色字體兩種輸出,接下來我們進(jìn)行組合輸出,達(dá)到終端每次開啟都輸出,我們定制好的彩色空心字符。

終端組合命令:

figlet?-f?big?LiuYuNing?|??toilet?-f?term??--gay

經(jīng)過一番的測試,我選擇了big字體,figlet輸出之后,再采用管道傳輸?shù)絫oilet執(zhí)行,實現(xiàn)我想要的效果,接下來就把這條命令,終端每次開啟都會執(zhí)行的腳本里面去實現(xiàn)我們的功能。

這里就不得不說.bashrc文件了。在linux里面,不管哪種 shell 都會有一個 .bashrc 的隱藏文件,它就相當(dāng)于 shell 的配置文件。

不同目錄下的 .bashrc 文件其作用不盡相同,比如:

    /etc/skel/.bashrc :文件將復(fù)制到系統(tǒng)上創(chuàng)建的任何新用戶的主文件夾中/home/lyn/.bashrc:是 bash 的配置文件,保存?zhèn)€人的一些個性化設(shè)置,如命令別名、路徑等

每次修改 .bashrc后,使用 source ~/.bashrc(或者 . ~/.bashrc)就可以立刻加載修改后的設(shè)置,使之生效。

一般會在.bash_profile文件中顯式調(diào)用.bashrc。登陸 linux 啟動 bash時首先會去讀取 ~/.bash_profile文件,這樣 ~/.bashrc也就得到執(zhí)行了,你的個性化設(shè)置也就生效了。

利用這一特性,可以實現(xiàn)一些個性化設(shè)置,如:Linux 系統(tǒng)開機(jī)執(zhí)行自動某個腳本文件等,這在自動化操作方面可以給我們很多便利。

接下來我們vi ~/.bashrc,再在里面最后面加上figlet -f big LiuYuNing | toilet -f term --gay這條命令,每次打開終端我們就可以看到我們的banner執(zhí)行啟動這條命令。最終效果如下:

結(jié)語

這就是我使用figlet和toilet組合命令做終端的banner界面使用。如果大家有更好的想法和需求,也歡迎大家加我好友交流分享哈。

作者:良知猶存,白天努力工作,晚上原創(chuàng)公號號主。公眾號內(nèi)容除了技術(shù)還有些人生感悟,一個認(rèn)真輸出內(nèi)容的職場老司機(jī),也是一個技術(shù)之外豐富生活的人,攝影、音樂 and 籃球。關(guān)注我,與我一起同行。

相關(guān)推薦

登錄即可解鎖
  • 海量技術(shù)文章
  • 設(shè)計資源下載
  • 產(chǎn)業(yè)鏈客戶資源
  • 寫文章/發(fā)需求
立即登錄

一個程序員,喜歡寫文章,還喜歡打籃球,也喜歡吉他鋼琴的駁雜之人。日常更新自己,分享包括但不限于C/C++、嵌入式、物聯(lián)網(wǎng)、Linux等編程學(xué)習(xí)筆記,同時,公眾號內(nèi)包含大量的學(xué)習(xí)資源。歡迎關(guān)注,一同交流學(xué)習(xí),共同進(jìn)步!