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

Alb*_*elB 32 command-line

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

例子:

我安装了Ruby on Rails。不幸的是,我必须进入终端选项并启用“将命令作为登录 shell 运行”才能将它放在我的 PATH 中。

在我安装Sexy-bash-prompt 之前,这并不是什么大问题,它仅在该选项被禁用时才有效。

所以我的问题本质上是:“作为登录shell运行命令”有什么作用?当您作为登录shell运行时,有没有办法让它在禁用时运行?

And*_*ini 36

假设您的 shell 是 Bash(Ubuntu 中的默认设置),以下是不同之处:

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

  • 当作为非登录shell运行时,Bash 将读取~/.bashrc.

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

我建议你的情况的解决方法是复制到所做的自定义.bash_profile/ .profile粘贴他们进入.bashrc禁止“运行命令登录shell”。

  • 为什么不直接将 .bashrc 导入 .bash_profile 并保留登录 shell?那可行吗? (2认同)