想让自己的登录界面显示点什么东西,但又不想用neofetch,所以花了一点时间改造了下自己终端的登录信息。这个教程不仅适用于linux,macOS也是可以的。我就是对mac的终端做的魔改。目前的(大半)成品:
什么是MOTD
MOTD,全称Message of the Day,也就是终端上一登录就会显示的玩意,而一般MOTD是空的,也就是登录时不会显示任何信息。要想自定义登录消息,我们需要对MOTD做一些改动。MOTD的位置一般在/etc/motd
。
在MOTD里加一点文字
一般的资料都会提到这样一条命令:
sudo pico /etc/motd
这里的pico
是终端的一种编辑器,实际操作时用哪种编辑器都随便,我就因为自己的使用习惯用的vim。打开vim,编辑/etc/motd
,加入文字,完事。
一些好用的插件
给文字上点色
我在这个环节上卡的比较久,主要是发现用vim编辑无法正确解析设置文字属性的字符串,又暂时没有找到其它比较可行的方法。
尝试1:旁门邪道(误)
我先试了一招,在其它目录上建了一个sh脚本,用vim编辑这个脚本,最后把它的内容复制到MOTD。
touch /tmp/motd.sh && chmod +x /tmp/motd.sh
# Editing the script
sudo sh -c '/tmp/mtod.sh > /etc/motd'
编辑过的sh文件如下图所示:
从代码中不难看出来,正是下面的代码决定了不同文字的颜色:
$(tput setaf [number])
而数字与颜色的对应关系如下:
数字 | 颜色 |
---|---|
0 | 灰色 |
1 | 红色 |
2 | 绿色 |
3 | 黄色 |
4 | 蓝色 |
5 | 紫红色 |
6 | 青色 |
7 | 白色 |
这种方法既有优点有有缺点,至少在我输入命令的时候还是觉得太繁琐了。不过设置动态MOTD应该只能通过这种方式了吧。
尝试2:编辑器的一次性编辑方法(仅限vim)
在半成品完成后,我又回头看了一下MOTD里面的内容,结果是这样的:
提示终端添加颜色和背景的语句格式是:
<ESC>[{attr};{fg};{bg}m
注意截图里面深灰色的字符,那些字符代表的是vim的escape字符,输入是Ctrl + v + Esc、显示是^[
、而且复制粘贴会失效,结尾还有<ESC>(B<ESC>[m
这一行。也就是说,之前一直纠结的parsing问题,还真是因为把vim的escape字符给弄错了?
经过实验结果就是,that’s it!破案!
终端MOTD的自定义属性
另外编辑器支持其它自定义属性,可以参考这个表:
{attr} | 属性 |
---|---|
0 | 恢复通用模式 |
1 | 增加亮度 |
2 | 淡化 |
3 | 下划线 |
5 | 闪烁 |
7 | 反转 |
8 | 隐藏 |
22 | 普通 |
24 | 取消下划线 |
25 | 取消闪烁 |
27 | 取消反转 |
{fg} | 字体颜色 |
---|---|
30 | 黑色 |
31 | 红色 |
32 | 绿色 |
33 | 黄色 |
34 | 蓝色 |
35 | 紫红色 |
36 | 青色 |
37 | 白色 |
{bg} | 背景颜色 |
---|---|
40 | 黑色 |
41 | 红色 |
42 | 绿色 |
43 | 黄色 |
44 | 蓝色 |
45 | 紫红色 |
46 | 青色 |
47 | 白色 |