Linux是一個多用戶的作業系統。多用戶意味著每個用戶登入系統後,都有自己專用的運作環境。而這個環境是由一組變數所定義,這組變數被稱為環境變數。使用者可以對自己的環境變數進行修改以達到對環境的要求。
這類變數對系統內的所有使用者都生效,所有使用者都可以使用這類變數。作用範圍是整個系統。
此文件只在root下才能修改。
# vi /etc/profile export CLASSPATH=./JAVA_HOME/lib:$JAVA_HOME/jre/lib
新增完成後新的環境變數不會立即生效,立即生效需要執行 source /etc/profile ,否則只能在下次重入此使用者時才能生效。
在使用者目錄下的.bash_profile 檔案中新增變量,該檔案是隱藏文件,可使用ll -a檢視:
$ whoami rethink $ vi /home/rethink/.bash_profile export CLASSPATH=./JAVA_HOME/lib:$JAVA_HOME/jre/lib $ source /home/rethink/.bash_profile
在上圖中用紅框框住了兩個檔案:.bashrc 和.bash_profile ,原則上講設定此類環境變數時在這兩個檔案任意一個裡面添加都是可以的,這兩個檔案的差異為:.bash_profile是互動式login方式進入bash shell運行,.bashrc是互動式non-login方式進入bash shell運行。
可以理解為.bash_profile檔案只會在使用者登入的時候讀取一次,而.bashrc在每次開啟終端機進行一次新的會話時都會讀取。
暫時有效的環境變數(只針對目前shell有效)
此類環境變數只對目前的shell有效。當我們退出登入或關閉終端機再重新開啟時,這個環境變數就會消失。是臨時的。
設定方法:命令列下直接使用[export 變數名=變數值] 定義變數。
$ export NAME="rethink" $ echo $NAME rethink
設定環境變數常用指令
#更新環境變數 更新環境變數直接重新賦值即可:NAME=’test’ (注意:變數名前不需要加$);
PATH # echo $PATH /usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/root/bin
路徑之間以冒號分隔,這些路徑都是一些可以找到執行程式的目錄清單。當我們輸入一個指令時,shell會先檢查指令是否是系統內部指令,如果不是則會再去檢查此指令是否是一個應用程序,shell會試著從PATH中尋找這些應用程式。
如果shell在這些路徑目錄裡沒有找到可執行文件,就會報錯;若找到,系統將呼叫執行應用程式。透過設定PATH ,可以讓我們執行程式或指示更加方便。
將某個目錄路徑加入PATH中,可以這樣寫:
$ pwd /root/docker/httpd $ export PATH=$PATH:$PWD $ echo $PATH /usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/root/bin:/root/docker/httpd `可以看到在PATH后面已经加上了我们当前所处目录的路径`
#使用者的主工作目錄,即為使用者登入Linux系統時的預設目錄。
$ whoami rethink $ echo $HOME /home/rethink
#儲存歷史指令的條數。我們輸入的指令都會被系統保存下來,這個環境變數記錄的就是保持指令的條數。一般為1000。
$ echo $HISTSIZE 1000 $ HISTSIZE=1001 $ echo $HISTSIZE 1001
歷史命令是被保存在記憶體中的,當退出或登入shell時,會自動儲存或讀取我們可以透過history命令來查看。可以使用符號 ! 執行指定序號的歷史指令。例如,要執行第2個歷史命令,則輸入!2。
$ history 5 59 ls 60 who 61 history | head -n 5 62 who am i 63 history 5 $ !62 who am i root pts/0 2018-04-04 11:00 (101.81.92.18)
目前使用者登入名稱。
$ echo $LOGNAME rethink
$ echo $HOSTNAME JDu4e00u53f7
当前用户使用的shell种类。
$ echo $SHELL /bin/bash
以上是Linux 環境變數總結的詳細內容。更多資訊請關注PHP中文網其他相關文章!