设置提示语的方式
在Linux系统中,可以通过修改几个特定的文件来实现在用户登录时自动弹出提示语。以下是几个常用的方法:
1. 修改/etc/issue
文件:
这个文件用于显示本地登录前的提示信息
sudo vi /etc/issue
在项目合作的时候,有时候服务器被多人使用;有时候需要设置提示信息,提醒登录的同学,当前系统正在被我占用;当然在公司场景中,比如发布更新维护之类的信息也能使用提示信息进行通知:
登录信息可以修改三个文件:
- /etc/issue 本地登陆显示的信息,本地登录前
- /etc/issue.net 网络登陆显示的信息,登录后显示,需要由sshd配置
/etc/issue:
\S
Kernel \r on an \m
含义:
\d #本地端时间的日期;
\l #显示当前tty的名字即第几个tty;
\m #显示硬体的架构 (i386);
\n #显示主机的网路名称;
\o #显示 domain name;
\r #当前系统的版本 (相当于 uname -r)
\t #显示本地端时间的时间;
\u #当前有几个用户在线。
\s #当前系统的名称;
\v #当前系统的版本;
2. 修改/etc/motd
文件:
在类 Unix 系统中,/etc/motd 是一个包含「今日消息(Message of the day)」的文件。比起电子邮件,使用 Motd 给所有用户发送消息显得更有效率。其它操作系统中也可能有这一功能,比如 Multics 中的 Motd 信息分段。/etc/motd 的内容会在用户成功登录后由 Unix 登录命令显示,整个过程发生在 Shell 登录之前。较新的类 Unix 系统可以生成动态消息。Motd 也被运用在其它领域,比如 IRC 服务器、半条命系列游戏等。
这个文件用于显示登录后的提示信息
sudo vi /etc/motd
在文件中添加你的提示语,然后保存并退出编辑器。
3. 使用/etc/update-motd.d/
目录:
在某些Linux发行版中,如Ubuntu,/etc/update-motd.d/
目录下的脚本会在/etc/motd文件生成之前执行。你可以在这个目录下创建一个脚本,例如/etc/update-motd.d/99-custom
,并在其中添加你的提示信息。
4. 使用/etc/profile
或~/.bashrc
(对于bash shell):
这些文件在用户登录时执行,你可以在这些文件的末尾添加一些命令来显示提示信息。例如,在~/.bashrc文件中添加:
echo "欢迎登录到系统,这里是你的提示语"
这样,每次用户登录时,这个提示语都会显示。
哪里 Get 到好看的提示信息?
ASCiiWorld
在 AsciiWorld 中提供了现成的图案,左侧可按照分类来搜寻自己需要的字符画。不过 ASCiiWorld 历史悠久,上面的字符画稍显陈旧
通过图片转换
V 友 Kokodayo 基于 Img2Motd 开发了网页版的 图片转Linux Shell彩色文本。不过对图片和终端的要求有点高。图片的长宽尽量控制在 100 * 100 以内,同时尽量避免使用过于复杂的图案。
文字特效
Patorjk 可以根据自己输入的文字,并选择对应的字体来生成字符画,字体种类比较丰富(老板:每天给我换 150 种,但遗憾的是生成语言仅支持英文,如果有中文生成需要的,可以考虑使用 ASCii 字符画生成器来实现。
Neofetch
当然,除了静态的字符画,我们还可以选择使用一些工具来动态显示欢迎信息。
Neofetch 是一款用于显示系统信息的脚本,同类的工具还有 ScreenFetch 和 Linux_Logo。Neofetch 除了可以显示 ASCii 字符画,还可以通过 w3m-img 等运行库在终端中显示全彩图片
安装方法
-
Debian / Ubuntu
apt update && apt upgrade -y apt install neofetch -y
-
CentOS / Fedora / RHEL
-
安装 epel-release
sudo yum install epel-release
-
添加第三方软件源
curl -o /etc/yum.repos.d/konimex-neofetch-epel-7.repo https://copr.fedorainfracloud.org/coprs/konimex/neofetch/repo/epel-7/konimex-neofetch-epel-7.repo
-
使用包管理器安装 neofetch
sudo yum install neofetch
-
-
macOS
brew install neofetch
运行
neofetch
运行以后默认配置就会看到如下的信息了。
这些信息还可以自定义的。
自定义显示项目+汉化
vim ~/.config/neofetch/config.conf
修改print_info()相关配置
我的配置如下,我翻译的不一定准确,仅供参考。
print_info() {info titleinfo underlineinfo "操作系统" distroinfo "型 号" modelinfo "内核版本" kernelinfo "开机时间" uptimeprin "当前时间" "$(date +%Y年%m月%d"日 "%H时%M分%S秒)"info "S h e ll" shellinfo "分 辨 率" resolutioninfo "主 题" wm_themeinfo "Theme" themeinfo "Icons" iconsinfo "终 端" terminfo "终端字体" term_fontinfo "处 理 器" cpuinfo "显卡设备" gpuinfo "内 存" memoryinfo "CPU 已用" cpu_usageinfo "剩余电量" batteryinfo "内 网 IP" local_ipinfo "公 网 IP" public_ipinfo "用 户" usersinfo "语 言" locale
}
配置完成以后,再次运行就能看到了
更高级的配置见:
https://github.com/dylanaraps/neofetch/wiki/Customizing-Info
更多 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
最终效果
Patorjk
Neofetch
参考链接
- 给你的终端加点料 —— 自定义欢迎语
- CentOS 7安装neofetc并DIY配置
- Linux 公社:bash的登录与欢迎信息: /etc/issue,/etc/motd
- 旷世的忧伤:Linux 服务器维护简易指南
- Kokodayo:在 Linux Shell 的登录欢迎语里……放“图片”!