“登录 shell” 起什么作用?

“登录 shell” 起什么作用?

最近我遇到了终端启动速度慢的问题,所以我研究了一下,发现了一件有趣的事情。我在 MacBook 上使用 iTerm。有一个选择默认行为的选项:

登录 shell 或 zsh

如果我选择“Login shell”,它会提示Last login: Fri Mar 24 17:27:28 on ttys007(下图左侧);如果我选择“zsh”,它不会提示任何内容,而且启动时间非常快(下图右侧)。

login shell 和 zsh 的区别

我使用的默认 shell 是zsh,我想知道“登录 shell”内部发生了什么,以及为什么它与纯 相比如此缓慢zsh

答案1

“登录 shell” 在登录模式,在此模式下,shell 会处理其他配置文件(例如.zlogin或 ).bash_profile。这些文件可能包含太多不必要的命令 - 尽量使它们尽可能轻量。

您可以尝试运行zsh -l并将其与常规进行比较zsh。(虽然-l不是标准“登录模式”开关,很常见。)


(尽管在我看来,终端应用程序甚至在“登录模式”下运行 shell 都有点奇怪……这有点违背了能够配置不同启动命令的整个想法。)

相关内容