快速了解登陆shell与非登陆shell的区别
Linux的环境变量的配置位置
Linux的环境变量可在多个文件中配置,如下:
- /etc/profile
- /etc/profile.d/*.sh
- ~/.bashrc
- ~/.bash_profile等
登陆shell与非登陆shell
bash的运行模式可分为login shell和non-login shell。
例如,我们通过终端,输入用户名、密码,登录系统之后,得到就是一个login shell。
而当我们执行以下命令ssh hadoop103 command,在hadoop103执行command的就是一个non-login shell。
两种shell的区别
这两种shell的主要区别在于,它们启动时会加载不同的配置文件,
login shell启动时会加载/etc/profile,~/.bash_profile,~/.bashrc。
non-login shell启动时会加载~/.bashrc。
而在加载~/.bashrc(实际是~/.bashrc中加载的/etc/bashrc)或/etc/profile时,都会执行如下代码片段,
因此不管是login shell还是non-login shell,启动时都会加载/etc/profile.d/*.sh中的环境变量。
环境变量的配置总结
如果是个人使用的变量建议配置到登陆的shell
相关的配置文件中
如果是系统需要ssh远程登陆使用的变量,配置到 非登陆的shell
相关的配置文件中
学习过程中, 有任何问题 , 都可以留言一起交流学习哦!!!