login shell 和 non-login shell 的区别

login shell:取得 bash 时需要完整的登录流程。就是说通过输入账号和密码登录系统,此时取得的 shell 称为login shell

non-login shell:取得sbash接口的方法不需要重复登录的举动。如以 X Window 登录 linux 后,再以X的图形界面启动终端机,此时那个终端机并没有需要输入账号和密码,那个 bash 环境就是 non-login shell。在原本的 bash 环境下再次执行bash命令,同样也没有输入账号密码就进入新的 bash 环境(前一个 bash 的子进程),新的 bash 也是 non-login shell

那么,到底两者的区别在哪里?

login shell:此种方式登录时,shell 会重新读取/etc/profile和~/.bash_profile来应用新的环境变量。
non-login shell:此时 shell 不会读取 /etc/profile~/.bash_profile,而是读取 ~/.bashrc 来应用新的环境变量。

当以 non-login shell 登录时,如果希望获取用户的环境变量,执行 source ~/.bash_profile 即可。

扩展阅读

.bash_profile 和 .bashrc 的区别

©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容