1)/etc/profile
全域性(公有)配置,不管是哪個使用者,登入時都會讀取該檔案。
2)/ect/bashrc
ubuntu沒有此檔案,與之對應的是/ect/bash.bashrc
它也是全域性(公有)的
bash執行時,不管是何種方式,都會讀取此檔案。
3)~/.profile
若bash是以login方式執行時,讀取~/.bash_profile,若它不存在,則讀取~/.bash_login,若前兩者不存在,讀取~/.profile。
另外,圖形模式登入時,此檔案將被讀取,即使存在~/.bash_profile和~/.bash_login。
4)~/.bash_login
若bash是以login方式執行時,讀取~/.bash_profile,若它不存在,則讀取~/.bash_login,若前兩者不存在,讀取~/.profile。
5)~/.bash_profile
unbutu預設沒有此檔案,可新建。
只有bash是以login形式執行時,才會讀取此檔案。通常該配置檔案還會配置成去讀取~/.bashrc。
6)~/.bashrc
當bash是以non-login形式執行時,讀取此檔案。若是以login形式執行,則不會讀取此檔案。
7)~/.bash_logout
登出時,且是longin形式,此檔案才會讀取。也就是說,在文字模式登出時,此檔案會被讀取,圖形模式登出時,此檔案不會被讀取。
下面是在本機的幾個例子:
1)圖形模式登入時,順序讀取:/etc/profile和~/.profile
2)圖形模式登入後,開啟終端時,順序讀取:/etc/bash.bashrc和~/.bashrc
3)文字模式登入時,順序讀取:/etc/bash.bashrc,/etc/profile和~/.bash_profile
4)從其它使用者su到該使用者,則分兩種情況:
5)登出時,或退出su登入的使用者,如果是longin方式,那麼bash會讀取:~/.bash_logout
6)執行自定義的shell檔案時,若使用「bash -l a.sh」的方式,則bash會讀取行:/etc/profile和~/.bash_profile,若使用其它方式,如:bash a.sh, ./a.sh,sh a.sh(這個不屬於bash shell),則不會讀取上面的任何檔案。
7)上面的例子凡是讀取到~/.bash_profile的,若該檔案不存在,則讀取~/.bash_login,若前兩者不存在,讀取~/.profile。
有些命令在定義了path的情況下,普通使用者可以呼叫而加上sudo卻呼叫不了,報command not found的錯誤。
原因是系統在編譯sudo的時候加入了–with-secure-path,這個選項。
–with-secure-path[=path]
要解決這個問題有幾種方法:
1)重新編譯sudo,不加–with-secure-path選項
2)執行命令時使用絕對路徑
如:sudo /home/test/code/go/bin/dlv
3)在環境配置檔案裡加乙個alias【推薦】
例如在/etc/bash.bashrc裡新增:alias sudo='sudo env path=$path:/usr/local/sbin:/sbin'
我們可以在root許可權下先檢視一下path和當前使用者path的區別,然後再追加路徑。
重新登入後生效,這樣我們在執行sudo dlv命令時就等於sudo env path=$path dlv
Debian下環境變數設定
linux下的環境變數分為系統級別和使用者級別。系統級別的會影響所有系統使用者,而使用者級別的只會影響某個單獨使用者。這種分級別的設定是很好的一種系統架構,不確定windows下是不是也有類似的機制。env顯示系統級別環境變數 set顯示使用者級別環境變數 set 變數名稱,設定使用者級別環境變數 ...
Debian下環境變數設定
linux下的環境變數分為系統級別和使用者級別。系統級別的會影響所有系統使用者,而使用者級別的只會影響某個單獨使用者。這種分級別的設定是很好的一種系統架構,不確定windows下是不是也有類似的機制。env顯示系統級別環境變數 set顯示使用者級別環境變數 set 變數名稱,設定使用者級別環境變數 ...
chromedriver路徑和環境變數配置問題
下面說一下我遇到的問題和解決過程 1 問題 我是用python selenium 我的chrome版本是65.0.3325.181,用selenium中的webdriver時,可以開啟瀏覽器,但是輸入文字,點選等一些操作會報如下的錯誤。這個錯誤的意思就是chromedriver版本和chrome版本...