最重要的设置可以设置在登录 shell 的全局 shell 初始化文件中:对于 tcsh 是 /etc/csh.login,对于 bash 是 /etc/profile。
无法从这些文件获取正确路径的例外情况包括 rsh 命令、ssh 命令、X 窗口管理器中没有显式启动登录 shell 的菜单项、从 inittab 调用的命令、cron 任务、守护进程任务(如从 lprd 启动的 magic filters)、WWW CGI 脚本等等。
如果在 /etc/csh.cshrc 中设置了路径,即使 rsh 或 ssh 在使用 tcsh/csh 账户的远程机器上执行命令,路径也是正确的。但是,如果账户使用 bash/sh,则无法设置路径。
可以将路径设置合并到一个文件中,例如 /etc/environment-common 文件。我们在那里写入
${EXPORT}PATH${EQ}/bin:/usr/bin:/sbin:/usr/sbin:/usr/bin/X11:/usr/local/bin:/usr/games:.
这可以从 /etc/csh.login 中使用 (对于 tcsh 和 csh)
set EQ=" " set EXPORT="setenv " source /etc/environment-common
以及从 /etc/profile 中使用 (对于 bash,不适用于普通的 sh)
EQ='=' EXPORT="export " . /etc/environment-common
以及从 /etc/environment 中使用 (对于 XDM)
EQ="=" EXPORT="export " . /etc/environment-common
这种策略在大多数情况下都有效,但是 ssh 会抱怨 /etc/environment 中的行 (以及定义的环境变量 EQ 和 EXPORT)。而且,使用 bash 执行的 rsh 命令仍然无法获取此路径。