自定义Linux登录自动提示语

设置提示语的方式

在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 历史悠久,上面的字符画稍显陈旧自定义Linux登录自动提示语_第1张图片

通过图片转换

V 友 Kokodayo 基于 Img2Motd 开发了网页版的 图片转Linux Shell彩色文本。不过对图片和终端的要求有点高。图片的长宽尽量控制在 100 * 100 以内,同时尽量避免使用过于复杂的图案。
自定义Linux登录自动提示语_第2张图片

文字特效

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

Neofetch

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

Neofetch 是一款用于显示系统信息的脚本,同类的工具还有 ScreenFetch 和 Linux_Logo。Neofetch 除了可以显示 ASCii 字符画,还可以通过 w3m-img 等运行库在终端中显示全彩图片

自定义Linux登录自动提示语_第4张图片

安装方法

  • Debian / Ubuntu

    apt update && apt upgrade -y
    apt install neofetch -y
    
  • CentOS / Fedora / RHEL

    1. 安装 epel-release

      sudo yum install epel-release
      
    2. 添加第三方软件源

      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
      
    3. 使用包管理器安装 neofetch

      sudo yum install neofetch
      
  • macOS

    brew install neofetch
    

运行

neofetch

运行以后默认配置就会看到如下的信息了。
自定义Linux登录自动提示语_第5张图片
这些信息还可以自定义的。

自定义显示项目+汉化

vim ~/.config/neofetch/config.conf

修改print_info()相关配置
我的配置如下,我翻译的不一定准确,仅供参考。

print_info() {
    info title
    info underline
    info "操作系统" distro
    info "型  号" model
    info "内核版本" kernel
    info "开机时间" uptime
    prin "当前时间" "$(date +%Y年%m月%d"日 "%H时%M分%S秒)"
    info "S h e ll" shell
    info "分  辨  率" resolution
    info "主  题" wm_theme
    info "Theme" theme
    info "Icons" icons
    info "终  端" term
    info "终端字体" term_font
    info "处  理  器" cpu
    info "显卡设备" gpu
    info "内  存" memory
    info "CPU 已用" cpu_usage
    info "剩余电量" battery
    info "内  网  IP" local_ip
    info "公  网  IP" public_ip
    info "用  户" users
    info "语  言" 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
自定义Linux登录自动提示语_第6张图片

Neofetch
自定义Linux登录自动提示语_第7张图片
自定义Linux登录自动提示语_第8张图片

参考链接

  1. 给你的终端加点料 —— 自定义欢迎语
  2. CentOS 7安装neofetc并DIY配置
  3. Linux 公社:bash的登录与欢迎信息: /etc/issue,/etc/motd
  4. 旷世的忧伤:Linux 服务器维护简易指南
  5. Kokodayo:在 Linux Shell 的登录欢迎语里……放“图片”!

你可能感兴趣的:(linux,运维,服务器)