相关博客
[Blog-1]: Linux基础-Bash交互式Shell
[Blog-2]: Linux基础-Bash启动文件-profile、bashrc
1.简介
2.说明
login Shell(登录式交互Shell)
系统启动后,用户可选择以下方式登入系统:图形界面登录、控制台直接登录、SSH远程登录。
图形界面登录:在图形界面(如GNOME、KDE、XFCE等)中输入用户名和密码登录。
控制台直接登录:在物理机器或虚拟机的控制台上直接输入用户名和密码登录。
SSH远程登录:通过SSH连接到远程服务器时,输入用户名和密码,这会启动一个LoginShell。
Non-Login Shell(非登录式交互Shell)
顾名思义,Non-Login Shell指不涉及登录过程的shell。
登录后打开新Shell:在已经登录的会话中打开一个新的终端窗口或标签页;在登录后的图形界面唤起Terminal。
执行脚本:执行一个shell脚本,是非登录的,通常也是非交互式的,除非脚本明确要求交互。
后台作业:在后台运行的命令,如使用&将命令放入后台执行。
远程命令执行:如ssh user@host 'command'
执行的远程命令,通常不会启动登录shell,除非指定了-t
、-tt
选项来强制分配一个伪终端。
loginShell与Non-loginShell区别
登录shell:会读取特定的启动文件,如/etc/profile和~/.bash_profile,这些文件中通常包含环境设置和别名等。
非登录shell:通常只读取~/.bashrc(如果存在),这个文件通常包含针对非登录shell的设置。
3.总结
4.参考
[注1]: linux-Interactive Shell(交互式Shell行为说明)
[注2]: Bash脚本set命令教程-阮一峰