在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。

相關內容