前言
默认提示
在我们登入终端后,会弹出一段欢迎信息,上面会显示登录主机的信息、主机供应商的提示等信息。每次看到的都是同样的信息,未免有些厌倦。通过修改 Motd 文件,我们可以给 SSH 加点料,让它更加好看和有♂趣(划掉划掉
原理
在类 Unix 系统中,/etc/motd 是一个包含“今日消息”(Message of the day)的文件。比起电子邮件,使用 Motd 给所有用户发送消息显得更有效率。其它操作系统中也可能有这一功能,比如 Multics 中的 Motd 信息分段。/etc/motd 内容的会在用户成功登录后由 Unix 登录命令显示,整个过程发生在 Shell 登录之前。较新的类 Unix 系统可以生成动态消息。Motd 也被运用在其它领域,比如 IRC 服务器、半条命系列游戏等。
来源:维基百科
Linux 系统通过 /etc/issue
、/etc/issue.net
、/etc/motd
以及 /run/motd.dynamic
来显示本地或者是远程登录后的提示信息,通常用于向用户提示系统版本、硬件信息等,/etc/issue
、/etc/issue.net
通常在未登录终端前显示,/etc/motd
、/run/motd.dynamic
则是在成功登录终端后显示。 此外还有 /etc/profile
与 /etc/profile.d/
,在登录后会运行其中的脚本。
哪里有好康的提示信息?
AsciiWorld
AsciiWorld
在 AsciiWorld 中提供了现成的图案,不过 ASCiiWorld 历史悠久,上面的字符画稍显陈旧,不太符合我的审美,哈哈哈
通过图片转换
图片转Linux Shell彩色文本
V 友 Kokodayo 基于 Img2Motd 开发了网页版的 图片转Linux Shell彩色文本。我尝试了一下,挺好玩的,不过对图片和终端的要求有点高。图片的长宽尽量控制在 100 * 100 以内,同时尽量过于复杂的图案。
文字特效
Patorjk
Patorjk 可以根据自己输入的文字,并选择对应的字体来生成字符画,字体种类比较丰富(老板:每天给我换 150 种,但遗憾的是生成语言仅支持英文,如果有中文生成需要的,可以考虑使用 ASCii 字符画生成器来实现。
Neofetch
Neofetch
当然,除了静态的字符画,我们还可以选择使用一些工具来动态显示欢迎信息。
Neofetch 是一款用于显示系统信息的脚本,同类的工具还有 ScreenFetch 和 Linux_Logo。Neofetch 除了可以显示 ASCii 字符画,还可以通过 w3m-img 等运行库在终端中显示全彩图片(不过我还没折腾出来,没搞懂是终端的原因还是其它什么原因。
安装方法
- Debian / Ubuntu
apt update && apt upgrade -y
apt install neofetch -y
- CentOS / Fedora / RHEL(未实验)
yum update && yum upgrade -y
yum install dnf-plugins-core -y
dnf copr enable konimex/neofetch
dnf install neofetch
- macOS
brew install neofetch
更多 Neofetch 的玩法可以参考 Neofetch-Wiki,比如说通过 w3m-img 展示全彩图片、显示桌面截图、修改显示信息的类型、显示主机的扩展信息等等,在此不做过多阐述。
更改方法
静态 Motd:如果是从图片转换的,那么将新 Motd 更名为 motd
上传至 /etc
目录中,重新登录终端即可生效。
动态 Motd:在 Ubuntu 16.04 (其它系统同理)后,启用了动态 Motd,此时我们需要将生成的 motd
文件写入至 /etc/update-motd.d/30-banner
中的对应位置。
Neofetch:在 /etc/profile.d/
创建一个名为 neofetch.sh
的脚本,填入以下内容,保存后重新登入 SSH 即可生效。
#/bin/sh
echo
echo
neofetch
echo
最终效果
Patorjk
Neofetch
Neofetch in macOS
结语
有人也许会认为修改 Motd 纯属是「徒增功耗、方向错了」,但我个人觉得,除了能够让你的终端更加有趣,还能够在你登录终端前显示主机的重要信息,避免在生产环境中「rm -rf /*」(大草
如果你有更多有趣、新奇的玩法,不妨在讨论区中和大家一起分享。喜欢这篇文章的话,不要忘记点赞、分享和关注哦。