在Linux系统管理中,有时我们需要以一种醒目、有趣的方式在终端中显示文本信息,例如服务器欢迎语、重要提示或脚本执行状态。banner命令正是为此而生的一个经典工具,它能将输入的字符串以大号ASCII艺术字的形式输出,在CentOS系统中,banner并非默认安装的组件,本文将详细介绍如何在CentOS环境下安装、配置和使用banner,并探讨其相关的应用场景与替代方案。

准备工作:启用EPEL仓库
在CentOS中,banner命令通常包含在bsd-games软件包内,而这个软件包并不位于CentOS的官方基础源中,它被托管在EPEL(Extra Packages for Enterprise Linux)仓库里,EPEL是一个由Fedora特别兴趣小组维护的,为企业级Linux提供高质量附加软件包的仓库,安装banner的第一步是确保系统已启用EPEL仓库。
对于不同的CentOS版本,启用EPEL的命令略有不同:
对于CentOS 7:
sudo yum install epel-release
对于CentOS 8 / CentOS Stream:
sudo dnf install epel-release
执行上述命令后,系统会自动下载并安装EPEL仓库的配置文件,安装完成后,建议运行一下更新命令,以确保本地的软件包缓存是最新的。
# CentOS 7 sudo yum update # CentOS 8 / Stream sudo dnf update
安装banner软件包
启用EPEL仓库后,安装banner就变得非常简单了,我们只需要安装包含它的bsd-games软件包即可,这个软件包不仅包含banner,还集成了许多其他经典的BSD小游戏和工具,如adventure, arithmetic, backgammon等。
使用以下命令进行安装:
# CentOS 7 sudo yum install bsd-games # CentOS 8 / Stream sudo dnf install bsd-games
在安装过程中,系统会提示你确认下载和安装,输入y并回车即可,安装完成后,你可以通过以下命令来验证banner是否已成功安装:
banner --version
如果安装成功,终端会显示出banner的版本信息,或者,你可以直接运行一个简单的测试:

banner "OK"
如果终端以大号字符显示出“OK”,那么恭喜你,banner已经可以正常使用了。
banner的基本使用方法与限制
banner命令的语法非常直观:
banner [要显示的字符串]
使用示例:
banner "HELLO"
输出将会是:
重要限制:
需要注意的是,原始的banner命令功能非常有限,它只能处理大写字母(A-Z)、数字(0-9)和空格,如果你输入小写字母或特殊符号,它们将被忽略。
功能更强大的替代方案
如果你需要更丰富的字体、支持小写字母或特殊字符,可以考虑使用figlet或toilet这两个更现代、更强大的工具,它们同样可以通过EPEL或直接从源码安装。
| 工具名称 | 来源 | 特点 | 安装命令 (CentOS) |
|---|---|---|---|
| banner | bsd-games 包 | 经典、简单,仅支持大写字母和数字 | sudo yum install bsd-games |
| figlet | figlet 包 | 支持多种字体,支持小写字母和部分符号 | sudo yum install figlet |
| toilet | toilet 包 | 功能更强,支持颜色和更复杂的渲染效果 | sudo yum install toilet |
安装并使用figlet:
sudo yum install figlet figlet "Hello World"
figlet的输出会更加美观和灵活。
实际应用场景
掌握了安装和基本使用后,我们可以将banner应用到实际工作中,提升用户体验或脚本的可读性。

自定义登录欢迎信息
你可以将banner的输出重定向到/etc/motd(Message of the Day)文件中,这样用户通过SSH登录到服务器时,就会首先看到这个醒目的欢迎信息。
sudo sh -c 'banner "WELCOME" > /etc/motd'
这里使用sh -c是为了确保重定向操作>也由sudo权限执行,下次用户登录时,就会看到大写的“WELCOME”字样,你也可以结合其他信息,如系统名、IP地址等,创建一个更丰富的欢迎页。
在Shell脚本中增强显示
在自动化脚本中,当执行到某个关键步骤时,可以使用banner来打印状态信息,让执行者一目了然。
#!/bin/bash
# ... 其他脚本逻辑 ...
echo "开始执行数据库备份..."
banner "BACKUP"
# ... 执行备份命令 ...
if [ $? -eq 0 ]; then
banner "DONE"
else
banner "FAIL"
fi 这样,无论是在本地终端还是通过日志查看脚本执行情况,关键状态都会非常突出。
相关问答FAQs
问题1:banner 和 figlet 有什么区别?我应该选择哪个?
解答: banner和figlet都是用于生成ASCII艺术字的工具,但它们在功能和灵活性上有显著差异。banner是一个非常古老的工具,功能极其有限,只支持大写英文字母和数字,样式单一,它的优点是轻量、历史悠久,通常作为bsd-games包的一部分被安装,而figlet是一个更现代、功能更强大的替代品,它支持多种字体文件(可以自行下载和添加),能够处理小写字母、标点符号和许多特殊字符,生成的艺术字样式更加丰富多样。选择建议:如果你只是需要一个最简单、最基础的大写字母提示,banner足够了,但如果你追求更好的视觉效果、需要支持更多字符或希望自定义字体,那么figlet无疑是更好的选择,并且它也是通过标准包管理器轻松安装的。
问题2:我没有sudo权限,可以在我的用户目录下安装和使用banner吗?
解答: 理论上可以,但过程相对复杂,不推荐普通用户操作,由于banner是bsd-games包的一部分,你无法直接使用yum或dnf在用户目录下安装,你需要做的是:
- 找到
bsd-games的源代码包(.src.rpm或源码压缩包)。 - 在你的用户目录下解压并编译源代码,这需要你的系统上安装了GCC等编译工具链。
- 在编译时,通过指定
--prefix参数将安装路径设置为你的家目录下的某个文件夹,例如./configure --prefix=$HOME/local。 - 执行
make和make install。 - 你需要将
$HOME/local/bin添加到你的PATH环境变量中,才能直接运行banner命令。
这个过程相当繁琐且容易出错,一个更实际的做法是联系你的系统管理员,请求他们为你安装bsd-games或figlet包,或者安装一个功能更强的工具如toilet,对于没有管理员权限的用户,使用在线的ASCII艺术生成器并将结果复制到脚本或文件中,通常是更简单的替代方案。
【版权声明】:本站所有内容均来自网络,若无意侵犯到您的权利,请及时与我们联系将尽快删除相关内容!
发表回复