24

一日一技 | 如何让你的终端欢迎语好看又有趣

 4 years ago
source link: https://sspai.com/post/59297
Go to the source link to view the article. You can view the picture content, updated content and better typesetting reading experience. If the link is broken, please click the button below to view the snapshot at that time.

Matrix 精选

Matrix 是少数派的写作社区,我们主张分享真实的产品体验,有实用价值的经验与思考。我们会不定期挑选 Matrix 最优质的文章,展示来自用户的最真实的体验和观点。

文章代表作者个人观点,少数派仅对标题和排版略作修改。

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

通过修改 Motd 文件,我们可以给 SSH 加点料,让它更加好看 和有♂趣(划掉划掉

eeyUvaf.png!web 默认提示

原理

在类 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 历史悠久,上面的字符画稍显陈旧,不太符合我的审美,哈哈哈。

eEnMJzB.png!web ASCiiWorld

通过图片转换

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

UVnmEvI.png!web Bakaya-Motd

文字特效

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

uAvumiE.png!web Patorjk

Neofetch

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

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

E3I77nA.png!web Neofetch

安装方法

  • 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
neofetch

最终效果

a2Ib6bz.png!web Patorjk UzUvumi.png!web Neofetch QZBvIrr.png!web Neofetch in macOS

结语

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

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

本文同步发布于 鸟之言语

参考链接

  1. Linux 公社:bash的登录与欢迎信息: /etc/issue,/etc/motd
  2. 旷世的忧伤:Linux 服务器维护简易指南
  3. Kokodayo:在 Linux Shell 的登录欢迎语里……放“图片”!

> 下载少数派 客户端 、关注 少数派公众号 ,发现更多有趣的终端玩法 :video_game:

> 特惠、好用的硬件产品,尽在 少数派sspai官方店铺


About Joyk


Aggregate valuable and interesting links.
Joyk means Joy of geeK