自定义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 历史悠久,上面的字符画稍显陈旧在这里插入图片描述

通过图片转换

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

    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

运行以后默认配置就会看到如下的信息了。
在这里插入图片描述
这些信息还可以自定义的。

自定义显示项目+汉化

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
在这里插入图片描述
在这里插入图片描述

参考链接

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

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.rhkb.cn/news/259655.html

如若内容造成侵权/违法违规/事实不符,请联系长河编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

VMware虚拟机安装CentOS7

对于系统开发来说,开发者时常会需要涉及到不同的操作系统,比如Windows系统、Mac系统、Linux系统、Chrome OS系统、UNIX操作系统等。由于在同一台计算机上安装多个系统会占据我们大量的存储空间,所以虚拟机概念应运而生。本篇将介绍如何下载安…

鉴源论坛 · 观模丨形式化工程方法之需求建模(上)

作者 | 杨坤 上海控安可信软件创新研究院系统建模组 版块 | 鉴源论坛 观模 社群 | 添加微信号“TICPShanghai”加入“上海控安51fusa安全社区” 引言:需求建模是整个软件开发、测试验证与维护的基础。经过长期研究与实践,工业界与学术界均意识到&…

Linux之Shell

第 1 章 Shell 概述 1)Linux 提供的 Shell 解析器有 [zhaohadoop101 ~]$ cat /etc/shells /bin/sh /bin/bash /usr/bin/sh /usr/bin/bash /bin/tcsh /bin/csh2)bash 和 sh 的关系 [zhaohadoop101 bin]$ ll | grep bash -rwxr-xr-x. 1 root root 941880…

JVM--- 垃圾收集器详细整理

目录 一、垃圾收集需要考虑的三个事情: 二、垃圾回收针对的区域 三、如何判断对象已死 1.引用计数算法: 2.可达性分析算法 四、引用 五、生存还是死亡? 六、回收方法区 七、垃圾收集算法 1.分代收集理论 2.标记-清除算法 3.标记-复制算…

【qt创建线程两种方式】

QT使用线程的两种方式 1.案例进度条 案例解析: 如图由组件一个进度条和三个按钮组成,当点击开始的时候进度条由0%到100%,点击暂停,进度条保持之前进度,再次点击暂停变为继续,点击停止按钮进度条停止。 案…

案例:CentOS8 在 MySQL8.0 实现半同步复制

异步复制 MySQL 默认的复制即是异步的,主库在执行完客户端提交的事务后会立即将结果返给给客户端,并不关心从库是否已经接收并处理,这样就会有一个问题,主节点如果 crash 掉了,此时主节点上已经提交的事务可能并没有传…

.NET Core WebAPI中使用Log4net 日志级别分类并记录到数据库

一、效果 记录日志为文档 记录日志到数据库 二、添加NuGet包 三、log4net.config代码配置 <?xml version"1.0" encoding"utf-8" ?> <log4net><!-- Debug日志 --><appender name"RollingFileDebug" type"log4net…

Java学习24--异常

异常 软件运行过程中的各种意料之外叫做Exception&#xff0c;比如要读取的文件找不到&#xff0c;准备联网发现没网&#xff0c;等着int参数来了个String 注意Error和exception不一样&#xff0c;error错的比较猛&#xff0c;一般是直接把JAVA整个搞崩了&#xff0c;比如内存…

数据结构通讲

目录 集合源码详解 一、常见数据结构讲解 1. 线性数据结构 1.1 数组 1.2 队列 1.3 链表 1.3.1 单向链表 1.3.2 双向链表 1.4 栈 2. 非线性数据结构 2.1 树 2.2 二叉树 2.2.1 概念介绍 2.2.2 遍历操作 2.2.3 删除节点 2.2.4 查找局限性 2.2.5 AVL&#xff08; …

linux kernel 内存踩踏之KASAN_SW_TAGS(二)

一、背景 linux kernel 内存踩踏之KASAN&#xff08;一&#xff09;_kasan版本跟hasan版本区别-CSDN博客 上一篇简单介绍了标准版本的KASAN使用方法和实现&#xff0c;这里将介绍KASAN_SW_TAGS和KASAN_HW_TAGS 的使用和背后基本原理&#xff0c;下图是三种方式的对比&#x…

Ps:焦点堆栈

焦点堆栈 Focus Stacking是一种摄影和图像处理技术&#xff0c;通过合并多张在不同焦距拍摄的照片来创建一张具有更大景深的图像&#xff0c;特别适用于微距摄影、风景摄影和任何需要在整个场景中保持尖锐对焦的情况。 ◆ ◆ ◆ 拍摄注意事项 1、使用三脚架 为了确保图像之间…

【Node-RED】安全登陆时,账号密码设置

【Node-RED】安全登陆时&#xff0c;账号密码设置 前言实现步骤密码生成setting.js 文件修改 安全权限 前言 Node-RED 在初始下载完成时&#xff0c;登录是无账号密码的。基于安全性考虑&#xff0c;本期博文介绍在安全登陆时&#xff0c;如何进行账号密码设置。当然&#xff…

git相关内容

一.git安装 该操作相信不用介绍了&#xff0c;为什么用yum&#xff0c;大家也是非常清楚的。 如果是root账户&#xff1a;yum -y install git 如果是普通账户&#xff1a; sudo yum -y install git 二.git和gitee/github区别 Git&#xff08;读音为/gɪt/&#xff09;是一个…

CDP和Chrome

CDP和Chrome CDP和WebDriver Protocol WebDriver和 Chrome DevTools Protocol&#xff08;CDP&#xff09; 是用于自动化浏览器的两个主要协议&#xff0c;大多数的浏览器自动化工具都是基于上述其中之一来实现的。可以通过这两种形式来和浏览器交互&#xff0c;通过代码来控…

语义分割-基础知识

1.cls_iou计算: cls0_iou预测正确的像素个数/&#xff08;预测为该类别的像素个数真实标签为该类别的像素个数-预测正确的像素个数&#xff09; mean_iou各个类别的像素预测准确值相加/像素总个数2.转置卷积(Transposed Convolution) 转置卷积不是卷积的逆运算 转置卷积也是卷…

Java on VS Code 2024年1月更新|JDK 21支持!测试覆盖率功能最新体验!

作者&#xff1a;Nick Zhu - Senior Program Manager, Developer Division At Microsoft 排版&#xff1a;Alan Wang 大家好&#xff0c;欢迎来到 Visual Studio Code for Java 2024年的第一期更新&#xff01;提前祝愿大家春节快乐&#xff01;在本博客中&#xff0c;我们将有…

Vue+Vite项目初建(axios+Unocss+iconify)

一. 创建项目 npx --package vue/cli vue 项目成功启动后&#xff0c;进入http://localhost:3200&#xff0c;即可进入创建好的页面(假设启动端口为3200) 二. 测试网络通讯模块 假设有本地服务器地址localhost:8000提供接口服务&#xff0c;接口为localhost:8000/token&#…

使用 apt 源安装 ROCm 6.0.x 在Ubuntu 22.04.01

从源码编译 rocSolver 本人只操作过单个rocm版本的情景&#xff0c;20240218 ubuntu 22.04.01 1&#xff0c;卸载原先的rocm https://docs.amd.com/en/docs-5.1.3/deploy/linux/os-native/uninstall.html # Uninstall single-version ROCm packages sudo apt autoremove ro…

openresty (nginx)快速开始

文章目录 一、什么是openresty&#xff1f;二、openresty编译安装1. 编译安装命令1.1 编译完成后路径1.2 常用编译选项解释 2. nginx配置文件配置2.1 nginx.conf模板 3. nginx常见配置一个站点配置多个域名nginx配置中location匹配规则 三、OpenResty工作原理OpenResty工作原理…

蓝牙BLE学习-概述

1. 简介 1.1 蓝牙发展历程 蓝牙&#xff0c;直接来自于一位国王的名字--King Harald ‘Bluetooth Gromsson。这位国王因两件事留名于史&#xff0c;其一是在公园958年统一了丹麦和挪威&#xff0c;其二是在其死后&#xff0c;其牙齿呈现出暗蓝色的颜色&#xff0c;因而得名蓝牙…