“作为登录 shell 运行命令”有什么作用?

“作为登录 shell 运行命令”有什么作用?

我安装了几个单独的程序,其中一些需要我进入我的 GUI 终端设置并启用/禁用“作为登录 shell 运行命令”选项才能使其正常工作。

例子:

我安装了Ruby on Rails。不幸的是,我必须进入终端选项并启用“以登录 shell 身份运行命令”才能将其置于我的 PATH 中。

在我安装之前,这并不是什么大问题性感狂欢提示,仅当禁用该选项时才有效。

所以我的问题本质上是:“以登录 shell 身份运行命令”有什么作用?有没有办法让禁用时运行的东西在以登录 shell 身份运行时运行?

答案1

假设您的 shell 是 Bash(Ubuntu 中的默认设置),则存在以下区别:

  • 当作为登录shell,Bash 将在启动时读取~/.bash_profile(如果不存在,则读取~/.profile)。在某些情况下,此文件~/.bashrc也会读取。

  • 当作为未登录shell,Bash 将读取~/.bashrc

那么,为什么在以登录/非登录 shell 运行时会看到不同的行为?因为您的.bash_profile/.profile执行的操作与您的 不同.bashrc

对于你的情况我建议的解决方案是复制.bash_profile对/进行的自定义.profile粘贴将它们放入.bashrc禁用“作为登录 shell 运行命令”。

相关内容