上两节按照用户登录时的配置文件生效流程(正常登录和非正常登录),了解了流程上的各个环境变量配置文件的功能。本节学习其它几个常用的环境变量配置文件。
本节总览:
其它环境变量配置文件 | 主要作用 |
---|---|
~/.bash_logout | 注销时生效的环境变量配置文件 |
~/.bash_history | 保存用户各自的历史命令 |
/etc/issue | 保存本地终端登录欢迎信息,注意对远程登录是不起作用的 |
/etc/issue.net | 保存远程终端欢迎信息,注意转义符在这个文件中不能使用 |
/etc/motd | 保存欢迎信息,不管是远程登录还是本地登录,但会在成功登录后显示 |
[1]~/.bash_logout
这是注销时生效的环境变量配置文件,它是家目录下的,所以针对不同的用户有不同的文件,每一个用户都有各自的这个文件。
可以看到这个文件默认是空的,如果想在用户退出时执行一些命令,比如习惯清空历史命令,就可以把”history -c”写入这个文件中去。(不建议清空历史命令,不方便排错,如果在历史命令中输入了明文的某些服务的用户名和密码,建议清空)
[2]~/.bash_history
上一节学过,历史命令条数的环境变量HISTSIZE是保存在/etc/profile里,至于这个值能设置多大,取决于这些历史命令保存在哪里,实际上就是保存在~/.bash_history这个配置文件中。
显然,也是每个用户自己有自己的这个配置文件,用来保存自己的操作历史。
用history查看历史命令:
再查看一下~/.bash_history配置文件:
可以看到相差了几行,这几行就是本次登录操作的历史命令,还没有写到文件中去,而是记录在内存中,正确注销时才会写入。
[3]/etc/issue
这个配置文件保存本地终端登录欢迎信息,注意对远程登录是不起作用的。
“欢迎信息”实际上应指警告信息,应写入”如果你没有权限,请你马上退出”这样的字眼,警告那些登录你的计算机的人。
\l是比较常用的,Linux本机有6个字符终端,如果不加\l它们很难看出有什么区别,加了它就知道你登陆的是TTY1还是TTY2还是什么。如在这个文件中新增一行:
再去查看本机的登录欢迎信息:
可以看到登陆的本地字符终端是TTY1。要想切换本地字符终端,在本机中按Alt+F2:
可以清楚地看到切换成了TTY2终端。在本机中按Alt+F1就可以切换回来。
[4]/etc/issue.net
这个配置文件保存远程终端欢迎信息,注意转义符在这个文件中不能使用。可以看到这个文件中默认有一些欢迎信息:
但是在远程登录时并没有看到:
这是因为是否显示此欢迎信息,由SSH的配置文件/etc/ssh/sshd_config决定,需加入”Banner /etc/issue.net”行并重启SSH服务才能生效。打开这个SSH的配置文件看一下:
它默认是注释的,所以把它更改一下:
然后重启SSH服务:
[root@localhost ~]# service sshd restart
停止 sshd: [确定]
正在启动 sshd: [确定]
这时候logout注销再重新远程登录看一下:
就可以看到远程登录的提示信息了,也可以看到在默认信息中尝试保存的转义字符在这个文件中是不生效的,所以\r和\m原样输出了出来。
相比刚刚那个本机登陆的文件,警告信息更应该写在这个文件中,因为远程操作服务器的情形要比操作本机来的多得多。
[5]/etc/motd
这个配置文件也是保存欢迎信息的,不管是远程登录还是本地登录,都会显示这个文件中的欢迎信息。但是前两个文件都是在登录成功之前显示的欢迎信息,而这个文件保存的是在登录完成后显示的欢迎信息。
这个文件默认是空的,尝试写入一些信息并保存退出:
这时候logout注销再重新远程登录看一下:
在本机中登录看一下:
可以看到不论远程登录还是本地登录都可以显示出来,并且是在成功登录以后才输出。