ubuntu:profile.d 和 .bash_profile 遺失

ubuntu:profile.d 和 .bash_profile 遺失

我已經閱讀了一些有關 Linux 啟動等的內容,我注意到在我的主目錄中不存在資料夾profile.d

/home/user/profile.d/ # Doesn't exists

也不是文件.bash_profile

/home/user/.bash_profile # Doesn't exists

是否有一個原因?

Ubuntu 15.04、侏儒

答案1

簡短回答:沒關係,所以。

有許多初始化使用者文件,因為使用者可以決定以多種不同的方式登入電腦帳戶,從控制台,使用互動式或非互動式 shell,使用不同類型的 shell。這不是所有用戶的特權,但需要保持向後相容性事情變得複雜了一點這些事。 :-)

  • 一個目錄profile.d 不應該在你的主目錄下
    /etc/profile.d包含具有特定於應用程式的啟動檔案的腳本,這些腳本也在啟動時由 shell 執行。它是對所有使用者有效的目錄,因此它是在該/etc/路徑下建立的,而不是在每個使用者主目錄下建立的。

  • 該檔案~/.bash_profile是個人初始化檔案之一,並且當它存在時儲存在每個使用者主目錄中。但它並不需要存在。它應該包含啟動登入 shell 時要執行的 bash 特定命令(~/.profile也可以從不同的 shell 讀取,通常理解與 bash 不同的語法)。


INVOCATION閱讀以下部分的更多內容man bash

當 bash 作為互動式登入 shell 被呼叫時 (...)它首先從檔案中讀取並執行命令/etc/profile,如果該文件存在。
讀取該文件後,它會找到~/.bash_profile, ~/.bash_login, 和~/.profile,以該順序,並閱讀和 從第一個存在且可讀的命令開始執行命令

因此,如果您有一個文件,如果未在其他文件之一中調用(或來源),~/.bash_profile則不會讀取該文件。~/.profile

注意

當啟動非登入 shell 的互動式 shell 時,bash 會讀取並執行來自/etc/bash.bashrc和 的命令~/.bashrc(如果這些檔案存在)。

從 Ubuntu 12 的某些版本(當然從 13.10 開始)中,.profile原始檔是~/.bashrc.

ssh當執行使用者不希望取得的登入 shell 時(例如進入電腦時),這可能會導致意外行為~/.bashrc

參考:

相關內容