/etc/{issue,motd,profile}文件

-- TOC --

/etc/issue 与 /etc/motd 作用一致,都是用于显示欢迎信息,区别在于 /etc/issue 是在 login 提示符之前显示,而 /etc/motd 则在在用户成功登录系统之后显示。

/etc/issue

这个文件的内容,会在出现login之前显示出来,这个文件内容支持一些转义指令。

\d 本地日期
\l 显示TTY编号
\m 显示CPU的ISA(uname -m)
\n 显示hostname
\o 显示domain name
\r 操作kernel版本(uname -r)
\t 本地时间
\s 操作系统的名称(uname [-s])
\v 操作系统的版本(uanme -v)

getty命令的-i参数,可以抑制/etc/issue文件的显示!-w参数,需要用户回车一下,才显示出来,login显示在/etc/issue之后,当然也要回车一下才会出现!-f指令可以替换掉/etc/issue,命令行中重新指定一个文件issue!

/etc/motd

motd:message of today!

这个文件的内容,在login之后显示,没有转义。可以在这个文件里面输入一些自己容易忘记的事情,每次登录都会提醒一下。

网络登录时,也可以显示motd信息,在sshd_config中配置!同下面介绍的/etc/issue.net文件。

example

issue_motd

注意:欢迎语句最好不要写 welcome 之类的欢迎内容,最好写“非注册用户禁止登陆”之类的警告信息。因为在美国曾有黑客因为入侵的主机写有“欢迎来访”的语句,在庭审的时候被判无罪!

/etc/issue.net

我觉得这个文件的名称,只是一个传统约定,因为这个名称表达出来的含义,是当用户通过网络登录系统之前,要显示的内容,并且不支持转义符号!

要开启这个功能,还需要配置sshd_config中的Banner,在Banner后面指定一个文件名(请参考ssh服务器配置)。我测试了一下下:

$ ssh localhost
Ubuntu 20.04.3 LTS \n \l

xinlin@localhost's password: 

远程登录后,/etc/motd文件内容也会显示出来。但Ubuntu还会显示很多自己的信息。

/etc/profile

用户登录后自动执行的第一个shell脚本,用来设置一些全局的环境变量,所谓全局,即对所有用户有效。执行完这个脚本后,才回去执行用户自己的环境脚本,如~/.bashrc等。

$ cat /etc/profile
# /etc/profile: system-wide .profile file for the Bourne shell (sh(1))
# and Bourne compatible shells (bash(1), ksh(1), ash(1), ...).
...

一些重要的环境变量,比如PATH,PS1和PS2,就可以在此文件中设置。

如何设置PS1和PS2

PS1是主要的提示符,PS2是在有换行输入的时候看到的提示符。

PS1:基本提示符(格数如下,用法如右):PS1="[\u@\h \w]\$"

PS2:附属提示符,一般都设置为“>”。 

提示符本质上就是可以做一些转义的字符串,当然可以设置颜色了。

本文链接:https://cs.pynote.net/sf/linux/sys/202111163/

-- EOF --

-- MORE --