########################部分资料来自于网络,添加和修改了一些个人的理解########################
先说明三个概念(注意字符界面系统和图形化界面系统的区别):
1、登录shell(交互式)
正常登录程序启动的shell.既登录成功后紧接着给登录用户启动的shell.
(个人理解,如果你没有使用图形化的桌面环境,而是使用的字符界面的系统,那么你刚刚登录后的,出现命令提示符的shell就是‘登录shell’
但如果你使用的是图形化的桌面环境(startx)那么这个登录shell就是承载了你系统的所有环境配置的shell,你在桌面环境下虽然看不到命令提示符,但它确实始终都在,
并且你所看到的整个图形化的界面就在这个shell中
另外登录shell会执行/etc/profile)
2、非登录交互式shell
这个shell的工作方式是交互式的,等用户输入,然后执行,再等用户输入。显然登录shell就是一个交互式shell。
如下,我们可获得一个非登录交互式shell:
[root@localhost ~]# bash (个人理解,运行‘bash’后就会新启动一个交互式shell,然而这个shell并没有输入用户名和密码所以它就是非登录交互式shell)
[root@localhost ~]# pwd
/root
[root@localhost ~]#
(个人理解,上面是字符界面系统环境下的启动非登录交互式shell
而当你在图形化桌面环境下,当你按Ctrl+Alt+T来启动一个终端后等待你输入命令时、这个终端不需要输入用户和密码来登录、它其实就是一个非登录交互式shell)
3、非交互式shell(非登录)
为运行一个shell脚本启动的shell.