linux banner 设计
Linux Banner 设计与生成方法全览
在 Linux 系统中,很多管理员和开发者会希望在用户登录终端时看到一个个性化的 Banner(横幅),不仅可以显示系统信息,还能作为“欢迎界面”或“安全提示”。常见的场景有:
-
SSH 登录时显示系统信息或警告
-
Shell 启动时展示个性化标语
-
开机时打印 ASCII Art Logo
-
开发板、嵌入式系统的提示文字
本文将系统整理 Linux 下 banner 的常见配置方法、生成工具、以及在线生成 ASCII Banner 的网站。
系统自带 Banner 配置方法
(1)/etc/motd
/etc/motd
(Message of the Day)是最常见的登录提示文件。
-
当用户登录系统时,shell 会自动显示该文件内容。
-
可以直接编辑:
-
sudo nano /etc/motd
-
内容可以是 ASCII 艺术字、系统警告、欢迎信息等。
(2)/etc/issue
与 /etc/
issue.net
-
/etc/issue
:在本地登录(tty)时显示的提示文字。 -
/etc/
issue.net
:在远程登录(如 telnet/ssh)时显示的提示文字。
这些文件支持内嵌转义序列,比如 \n
显示主机名、\l
显示终端号。
(3)PAM 模块控制
在 /etc/pam.d/sshd
或 /etc/pam.d/login
中,可以启用 pam_motd 模块,让登录时显示多个 motd 文件。
例如:
session optional pam_motd.so motd=/run/motd.dynamic
动态mtd的生成方法:由这个目录下的配置文件完成
header部分
help部分
uname部分
sysinfo部分
温度信息
电池信息
ip地址
存储情况
内存情况
整体展示
(4)开机 Banner(GRUB 或 Systemd)
如果想在开机阶段就显示,可以修改:
-
GRUB 的配置 (
/etc/default/grub
) 添加GRUB_TERMINAL_OUTPUT=console
并在/etc/issue
中写好 ASCII。 -
systemd service:写一个自定义服务,在启动时
echo
打印。
Linux 下 Banner 生成工具
除了直接编辑文本,Linux 有不少现成的命令行工具可以生成 ASCII Banner。
(1)banner
命令(bsdmainutils 包)
-
在 Debian/Ubuntu 系列中:
-
sudo apt install bsdmainutils
banner "Hello Linux"
-
生成大号字母 ASCII 图案。
(2)figlet
-
最常见的 ASCII Art 字体工具:
-
sudo apt install figlet
figlet "Welcome"
-
支持多种字体,可以在
/usr/share/figlet/
下找到。
(3)toilet
-
figlet
的升级版,支持彩色、UTF-8 字符: -
sudo apt install toilet
toilet -f mono12 -F metal "Linux Banner"
(4)lolcat
(配合彩色输出)
-
让文字输出带彩虹色:
-
figlet "Hello" | lolcat
(5)ASCII Logo 工具
-
neofetch
:显示系统信息 + logo -
screenfetch
:类似效果,适合个性化 MOTD
在线制作banner的网站
纯字体
http://patorjk.com/software/taag/
https://www.bootschool.net/ascii
http://www.network-science.de/ascii/
图片风
https://www.degraeve.com/img2txt.php
https://www.bootschool.net/ascii-art/animals
示例:生成一个炫酷的 SSH 登录 Banner
-
在线用 http://patorjk.com/software/taag/ 生成 ASCII:
-
保存到
/etc/motd
: -
sudo nano /etc/motd
-
登录时自动显示。
-
效果:每次 SSH 登录都会看到个性化欢迎界面。
-