我被告知要使用/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(例如zsh
或bash
或csh
.
這些文件只是包含您的匯出,如下所示:
$ 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
對於所有用戶,您有兩種情況:
如果用戶不存在,請將此行新增至
/etc/skel/.profile
~/.bash_profile
如果您的使用者已經有 SKEL 目錄或文件,則預設可能會錯過 SKEL 目錄~/.bash_login
。而且它不適用於現有用戶。對於現有使用者(例如,如果這是 root),您應該手動將其新增至
/root/.profile
或將其他使用者新增至~/.profile
或~/.bash_profile
。並在這一步驟後重新登入。
此建議適用於 Ubuntu 等作業系統。其他作業系統可以有這個內建解決方案。例如 SUSE Linux。