在Ubuntu中添加到profile.local?

在Ubuntu中添加到profile.local?

我被告知要使用/etc/profile.local以下几行进行调整(以 root 用户身份):

export PATH=$PATH:~/cmds:.
export LD_LIBRARY_PATH=$LD_LIBRARY_PATH:~/lib
export LIBRARY_PATH=$LIBRARY_PATH:~/lib
export ALLOW=1

但我似乎找不到profile.local文件,我在 Ubuntu 14.04 上。无论如何,我需要执行此操作的程序正在查找命令cmds,所以我假设这只是更新我的路径?

我对 Linux 相当陌生,所以任何帮助将不胜感激。我尝试更新 global /etc/profile,但这没有任何作用。

答案1

如果/etc/profile.local不存在,那么您可以简单地创建它并在任何文本编辑器中编写这些行,或者简单地复制并粘贴此行:

cat <<EOF>/etc/profile.local
export PATH=$PATH:~/cmds:.
export LD_LIBRARY_PATH=$LD_LIBRARY_PATH:~/lib
export LIBRARY_PATH=$LIBRARY_PATH:~/lib
export ALLOW=1
EOF

之所以告诉您将其放入,/etc/profile.local是因为该文件不会被覆盖,而是/etc/profile会在系统更新时更新。

答案2

作为中描述的方法的替代方法@jimmij 关于的回答/etc/profile.local,诸如此类的更改也可以放置在下面的文件中/etc/profile.d

该目录中的文件是在帐户登录时获取的。例如:

$ ls -l /etc/profile.d/ | head -5
total 120
-rw-r--r--. 1 root root  771 Mar 26  2014 256term.csh
-rw-r--r--. 1 root root  841 Mar 26  2014 256term.sh
-rw-r--r--. 1 root root 2864 Apr 23 04:28 autojump.bash
-rw-r--r--. 1 root root  619 Apr 23 04:28 autojump.sh

当用户使用任何 bourne 风格的 shell(例如zshbashcsh.

这些文件只是包含您的导出,如下所示:

$ more /etc/profile.d/lithograph_software.sh
export PATH=$PATH:$HOME/cmds:.
export LD_LIBRARY_PATH=$LD_LIBRARY_PATH:$HOME/lib
export LIBRARY_PATH=$LIBRARY_PATH:$HOME/lib
export ALLOW=1

答案3

遇到同样的问题,但没有在任何地方找到这个简单的解决方案。通过添加自定义命令创建文件后,您应该在用户文件/etc/profile.local中添加下一个字符串.profile

test -s /etc/profile.local && . /etc/profile.local

对于所有用户,您有两种情况:

  1. 如果用户不存在,请将此行添加到

    /etc/skel/.profile
    

    ~/.bash_profile如果您的用户已经有 SKEL 目录或文件,则默认情况下可能会错过 SKEL 目录~/.bash_login。而且它不适用于现有用户。

  2. 对于现有用户(例如,如果这是 root),您应该手动将其添加到/root/.profile或将其他用户添加到~/.profile~/.bash_profile。并在这一步后重新登录。

此建议适用于 Ubuntu 等操作系统。其他操作系统可以有这个内置解决方案。例如 SUSE Linux。

相关内容