登录提示符
常用参数及含义
在 /etc/bashrc
文件中会设定 PS1
变量,这个变量设置的就是登录之后的提示符信息
1 | [root@localhost ~]$ echo $PS1 |
不同的参数代表的含义不同
\d
:代表日期,格式为 weekday month date,例如:”Mon Aug 1”\H
:完整的主机名称\h
:仅取主机名中的第一个名字\t
:显示时间为24小时格式HH:MM;SS
\T
:显示时间为12小时格式\A
:显示时间为24小时格式HH:MM
\u
:当前用户的账号名称\v
:BASH 的版本信息\w
:完整的工作目录名称\W
:利用basename
取得工作目录名称,只显示最后一个目录名\#
:下达的第几个命令\$
:提示字符,如果是root用户,提示符为 # ,普通用户则为 $
所以 shell 默认的命令行提示信息的格式 PS1='[\u@\h \W]\$ '
的意思就是:
1 | [当前用户的账号名@主机名的第一个名字 工作目录的最后一层目录名]# |
颜色参数
在 PS1
中还可以设置字符的颜色,其格式为 \[\e[F;Bm\]........\[\e[0m\]
,其中 \[\e[
作为颜色设定的开始。F
为字体颜色,编号范围是 30-37
,B
为背景颜色,编号范围是 40-47
,而 \[\e[0m\]
作为颜色设定的结束。
下面是颜色对照表:
F | B | 颜色 |
---|---|---|
30 | 40 | 黑色 |
31 | 41 | 红色 |
32 | 42 | 绿色 |
33 | 43 | 黄色 |
34 | 44 | 蓝色 |
35 | 45 | 紫红色 |
36 | 46 | 青蓝色色 |
37 | 47 | 白色 |
个性化配置命令提示符
在 linux 上终端命令行默认全部为白色,会经常导致命令与输出内容难以分辨,于是我们可以通过自定义 PS1
环境变量来解决这个问题。
一行显示日期和时间,一行显示标准的提示符
1 | [user1@study ~]$ export PS1='\D{%c} \w\n[\u@\H]\$ ' |
显示当前时间
1 | [user1@study ~]$ export PS1="\u@\h [\$(date +%k:%M:%S)]> " |
为了能永久生效,一般在 /etc/profile.d/
下自定义一个专门设置 PS1
的脚本并对其添加可执行权限。上面的格式只是设置了多行提示符,并没有对颜色和自己进行设置。
1 | [root@study ~]# cat /etc/profile.d/my-PS1.sh |
登录提示信息
登录前提示信息
每次登录系统时都会有提示信息,这个登录提示信息是针对本地终端 tty{1-6} 的,而并非类SSH登录。
本地终端提示信息默认在文件 /etc/issue
中
1 | [user1@study ~]$ cat /etc/issue |
文件中使用了转义符,下面做一个简要的说明
1 | \d:显示当前系统日期 |
远程终端提示信息默认在文件 /etc/issue.net
中,如:
1 | [user1@study ~]$ cat /etc/issue.net |
在 SSH 服务中默认并没有开启显示信息,要想在 SSH 登录时显示这些内容,可以在服务配置文件 /etc/ssh/sshd_config
文件中,把 参数Banner none
改为 Banner /etc/issue.net
,然后重启 sshd 服务重新登录就会看到显示信息。但是 Kernel \r on an \m
这行字符原样显示并没有进行转义,原因是远程信息提示不支持转义符的使用,一般就是用来写一些警告信息。
登陆后提示信息
使用环境变量配置文件来输出会比较易于定制,因为都是用 shell 来做的
1 | [user1@study ~]$ cat ~/.bash_profile |
重新登录后就会出现提示信息
1 | [root@study ~]# su - user1 |
生产环境的服务器最好做到什么信息都不要提示,以免带来安全问题。如果一定要写,建议写在 /etc/motd
文件中,并且最好写一些警告信息。默认这个文件是空的,将提示信息写入即可。
以下是几个供娱乐使用的提示信息模板
1 | [user1@study ~]$ cat /etc/motd |
1 | //////////////////////////////////////////////////////////////////// |
1 | /*** |
1 | /*** |
1 | // |
1 | ** |
1 | /*** |
1 | /*** |
1 | /*** |
1 | /*** |
1 | /*** _ |
1 | /*** |
1 | /*** |
1 | /*** |
1 | /*** |
1 | /*** |
1 |
|