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

login shell和non-login shell环境配置

2013-12-17 17:18 232 查看
一、测试场景

1、login shell 场景: 当系统启动时或你开启一个新的终端登录系统时,系统通过调用/bin/login程序处理登录并在一个shell中显示命令行提示符,这个shell就是login shell,也就是说通过用户名和密码登录的shell,例如:ssh远程登录以及图形界面登录(输入用户名和密码)

2、non-login shell 场景: 当用户直接在shell窗口中通过bash以及登录图形界面后打开的shell(CTRL+ALT+T)。



二、配置文件解析顺序

login shell :

1、全局(所有用户)设定 /etc/profile 只有login shell 才会读取

2、局部(依据用户)设定 ~/.bash_profile

~/.bash_login

~/.profile

其實 bash 的 login shell 設定只會讀取上面三個檔案的其中一個, 而讀取的順序則是依照上面的順序。也就是說,如果 ~/.bash_profile 存在,那麼其他兩個檔案不論有無存在,都不會被讀取。 如果 ~/.bash_profile 不存在才會去讀取 ~/.bash_login,而前兩者都不存在才會讀取 ~/.profile 的意思。(摘自鸟哥)



non-login shell:

局部(依据用户)设定: ~/.bashrc

當你取得 non-login shell 時,該 bash 設定檔僅會讀取 ~/.bashrc 而已啦(摘自鸟哥)。但是从父进程上继承过来的环境变量依然存在!
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: