标签:
环境变量配置文件中主要是定义对系统操作环境生效的系统默认环境变量,如PATH等。当你登陆Linux系统启动一个bash shell时,默认情况下bash会几个文件中查找命令,bash检查的启动文件取决于bash shell的方式。启动bash shell的方式有三种:
(1).登陆时当作默认登陆的shell
(2).作为非登陆的交互式shell
(3).作为运行脚本的非交互shell
环境变量配置文件:
/etc/profile
/etc/profile.d/*.sh
~/.bash_profile #每个用户下面都有
~/.bashrc #每个用户下面都有
/etc/bashrc
1.默认登陆shell。
当登陆linux系统时,bash shell会作为默认登陆shell启动,shell会一次读取以下文件:
/etc/profile--> ~/.bash_profile--> ~/.bashrc -->/etc/bashrc-->命令提示符
/etc/profile的作用:
USER变量 LOGNAME变量 MAIL变量 PATH变量 HOSTNAME变量 HISTSIZE变量 umask变量 调用/etc/profile.d/*.sh文件
/etc/profile文件是系统上默认的bash shell主启动文件。系统上每个用户登录时都会执行这个启动文件。bash z中有段重要的话:
# /etc/profile # System wide environment and startup programs, for login setup # Functions and aliases go in /etc/bashrc # It‘s NOT a good idea to change this file unless you know what you # are doing. It‘s much better to create a custom.sh shell script in # /etc/profile.d/ to make custom changes to your environment, as this # will prevent the need for merging in future updates.
/etc/profile文件有个for语句,逐一访问/etc/profile.d目录下的每个文件./etc/profile.d目录为系统提供了一个存放用户登录时要执行的应用专属的启动文件的地方。该目录下的文件基本都跟系统上的特定应用有关。大部分应用会创建两个自启文件:bash shell的.sh文件和c shell的.csh文件。lang.sh和lang.csh会判定系统上的默认语言字符集,然后正确的设置LANG变量
~/.bash_profile的作用
1.调用~/.bashrc文件。2.在PATH变量后边加入了“:$HOME/bin”
[root@future ~]# cat .bash_profile # .bash_profile # Get the aliases and functions if [ -f ~/.bashrc ]; then . ~/.bashrc fi # User specific environment and startup programs PATH=$PATH:$HOME/bin export PATH
~/.bashrc文件作用:
1.查看/etc目录下公用的bashrc文件。2.为用户提供了定制自己的别名和私有脚本函数功能
[root@future ~]# cat .bashrc # .bashrc # User specific aliases and functions alias rm=‘rm -i‘ alias cp=‘cp -i‘ alias mv=‘mv -i‘ # Source global definitions if [ -f /etc/bashrc ]; then . /etc/bashrc fi
/etc/bashrc:
设置了一些环境变量,但并没有执行export命令让它们成为全局变量。/etc/bashrc中也有一段重要的话。/etc/bashrc也会去执行/etc/profile.d目录下的文件。
[root@future ~]# cat /etc/bashrc # /etc/bashrc # System wide functions and aliases # Environment stuff goes in /etc/profile # It‘s NOT a good idea to change this file unless you know what you # are doing. It‘s much better to create a custom.sh shell script in # /etc/profile.d/ to make custom changes to your environment, as this # will prevent the need for merging in future updates.
交互式shell
如果你的shell不是登陆系统时启动的(比如在命令行提示符下输入bash),则这种shell叫做交互式shell。交互式shell不能像登陆shell一样运行,但也提供了命令行提示符来输入命令。
如果bash是作为交互式shell启动的,则不会去访问/etc/profile,而是去用户的HOME目录检查.bashrc是否存在.而上文提过,.bashrc文件有两个作用。因此通用的/etc/bashrc启动文件会被系统上每个交互式shell执行。
非交互式shell:
系统执行shell脚本时用的就是这种shell.当每次运行脚本时,仍然要运行特定的启动文件。因此,bash shell提供了BASH_ENV的环境变量。当shell启动一个非交互式进程时,它会检查这个环境变量来查看要执行的启动文件,如果有指定
则会去执行文件里的内容。在Linux的发行版中,默认这环境变量并未设置。
其他环境变量文件:
~/.bash_logout:退出时执行,可在文件中加入退出时所要执行的命令
/etc/issue 本地终端欢迎信息
/etc/issue.net 远程终端欢迎信息
1.转义符在/etc/issue.net文件中不能使用
2.是否显示此欢迎信息,由ssh的配置文件/etc/ssh/sshd_config决定,加入Banner /etc/issue.net行才能显示,需重启SSH服务。
/etc/motd
不管是本地登录,还是远程登陆,都可以显示此信息
标签:
原文地址:http://www.cnblogs.com/XYJK1002/p/5367393.html