您的位置:首页 > 运维架构 > Shell

Shell的环境变量配置文件

2016-06-08 08:57 453 查看

环境变量配置文件

Linux登录时,所用的环境变量配置文件

/etc/profile

/etc/profile.d/*.sh

~/.bash_profile

~/.bashrc

/etc/bashrc

注:在/etc目录下的环境变量配置文件对所有用户都生效,而在家目录中的环境配置只对指定用户生效



正常登陆情况下(不是系统启动过程而是输入用户名和密码登录时,或者注销用户重新登录),环境变量配置文件的调用过程:

// 正常登陆时环境变量配置文件的调用过程
/etc/profile
|
--/etc/profile.d/*
|
--/etc/profile.d/lang.sh
|
--/etc/sysconfig/i18n
|
~/.bash_profile
|
--~/.bashrc
|
--/etc/bashrc
|
--命令提示符

// 通过su方式切换用户的登录时
/etc/bashrc
|
--/etc/profile.d/*.sh
|
--/etc/profile.d/lang.sh
|
--/etc/sysconfig/i18n
|
--命令提示符
//一个普通交互式bash的加载环境变量配置文件过程是:
~/.bashrc
|
--/etc/bashrc
|
--/etc/profile.d/*.sh
|
--命令提示符


/etc/profile文件

USER变量

LOGNAME变量

MAIL变量

PATH变量

HOSTNAME变量

HISTSIZE变量

umask

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

umask权限

注意:

文件的最高权限为666

目录的最高权限为777

权限不能使用数字进行换算,而必须使用字母

umask定义的权限,是系统默认权限中准备丢弃的权限

具体使用可以参考:umask默认权限

/etc/bashrc

在该配置文件中有PS1提示符环境变量的定义,如果该文件没有被调用则无法显示PS1中定义的提示符信息。

例如:

// linux提示符信息
[root@localhost ~]#
// 变成了下面的情况
bash5.2#


原因:/etc/bashrc中定义了PS1提示符环境变量,它没有被调用

~/.bashrc 被删除后,就不会调用/etc/bashrc

单用户模式也不会调用/etc/bashrc

解决:

可以拷贝正常系统中的/etc/bashrc文件

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

~/.bash_logout

可以在Shell退出时执行一些命令,如清除历史命令
history -c


~/.bash_history

当前登录操作命令在退出shell时才保存在~/.bash_history,所以执行history查看历史命令的条数比.bash_history文件中的多

Shell登录信息

本地终端欢迎信息

/etc/issue文件

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

远程终端欢迎信息

/etc/issue.net文件

转义符在/etc/issue.net文件中不能使用

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

登录后欢迎信息

/etc/motd文件

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

参考

1.慕课网Linux课程

2. /etc/profile、~/.bash_profile等几个文件的执行过程
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: