手把手教你定制一个专属的个性化终端登陆界面

Posted by Mike on 2020-05-28

在我们登入 macOS 的终端后,终端往往会弹出一段欢迎信息,显示登录主机、主机供应商提示等信息。但每次看到的都是同样的信息难免有些厌倦。

通过修改 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/,在登录后会运行其中的脚本。

哪里 Get 到好康的提示信息?

ASCiiWorld

在 AsciiWorld 中提供了现成的图案,左侧可按照分类来搜寻自己需要的字符画。不过 ASCiiWorld 历史悠久,上面的字符画稍显陈旧,不太符合我的审美,哈哈哈。

ASCiiWorld

网站链接:http://www.asciiworld.com/

通过图片转换

V 友 Kokodayo 基于 Img2Motd 开发了网页版的 图片转 Linux Shell 彩色文本。试了一下还挺好玩的亚子,不过对图片和终端的要求有点高。图片的长宽尽量控制在 100 * 100 以内,同时尽量避免使用过于复杂的图案。

Bakaya-Motd

网站链接:https://motd.bakaya.ro/

文字特效

Patorjk 可以根据自己输入的文字,并选择对应的字体来生成字符画,字体种类比较丰富(老板:每天给我换 150 种,但遗憾的是生成语言仅支持英文,如果有中文生成需要的,可以考虑使用 ASCii 字符画生成器来实现。

Patorjk

网站链接:http://patorjk.com/software/taag/

Neofetch

当然,除了静态的字符画,我们还可以选择使用一些工具来动态显示欢迎信息。

Neofetch 是一款用于显示系统信息的脚本,同类的工具还有 ScreenFetch 和 Linux_Logo。Neofetch 除了可以显示 ASCii 字符画,还可以通过 w3m-img 等运行库在终端中显示全彩图片(不过我还没折腾出来,没搞懂是终端的原因还是其它什么原因。

Neofetch

项目地址:https://github.com/dylanaraps/neofetch/

  1. 安装方法
  • Debian / Ubuntu
1
2
$ apt update && apt upgrade -y
$ apt install neofetch -y
  • CentOS / Fedora / RHEL
1
2
3
4
$ yum update && yum upgrade -y
$ yum install dnf-plugins-core -y
$ dnf copr enable konimex/neofetch
$ dnf install neofetch
  • macOS
1
$ brew install neofetch

更多 Neofetch 的玩法可以参考 Neofetch-Wiki,比如说通过 w3m-img 展示全彩图片、显示桌面截图、修改显示信息的类型、显示主机的扩展信息等等,在此不做过多阐述。

  1. 更改方法
  • 静态 Motd:如果是从图片转换的,那么将新 Motd 更名为 motd 上传至 /etc 目录中,重新登录终端即可生效。

  • 动态 Motd:在 Ubuntu 16.04 (其它系统同理)后,启用了动态 Motd,此时我们需要将生成的 motd 文件写入至 /etc/update-motd.d/30-banner 中的对应位置。

  • Neofetch:在 /etc/profile.d/ 创建一个名为 neofetch.sh 的脚本,填入以下内容,保存后重新登入 SSH 即可生效。

1
2
#/bin/sh
neofetch

最终效果

Patorjk

Neofetch

Neofetch in macOS

结语

有人也许会认为修改 Motd 纯属是「徒增功耗、方向错了」,但我个人觉得,除了能够让你的终端更加有趣,还能够在你登录终端前显示主机的重要信息,避免在生产环境中「rm -rf /*」。

如果你有更多有趣、新奇的玩法,不妨在讨论区中和大家一起分享。喜欢这篇文章的话,不要忘记点赞、分享和关注哦。

参考链接

  • Linux 公社:bash的登录与欢迎信息: /etc/issue,/etc/motd

  • 旷世的忧伤:Linux 服务器维护简易指南

  • Kokodayo:在 Linux Shell 的登录欢迎语里……放“图片”!

本文转载自:「鸟之言语」,原文:https://tinyurl.com/qqczh4n,版权归原作者所有。欢迎投稿,投稿邮箱: editor@hi-linux.com