/etc/profile 中的 $PATH 不被用户 shell 继承

/etc/profile 中的 $PATH 不被用户 shell 继承

/etc/profile我在 Fedora 17 中有这个:

PATH=$PATH:"/usr/pgsql-9.2/bin"
EDITOR="/usr/bin/emacs -nw"
PSQL_EDITOR="/usr/bin/emacs"
PAGER="/usr/bin/less"

export PATH USER LOGNAME MAIL HOSTNAME HISTSIZE HISTCONTROL EDITOR PSQL_EDITOR PAGER

root当我以或 as登录时,$PATH 变量串联有效,postgres但当我登录我的帐户时则无效。我正在使用终结者。

作为根用户:

# echo $PATH
/usr/lib64/qt-3.3/bin:/usr/local/sbin:/usr/local/bin:/sbin:/bin:/usr/sbin:/usr/bin:/usr/pgsql-9.2/bin:/root/bin

作为 postgres:

$ echo $PATH
/usr/lib64/qt-3.3/bin:/usr/local/bin:/bin:/usr/bin:/usr/local/sbin:/usr/sbin:/usr/pgsql-9.2/bin:/usr/pgsql-9.2/bin

在我的帐户中:

$ echo $PATH
/usr/lib64/qt-3.3/bin:/usr/local/bin:/usr/bin:/bin:/usr/local/sbin:/usr/sbin:/home/cpn/.local/bin:/home/cpn/bin

请注意路径的缺失/usr/pgsql-9.2/bin

/home/cpn/.bash_profile有这一行:

PATH=$PATH:$HOME/.local/bin:$HOME/bin
export PATH

当我su -(注意-)到我的帐户时,路径就在那里,所以我猜这是loginvs not loginshell 的问题。

如何让终端始终打开登录shell?

答案1

如果您想要目录在您的PATHfor全部会话,您可以将其添加到/etc/environment.不过,如果您这样做,请务必小心 - 如果您搞砸了,PATH/etc/environment的系统可能将无法再启动。

答案2

不知道这是否是正确的修复。我确实检查了Run command as a login shell终结者 - >配置文件 - >命令。

相关内容