分享自己的终端diy显示的banner
共 2678字,需浏览 6分钟
· 2022-02-20
前言:
ubuntu是大家最常用的的linux桌面发行版,所以它的各方面的生态也很全面,今天给大家分享我使用很久两小工具figlet和toilet,这两个工具可以帮助我们的界面可玩性多一些。可以帮我们一个酷炫的banner界面。
![](https://filescdn.proginn.com/fdf11cc5ccfa653bcd1f2591e0d55513/0d8f6f7ae7aab7f861e749d267e8e386.webp)
上面是我自己的一个终端log,每次打开一个新终端都会进行打印输出我的彩色名字拼音,接下来我就来给大家分享一下我的制作过程。
作者:良知犹存
转载授权以及围观:欢迎关注微信公众号:羽林君
或者添加作者个人微信:become_me
figlet:
figlet是一种用C语言编写的可以将普通终端文本转换为大字母的命令。
使用figlet 工具可以将message 转化为空心的字体, 一般用来制作程序启动时的banner, 比如一些雷达包的启动界面等,
sudo apt install figlet
安装好之后我们就可以进行命令操作了,下面是figlet的常用的输出参数:
-f选择字体。
-d选择字体目录。
-c使输出文本居中。
-l将文本向左对齐。
-r将文本右对齐。
-w指定输出大小。
-k启用字距调整,分别创建每个字母,而不是与相邻字母合并。
其中-f选择字体为选择字体,但是我们需要知道电脑里面支持的字体,使用showfigfonts
进行查看。
![](https://filescdn.proginn.com/349cf53fd1f0152989b882c459f02eff/76bfdf286f5b948e78209806713a8ce3.webp)
使用showfigfonts
查看的不同字体输出LiuYuNing这几个词
figlet -f standard LiuYuNing
通过以上不同字体输出,大家就可以自行去选择自己喜欢的字体。
此外在ubuntu上,安装figlet之后,大家也可以使用system函数执行figlet命令,这样你的函数执行起来就可以看到空心log了。
#include
void main()
{
system("figlet -f slant LiuYuNing");
}
![](https://filescdn.proginn.com/d35f8c235133981489d97d687bf96d6c/f77a37494302d0883a4e9f0fa3ffba62.webp)
python的话可以通过导入 os模块,进行system系统函数执行
import os
os.system("figlet -f slant LiuYuNing")
除了这些,我参看网上其他博主的文章,分享一个Figlet时钟例子,通过组合watch和date命令以标准字体输出日期和时间,每秒更新一次打印。退出出的时候使用ctrl+c。
watch -n1 "date '+%D%n%T'|figlet -k"
![](https://filescdn.proginn.com/3e0c0fdb62e85b85964314541e6b19fe/8bedf6cadbc00bf54b1808f249e59c44.webp)
我们可以修改figlet各种命令选项来调整它以适合你自己的想法,但它有一个缺陷:它不能着色
为了输出获取彩色,就选择了使用toilet命令。
toilet:
toilet 和 figlet 相似,支持彩色输出。它具有HTML,SVG和TGA图像以及ANSI等导出选项。
先安装:
sudo apt install toilet
![](https://filescdn.proginn.com/c4c63ffd18ce770b28a85abfa2289b0a/55fe165b89288ae19b4e70c1927b4ca3.webp)
toilet 支持两种彩色格式:--gay 和 --metal
:
通过man toilet
命令,我们就可以看到输出颜色的选项了,在下面图片的中间,白色高亮显示部分
![](https://filescdn.proginn.com/2b6c7ae86fd8f0d671bbe371417a2a3a/0ab2757704e530b91794fcea60e5f54a.webp)
和figlet一样,我们安装好toilet之后,我们也可以使用system进行函数执行。
#include
void main()
{
system("toilet --gay LiuYuNing");
}
![](https://filescdn.proginn.com/75e26d8731fd726d8ffb048daeacb0a1/d1748a05282361969f62d06c2a998e92.webp)
这里也是参看网上其他博主的文章,分享一个toilet 彩色时钟例子。
while true; do echo "$(date '+%D %T' | toilet -f term -F border --gay)"; sleep 1; done
![](https://filescdn.proginn.com/392629e38311029cb930727c9b077af7/937be886773374e5a96ce9b1999acaed.webp)
这里我们得到了空心字体和彩色字体两种输出,接下来我们进行组合输出,达到终端每次开启都输出,我们定制好的彩色空心字符。
终端组合命令:
figlet -f big LiuYuNing | toilet -f term --gay
经过一番的测试,我选择了big字体,figlet输出之后,再采用管道传输到toilet执行,实现我想要的效果,接下来就把这条命令,终端每次开启都会执行的脚本里面去实现我们的功能。
这里就不得不说.bashrc文件了。在linux里面,不管哪种 shell 都会有一个 .bashrc 的隐藏文件,它就相当于 shell 的配置文件。
不同目录下的 .bashrc 文件其作用不尽相同,比如:
/etc/skel/.bashrc :文件将复制到系统上创建的任何新用户的主文件夹中 /home/lyn/.bashrc:是 bash 的配置文件,保存个人的一些个性化设置,如命令别名、路径等
每次修改 .bashrc后,使用 source ~/.bashrc(或者 . ~/.bashrc)就可以立刻加载修改后的设置,使之生效。
一般会在.bash_profile文件中显式调用.bashrc。登陆 linux 启动 bash时首先会去读取 ~/.bash_profile文件,这样 ~/.bashrc也就得到执行了,你的个性化设置也就生效了。
利用这一特性,可以实现一些个性化设置,如:Linux 系统开机执行自动某个脚本文件等,这在自动化操作方面可以给我们很多便利。
接下来我们vi ~/.bashrc
,再在里面最后面加上figlet -f big LiuYuNing | toilet -f term --gay
这条命令,每次打开终端我们就可以看到我们的banner执行启动这条命令。最终效果如下:
![](https://filescdn.proginn.com/0c0d9ac8276b39658283738f58f97eae/11c1b54650498013421d44216e8955d2.webp)
结语
这就是我使用figlet和toilet组合命令做终端的banner界面使用。如果大家有更好的想法和需求,也欢迎大家加我好友交流分享哈。
作者:良知犹存,白天努力工作,晚上原创公号号主。公众号内容除了技术还有些人生感悟,一个认真输出内容的职场老司机,也是一个技术之外丰富生活的人,摄影、音乐 and 篮球。关注我,与我一起同行。
‧‧‧‧‧‧‧‧‧‧‧‧‧‧‧‧ END ‧‧‧‧‧‧‧‧‧‧‧‧‧‧‧‧
推荐阅读
【3】CPU中的程序是怎么运行起来的 必读
本公众号全部原创干货已整理成一个目录,回复[ 资源 ]即可获得。