Linux基础学习之Shell基础——环境变量配置文件

版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/zxllynu/article/details/85216780

1、什么是环境变量呢?

可以在父shell和子shell中都能调用的就是环境变量,只能在本shell中使用的变量就是普通的变量。

2、什么是环境变量配置文件呢?

linux 中所有需要永久生效的内容,都必须写入配置文件中;同样,对于环境变量,想要在系统重启

或者其他情况下,让该环境变量永久生效的方法,就是将环境变量信息写到环境变量配置文件中

3、source命令

功能:如果修改了环境变量的配置配置文件,必须退出,重新登录才能生效

source命令可以免去该过程

[root@localhost ~]# source 配置文件或

[root@localhost ~]# . 配置文件    (注意是 点 配置文件  )

4、环境变量配置文件简介:

环境变量配置文件中主要是定义对系统的操作环境生效的系统默认环境变量,比如

PATH、HISTSIZE、PSI、HOSTNAME等默认环境变量

通过set命令可以查出系统中所有的默认的变量,都是要写入配置文件才会永久生效的

具体有哪些配置文件呢?

/etc/profile

/etc/profile.d/*.sh

~/.bash_profile

~/.bashrc

/etc/bashrc

如上保存在/etc中的变量,所有登录过Linux系统的用户,使用到其中的变量都能生效

如果保存在~/ 目录下的文件,只对root用户生效

如果保存在其他用户家目录中的文件,只对某个用户生效

以点开头的是隐藏文件

5、如上已知,保存在/etc目录下的所有用户都会生效,所有用户登录时,系统都会去

读取该目录下的配置文件,

6、那配置文件之间的优先级呢?

如图,用户登录系统时,会按照如上次序读取这些配置文件

具体其他的,可以类似如上图调用顺序,依次去查找,理解其含义;

环境变量默认赋值分两种情况:

第一种:用户登录时;

第二种:通过切换shell等不通过用户输入用户名和密码时;

具体,可以通过

7、/etc/profile的作用:

》USER变量:

》LOGNAME变量:

》MAIL变量:

》PATH变量:

》HOSTNAME变量:

》HISTSIZE变量:

》umask:

》调用 /etc/profile.d/*.sh文件

8、~/.bash_profile的作用

》调用了~/.bashrc文件

》在PATH变量后面加入了“:$HOME/bin”这个目录

9、~/.bashrc的作用

》定义默认别名

》调用/etc/bashrc

10、/etc/bashrc的作用

》PSI变量

》umask

》PATH变量

》调用/etc/profile.d/*.sh文件

注:对于配置文件中,注释标识的no login shell 表示在不是通过输入密码登录的情况下有效。

除了登录时的环境变量配置文件信息,还有如以下配置文件:

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

》~/.bash_logout

默认该文件是空的,如何每次登录想要将某些内容清空,可以放在这里

11、其他配置文件

1)历史命令配置文件

》~/bash_history

2)Shell登录信息

》本地终端欢迎信息:/etc/issue

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

如上,在命令行窗口登录时,输入用户名前面出现的信息,远程登录时,是没有意义的,只对本地登录用户有效

[root@localhost ~]# vim /etc/issue

CentOS release 6.10 (Final)
Kernel \r on an \m

~                  

在此处可以根据上方表格内容提示,自定义欢迎界面上的信息

》针对远程终端用户的欢迎信息:/etc/issue.net

> 转义符在/etc/issue.net文件中不能使用,即斜杠加某字符;

> 是否显示此欢迎信息,由ssh的配置文件/etc/ssh/sshd_config决定,加入“Banner  /etc/issue.net”行才显示(记得重启ssh服务)

[root@localhost ~]# vim /etc/ssh/sshd_config 

#AllowTcpForwarding yes
#GatewayPorts no
#X11Forwarding no
X11Forwarding yes
#X11DisplayOffset 10
#X11UseLocalhost yes
#PrintMotd yes
#PrintLastLog yes
#TCPKeepAlive yes
#UseLogin no
#UsePrivilegeSeparation yes
#PermitUserEnvironment no
#Compression delayed
#ClientAliveInterval 0
#ClientAliveCountMax 3
#ShowPatchLevel no
#UseDNS yes
#PidFile /var/run/sshd.pid
#MaxStartups 10:30:100
#PermitTunnel no
#ChrootDirectory none

# no default banner path
#Banner none
Banner /etc/issue.net     #注意此处刚添加的内容
# override default of no subsystems
Subsystem       sftp    /usr/libexec/openssh/sftp-server

# Example of overriding settings on a per-user basis
#Match User anoncvs
#       X11Forwarding no
#       AllowTcpForwarding no
#       ForceCommand cvs server
"/etc/ssh/sshd_config" 138L, 3900C         

servertool   service      serviceconf  
[root@localhost ~]# service sshd restart
停止 sshd:                                                [确定]
正在启动 sshd:                                            [确定]
[root@localhost ~]# 
#然后断开连接重新登录

》》登陆后欢迎信息:/etc/motd

>不管是本地登录还是远程登录,都可以显示此中信息

猜你喜欢

转载自blog.csdn.net/zxllynu/article/details/85216780