登录/非登录 shell 的概念与非交互式/交互式 shell 的概念(分别)相同吗?
或者概念正交产生四种不同的组合?
我想获得其清晰的画面.bashrc,.bash_profile脚本获得各种情况下采购的,我发现,文章有时可以互换使用这些概念。
cha*_*aos 56
登录shell:登录 shell 将您以特定用户身份登录到系统,这是必要的用户名和密码。当您点击ctrl+ alt+F1登录虚拟终端时,您会在成功登录后获得:登录外壳(即交互式)。来源文件:
/etc/profile和~/.profileBourne 兼容的外壳(和/etc/profile.d/*)~/.bash_profile 用于 bash/etc/zprofile和~/.zprofilezsh/etc/csh.login和~/.logincsh非登录shell:无需登录即可执行的 shell,为此必须是当前登录的用户。当您在 gnome 中打开图形终端时,它是一个非登录(交互式)shell。来源文件:
/etc/bashrc和~/.bashrcbash交互式外壳:一种外壳(登录或非登录),您可以在其中交互式键入或中断命令。例如 gnome 终端(非登录)或虚拟终端(登录)。在交互式 shell 中,必须设置提示变量 ( $PS1)。来源文件:
/etc/profile 和 ~/.profile/etc/bashrc或/etc/bash.bashrc用于 bash非交互式shell:一个(子)shell,可能从一个自动化进程运行,当调用进程不处理它时,您将既看不到输入也看不到输出。该 shell 通常是非登录 shell,因为调用用户已经登录。运行脚本的 shell 始终是非交互式 shell,但脚本可以通过提示用户输入值来模拟交互式 shell。来源文件:
/etc/bashrc或者/etc/bash.bashrc对于 bash (但是,大多数情况下您会在脚本的开头看到这一点:[ -z "$PS1" ] && return。这意味着如果它是非交互式 shell,则不要做任何事情)。$ENV变量中的文件。