Linux系統中環境變量

先來介紹以下linu中的環境變量

Linux 的變量可分爲兩類:環境變量和本地變量
環境變量,或者稱爲全局變量,存在與所有的shell 中,在你登陸系統的時候就已經有了相應的系統定義的環境變量了。Linux 的環境變量具有繼承性,即子shell 會繼承父shell 的環境變量。
本地變量,當前shell 中的變量,很顯然本地變量中肯定包含環境變量。Linux 的本地變量的非環境變量不具備繼承性。
Linux 中環境變量的文件
當你進入系統的時候,linux 就會爲你讀入系統的環境變量,這些環境變量存放在什麼地方,那就是環境變量的文件中。Linux 中有很多記載環境變量的文件,它們被系統讀入是按照一定的順序的。
1. /etc/profile :
此文件爲系統的環境變量,它爲每個用戶設置環境信息,當用戶第一次登錄時,該文件被執行。並從/etc/profile.d 目錄的配置文件中搜集shell 的設置。
這個文件,是任何用戶登陸操作系統以後都會讀取的文件(如果用戶的shell 是csh 、tcsh 、zsh ,則不會讀取此文件),用於獲取系統的環境變量,只在登陸的時候讀取一次。
假設用戶使用的是BASH ,那麼
2. /etc/bashrc :
在執行完/etc/profile 內容之後,如果用戶的SHELL 運行的是bash ,那麼接着就會執行此文件。另外,當每次一個新的bash shell 被打開時, 該文件被讀取。
每個使用bash 的用戶在登陸以後執行完/etc/profile 中內容以後都會執行此文件,在新開一個bash 的時候也會執行此文件。因此,如果你想讓每個使用bash 的用戶每新開一個bash 和每次登陸都執行某些操作,或者給他們定義一些新的環境變量,就可以在這個裏面設置。
3. ~/.bash_profile :
每個用戶都可使用該文件輸入專用於自己使用的shell 信息。當用戶登錄時,該文件僅僅執行一次,默認情況下,它設置一些環境變量,執行用戶的.bashrc 文件。
單個用戶此文件的修改只會影響到他以後的每一次登陸系統。因此,可以在這裏設置單個用戶的特殊的環境變量或者特殊的操作,那麼它在每次登陸的時候都會去獲取這些新的環境變量或者做某些特殊的操作,但是僅僅在登陸時。
4. ~/.bashrc :
該文件包含專用於單個人的bash shell 的bash 信息,當登錄時以及每次打開一個新的shell 時, 該該文件被讀取。
單個用戶此文件的修改會影響到他以後的每一次登陸系統和每一次新開一個bash 。因此,可以在這裏設置單個用戶的特殊的環境變量或者特殊的操作,那麼每次它新登陸系統或者新開一個bash ,都會去獲取相應的特殊的環境變量和特殊操作。
~/.bash_logout :
當每次退出系統( 退出bash shell) 時, 執行該文件。
幾個命令
env 和printenv
這兩個變量用於打印所有的環境 變量:
更加詳細的介紹可以參考:http://www.cnblogs.com/growup/archive/2011/07/02/2096142.html

最近配置hudson 發佈項目,ssh 無密碼登路成功,執行命令總是出錯。

執行的命令:

ssh [email protected] ‘jar -xvf sample.war’。

錯誤信息:

bash: jar: command not found。

信息提示說的很清楚在bash中無法找到命令’jar‘。

但是可以通過xshell工具登錄到10.0.0.1輸入用戶名和密碼 是執行 jar 命令。

這裏需要注意通過用戶名和密碼登錄 與 ssh無密碼登錄的環境變量區別。

A ssh 無密碼登錄 之後加載用戶自己的環境變量。環境變量文件在用戶目錄下 .bashrc 和.bash_profile文件中。不能加載/ect/profile文件中的環境變量。

B 通過用戶名和密碼 可以加載/ect/profile文件中的環境變量。

useradd 添加用戶

userdel 刪除用戶

groupadd 添加用戶組

groupdel 刪除用戶組

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章