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

Shell编程之环境变量配置文件

2015-08-07 17:51 656 查看
一、简介
1.变量类型:
用户自定义变量(本地变量)
环境变量:定义每个用户的操作环境,已学的有path,ps1;要想永久生效,要写入相对应的位置
预定义变量
位置参数变量
2.source命令
[root@localhost ~]# source 配置文件 或者
[root@localhost ~]# . 配置文件(点.后面有空格)
[root@localhost ~]# ./当前目录(这里没有空格)
修改配置文件后,必须注销重新登录才能生效,否则只能等下次重新登录
但是使用source命令可以不用重新登录
[root@localhost ~]# . .bashrc
.bashrc是隐藏文件
相当于:
[root@localhost ~]# source .bashrc
3.环境变量配置文件简介
PATH、HISTSIZE、PS1、HOSTNAME等环境变量写入对应的环境配置文件
环境变量配置文件中主要是定义对系统操作系统生效的系统默认环境变量,如PATH等
下面是一些一启动就生效的环境变量:
/etc/profile
/etc/profile.d/*.sh
/etc/bashc
~/.bash_profile
~/.bashrc
#放在家home目录下只有当前用户生效,放在/etc下的每个登录用户都会起作用
还有一些在退出时生效的环境变量文件夹

二、环境变量配置文件的功能
1.环境变量存放位置生效顺序:



上面是完整登陆过程生效顺序,但是我们有的时候会使用sudo来调整登录用户,这属于不完整登陆,完整登陆是用户登录或注销的过程,而不是切换用户过程
切换用户是从/etc/bashrc开始的,完整登陆是从/etc/profile开始的。
2.详解环境变量文件位置:
(1)./etc/profile的作用:
USER变量:
LOGNAME变量:
MAIL变量:
PATH变量:
HOSTNAME变量:
HISTSIZE变量:
umask:
调用/etc/profile.d/*.sh
[root@localhost ~]# vim /etc/profile

(2).umask
umask
#查看系统默认属性
注意:
1)文件最高权限为666
2)目录最高权限为777
3)权限不能够使用数字进行换算,而必须使用字母
[root@localhost ~]# touch abc
[root@localhost ~]# umask
0022
[root@localhost ~]# ll
总用量 56
-rw-r—r—. 1 root root 4906 1月 15 01:12 abc
[root@localhost ~]#
rw-rw-rw- ----w--w- (去掉重复的权限)=rw-r—r-- 计算结果和预计一致,但是文件是一开始没有执行权限的,而目录有
4)umask定义的权限,是系统默认权限中准备丢弃的权限
(3).~/.bash_profile的作用
调用了~/.bashrc文件
在PATH变量后面加入了“:$HOME/bin”这个目录
注:后续文件注意不要覆盖了
(4). /etc/bashrc的作用
PS1变量
umask
PATH变量
调用/etc/profile.d/*.sh文件

三、其它环境变量配置文件
(1).注销时生效的环境变量配置文件
~/.bash_logout
补充:如果在命令中输入明文的用户名和密码,建议清除历史命令,这条命令可以放~/.bash_logout,但正常情况下不用不用每次都清除
(2). ~/.bash_history
[root@localhost ~]# ls –a

123 .bash_history#存放位置,硬盘
#注意当前登陆的命令在内存位置,只有当退出时执行命令才会保存到指定位置,这也是用命令history和vim .bash_history查看命令历史存放文件,发现命令条数不一致
(3).Shell登录信息
1)本地终端欢迎信息:/etc/issue
所支持的转义符



[root@localhost ~]# vim /etc/issue
CentOS release 6.3 (Final)
Kernel \r on an \m
建议把\l加入到登陆界面,可以用Alt + F2切换本地终端,本地终端一般有6个,用Alt+F1切回
2)远程终端欢迎信息:/etc/issue.net
转义符在/etc/issue.net文件中不能使用
是否显示欢迎信息,由ssh的配置文件/etc/ssh/sshd_config决定,加入“Banner/etc/issue.net”行才能显示(记得重启SSH服务)
[root@localhost ~]# vim /etc/issue.net
[root@localhost ~]# vim /etc/ssh/sshd_config
找到#Banner None,取消注释,然后改成“Banner /etc/issue.net”
重启ssh服务:[root@localhost ~]# service sshd restart
停止 sshd: [确定]
正在启动 sshd: [确定]
[root@localhost ~]#
3)登录后欢迎信息:/etc/motd
不管是本地登陆还是远程登录,都可以显示此欢迎信息,但是在登陆后显示
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息