“登录”和“交互式”bash shell 有什么区别?我在下面引用了维基百科,但有人能给出更好的答案吗?
编辑:这是一个社区 wiki,因此您可以提供哪些情况需要哪种类型的 $SHELL 的示例,而不是投票关闭
启动脚本
当 Bash 启动时,它会执行各种不同脚本中的命令。
当 Bash 作为交互式登录 shell 调用时,它首先从文件 /etc/profile 中读取并执行命令(如果该文件存在)。读取该文件后,它会按顺序查找 ~/.bash_profile、~/.bash_login 和 ~/.profile,然后从第一个存在且可读的文件中读取并执行命令。
当登录 shell 退出时,Bash 从文件 ~/.bash_logout(如果存在)读取并执行命令。
当一个不是登录 shell 的交互式 shell 启动时,Bash 从 ~/.bashrc 读取并执行命令,如果该文件存在的话。这可以通过使用 --norc 选项来禁止。--rcfile 文件选项将强制 Bash 从文件而不是 ~/.bashrc 读取和执行命令。
在您的登录 shell 的配置文件中,您可以设置一些您将在会话期间使用的东西,并且只需要完成一次。一些想法:
在非登录 shell 的文件 (
.bashrc
) 中,您应该配置您的 shell:.bash_profile
通常,您将包括
.bashrc
from.bash_profile
与以下内容。然后登录 shell 获取您的所有自定义,并且.bash_profile
文件不必复制.bashrc
.