分享自己的终端diy显示的banner

简介: 分享自己的终端diy显示的banner

前言:

ubuntu是大家最常用的的linux桌面发行版,所以它的各方面的生态也很全面,今天给大家分享我使用很久两小工具figlet和toilet,这两个工具可以帮助我们的界面可玩性多一些。可以帮我们一个酷炫的banner界面。

839886cd3c004deb9abdba851aa48a4c.png

上面是我自己的一个终端log,每次打开一个新终端都会进行打印输出我的彩色名字拼音,接下来我就来给大家分享一下我的制作过程。

作者:良知犹存

转载授权以及围观:欢迎关注微信公众号:羽林君

或者添加作者个人微信:become_me


figlet:

figlet是一种用C语言编写的可以将普通终端文本转换为大字母的命令。

使用figlet 工具可以将message 转化为空心的字体, 一般用来制作程序启动时的banner, 比如一些雷达包的启动界面等,

sudo apt install figlet

安装好之后我们就可以进行命令操作了,下面是figlet的常用的输出参数:

-f选择字体。
-d选择字体目录。
-c使输出文本居中。
-l将文本向左对齐。
-r将文本右对齐。
-w指定输出大小。
-k启用字距调整,分别创建每个字母,而不是与相邻字母合并。

其中-f选择字体为选择字体,但是我们需要知道电脑里面支持的字体,使用

showfigfonts 进行查看。

839886cd3c004deb9abdba851aa48a4c.png

使用showfigfonts查看的不同字体输出LiuYuNing这几个词

figlet -f  standard LiuYuNing

839886cd3c004deb9abdba851aa48a4c.png

通过以上不同字体输出,大家就可以自行去选择自己喜欢的字体。

此外在ubuntu上,安装figlet之后,大家也可以使用system函数执行figlet命令,这样你的函数执行起来就可以看到空心log了。

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

839886cd3c004deb9abdba851aa48a4c.png

python的话可以通过导入 os模块,进行system系统函数执行

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

除了这些,我参看网上其他博主的文章,分享一个Figlet时钟例子,通过组合watch和date命令以标准字体输出日期和时间,每秒更新一次打印。退出的时候使用ctrl+c。

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

839886cd3c004deb9abdba851aa48a4c.png

我们可以修改figlet各种命令选项来调整它以适合你自己的想法,但它有一个缺陷:它不能着色

为了输出获取彩色,就选择了使用toilet命令

toilet:

toilet 和 figlet 相似,支持彩色输出。 它具有HTML,SVG和TGA图像以及ANSI等导出选项。

先安装:

sudo apt install toilet

839886cd3c004deb9abdba851aa48a4c.png

toilet 支持两种彩色格式:--gay 和 --metal

通过man toilet命令,我们就可以看到输出颜色的选项了,在下面图片的中间,白色高亮显示部分

839886cd3c004deb9abdba851aa48a4c.png

和figlet一样,我们安装好toilet之后,我们也可以使用system进行函数执行。

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

839886cd3c004deb9abdba851aa48a4c.png

这里也是参看网上其他博主的文章,分享一个toilet 彩色时钟例子。

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

839886cd3c004deb9abdba851aa48a4c.png

这里我们得到了空心字体和彩色字体两种输出,接下来我们进行组合输出,达到终端每次开启都输出,我们定制好的彩色空心字符。

终端组合命令:

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执行启动这条命令。最终效果如下:

839886cd3c004deb9abdba851aa48a4c.png

结语

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


作者:良知犹存,白天努力工作,晚上原创公号号主。公众号内容除了技术还有些人生感悟,一个认真输出内容的职场老司机,也是一个技术之外丰富生活的人,摄影、音乐 and 篮球。关注我,与我一起同行。


目录
相关文章
|
6月前
|
Java 关系型数据库 MySQL
Java项目实战(图书管理系统)
本项目为简易图书管理系统,实现图书增删改查、用户借阅归还及基础用户管理功能。采用Java语言,结合MySQL数据库与MVC架构,涵盖JDBC、Servlet、JSP等技术,适合初学者学习Java Web开发流程与项目结构设计。
329 2
|
存储 数据处理 数据中心
1U和2U服务器应如何正确选择?各有什么优缺点?
标准机架式服务器以U为高度单位,1U和2U服务器各有优缺点。1U服务器体积小、性价比高,但扩展性和散热性较差;2U服务器扩展性好、散热佳、稳定性强,但托管费用较高。不同高度的服务器适用于不同的业务场景,选择时需根据具体需求决定。未来数据中心将根据业务特性选择合适的服务器类型,而非统一采用2U服务器。
400 2
|
存储 开发者 Docker
|
9月前
|
监控 安全 BI
10 种最常见的 Active Directory (AD) 攻击
Active Directory(AD)是组织信息管理的核心,但在身份验证与访问控制中也面临诸多攻击风险。本文总结了十大常见AD攻击类型,包括基于密码的攻击(暴力破解、密码喷洒)、NTLM认证攻击(哈希传递、中继攻击)、Kerberos认证攻击(Kerberoasting、银票、金票)、复制机制攻击(DCSync、DCShadow)以及勒索软件攻击等,并提供检测与防护建议。为强化AD安全,ManageEngine ADAudit Plus可有效分析威胁、生成报表,助力构建坚固的安全防线。
430 11
|
7月前
|
人工智能 数据可视化 Devops
敏捷VS瀑布?敏捷项目管理方法论全解析:从核心逻辑到工具适配
本文深入解析了四大主流敏捷项目管理方法论:Scrum、Kanban、Lean和SAFe,分别阐述其核心逻辑、适用场景及典型工具。Scrum适合需求多变的中小型项目,强调迭代开发;Kanban通过可视化优化流程,适用于非迭代任务;Lean聚焦价值流优化,适于效率提升场景;SAFe为大型组织提供分层协作框架。文章对比各方法的特点与工具需求,并展望AI技术对敏捷管理的革新,为企业选择适配的方法与工具提供了理论与实践指导。
|
10月前
|
Linux Shell
Linux 进程前台后台切换与作业控制
进程前台/后台切换及作业控制简介: 在 Shell 中,启动的程序默认为前台进程,会占用终端直到执行完毕。例如,执行 `./shella.sh` 时,终端会被占用。为避免不便,可将命令放到后台运行,如 `./shella.sh &`,此时终端命令行立即返回,可继续输入其他命令。 常用作业控制命令: - `fg %1`:将后台作业切换到前台。 - `Ctrl + Z`:暂停前台作业并放到后台。 - `bg %1`:让暂停的后台作业继续执行。 - `kill %1`:终止后台作业。 优先级调整:
794 5
|
机器学习/深度学习 存储 人工智能
基于AI的实时监控系统:技术架构与挑战分析
AI视频监控系统利用计算机视觉和深度学习技术,实现实时分析与智能识别,显著提升高风险场所如监狱的安全性。系统架构包括数据采集、预处理、行为分析、实时决策及数据存储层,涵盖高分辨率视频传输、图像增强、目标检测、异常行为识别等关键技术。面对算法优化、实时性和系统集成等挑战,通过数据增强、边缘计算和模块化设计等方法解决。未来,AI技术的进步将进一步提高监控系统的智能化水平和应对复杂安全挑战的能力。
2587 4
|
SQL 数据库 数据库管理
逆天了!IDEA执行大文件SQL,效率甩 Navicat 几条街?
【10月更文挑战第1天】在数据库管理和开发领域,SQL文件的执行效率是衡量数据库管理工具性能的重要指标之一。近期,IDEA(IntelliJ IDEA)在执行大文件SQL方面的表现引起了广泛关注,其效率远超传统的数据库管理工具Navicat。本文将深入探讨这一现象背后的原因,并结合工作学习中的技术干货,为大家带来一些实用的建议和技巧。
510 1
|
机器学习/深度学习 人工智能 算法
【机器学习】K-means和KNN算法有什么区别?
【5月更文挑战第11天】【机器学习】K-means和KNN算法有什么区别?
|
机器学习/深度学习 人工智能 算法
【机器学习】模型、算法与数据—机器学习三要素
【机器学习】模型、算法与数据—机器学习三要素
1581 0