『忘了再学』Shell基础 — 23、其他环境变量配置文件

1、注销时生效的环境变量配置文件

在用户退出登录时,只会调用一个环境变量配置文件,就是~/.bash_logout文件。

这个文件默认没有写入任何内容,可是如果我们希望再退出登录时执行一些操作,比如清除历史命令,或者备份某些数据,就可以把命令写入这个文件。

2、其他配置文件

还有一些环节变量配置文件,最常见的就是~/.bash_history文件,也就是历史命令保存文件。

3、Shell登录信息相关文件

(1)/etc/issue文件说明

我们在登录tty1-tty6这六个本地终端时,会有几行的欢迎界面。

这些欢迎信息是保存在哪里的?可以修改吗?

当然可以修改,这些欢迎信息是保存在/etc/issue文件中,

该文件就是一个普通文件显示,配置的内容,重启生效。

我们查看下这个文件:

[root@localhost ~]# cat /etc/issue # 当前CentOS系统的版本 CentOS release 6.8 (Final) # 当前系统的主要相关信息 Kernel r on an m  

可以支持的转义符我们可以通过man agetty命令查询,在表中我们列出常见的转义符作用:

转义符 作用
d 显示当前系统日期。
s 显示操作系统名称。
l 显示登录的终端号,这个比较常用。
m 显示硬件体系结构,如1386,1686等。
n 显示主机名。
o 显示域名。
r 显示内核版本。
t 显示当前系统时间。
u 显示当前登录用户的序列号。

注意:该欢迎信息,值对本地的tty1-tty6终端生效,远程终端,如ssh登陆的终端是看不到上面信息的。

(2)/etc/issue.net文件说明

/etc/issue文件是在本地终端登录时显示欢迎信息的文件,如果是远程登录(如ssh远程登录,或telnet远程登录)需要显示欢迎信息,则需要配置/etc/issue.net文件。

使用这个文件时需要注意:

  • 首先,在/etc/issue文件中支持的转义符,在/etc/issue.net文件中是不能使用的。
  • 其次,ssh远程登录是否显示/etc/issue.net文件中的欢迎信息,是由ssh的配置文件决定的。
  • 如果我们需要ssh远程登录可以查看/etc/issue.net的欢迎信息,那么首先需要修改ssh的配置文件/etc/ssh/sshd_config,加入如下内容:
    [root@localhost ~]# cat /etc/ssh/sshd_config  # …省略部分输出…  # 把Banner none的注释打开 # 然后添加/etc/issue.net文件在Banner后 # 使issue.net文件生效  # no default banner path # Banner none Banner /etc/issue.net  # …省略部分输出… 

    这样在ssh远程登录时,也可以显示欢迎信息,只是不再可以识别dl等信息了。

  • 配置完成/etc/issue.net文件,重启远程终端即可。

(3)/etc/motd文件说明

/etc/motd文件中也是显示欢迎信息的,

这个文件和/etc/issue/etc/issue.net文件的区别是:
/etc/issue/etc/issue.net是在用户登录之前显示欢迎信息,
/etc/motd是在用户输入用户名和密码,正确登录之后显示欢迎信息。

/etc/motd文件中的欢迎信息,不论是本地登录,还是远程登录都可以显示。

提示:

更多的建议在/etc/motd文件中写一些警告信息,而不是欢迎信息。

/etc/motd文件是一个空文件,直接编辑你需要显示的内容即可。

配置完成/etc/motd文件,重启远程终端即可。

4、定义Bash快捷键

查询系统中所有生效的快捷键

[root@localhost ~]# stty -a 

修改Bash快捷键:

# 格式 [root@localhost ~]# stty 关键字 快捷键   # 查看查询系统中所有生效的快捷键 [root@localhost ~]# stty -a speed 38400 baud; rows 24; columns 87; line = 0; intr = ^C; quit = ^; erase = ^?; kill = ^U; eof = ^D; eol = <undef>; eol2 = <undef>; swtch = <undef>; start = ^Q; stop = ^S; susp = ^Z; rprnt = ^R; werase = ^W; lnext = ^V; flush = ^O; min = 1; time = 0; -parenb -parodd cs8 -hupcl -cstopb cread -clocal -crtscts -cdtrdsr -ignbrk -brkint -ignpar -parmrk -inpck -istrip -inlcr -igncr icrnl ixon -ixoff -iuclc -ixany -imaxbel -iutf8 opost -olcuc -ocrnl onlcr -onocr -onlret -ofill -ofdel nl0 cr0 tab0 bs0 vt0 ff0 isig icanon iexten echo echoe echok -echonl -noflsh -xcase -tostop -echoprt echoctl echoke  # 修改intr快捷键 # 定义ctrl+p快捷键为强制终止,^字符只要手工输入即可。 [root@localhost ~]# stty intr ^p  # 查看查询系统中所有生效的快捷键 [root@localhost ~]# stty -a speed 38400 baud; rows 24; columns 87; line = 0; intr = ^P; quit = ^; erase = ^?; kill = ^U; eof = ^D; eol = <undef>; eol2 = <undef>; swtch = <undef>; start = ^Q; stop = ^S; susp = ^Z; rprnt = ^R; werase = ^W; lnext = ^V; flush = ^O; min = 1; time = 0; -parenb -parodd cs8 -hupcl -cstopb cread -clocal -crtscts -cdtrdsr -ignbrk -brkint -ignpar -parmrk -inpck -istrip -inlcr -igncr icrnl ixon -ixoff -iuclc -ixany -imaxbel -iutf8 opost -olcuc -ocrnl onlcr -onocr -onlret -ofill -ofdel nl0 cr0 tab0 bs0 vt0 ff0 isig icanon iexten echo echoe echok -echonl -noflsh -xcase -tostop -echoprt echoctl echoke  

提示:系统默认的快捷键,并不建议更改,这里只是告诉你可以修改。

发表评论

相关文章