登录Shell和交互Shell的区别
遇到两个shell的概念:
交互式登录shell和交互式非登录shell。要理解上面两个术语,先要理清两个概念登录shell和交互shell
###登录shell(Login shell)
从tty下登录(login)进去的shell称为登录shell,在已经登录的shell执行bash或者su命令启动的shell称为非登录shell(non-login shell)注意:通过命令su -l [username]可以进入登录shell,另外在图形界面(如Gnome)打开的命令行窗口(terminal)属于非登录shell。
配置文件
登录shell和非登录shell启动的时候会装载不同的配置文件。
登录shell
/etc/profile~/.bash_profile~/.profile
非登录shell
/etc/bashrc或者/etc/bash.bashrc~/.bash_rc
交互shell(Interactive Shell)
交互就是REPL(Read-Eval-Print-Loop)。通俗的说,就是你输入点什么,它执行,然后你查看输出结果,周而复始。我们通常使用的shell都是交互shell。而非交互shell常见的场景是执行bash脚本的时候bash script.sh。shell以一种静默的方式逐行连续执行脚本。
登录shell和交互shell是两个不同纬度的概念,所以组合就有所谓的交互式登录shell和交互式非登录shell。
如何退出交互shell
对于非登录shell执行exit命令,对于登录shell执行logout命令.