上文思考問題中講到其餘方法查看系統變量。本文不徹底列舉如下幾種。java
#打印系統環境變量PATH [root@promote ~]# echo $PATH /usr/lib64/qt-3.3/bin:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/root/bin [root@promote ~]# export #其餘方法還有set 、declare等 [root@promote ~]# set
變量字面意思能夠理解爲變和量,分別表明變化和值(量)。使用賦值符號=。量推薦使用""。本文推薦=讀做賦值,不要讀做等於。其餘編程語言有==相似於等於。shell
變量能夠分爲全局變量和局部變量,顧名思義,能夠理解爲變量所在區域做用範圍不一樣,界限不是很明顯。編程
變量還能夠分爲系統環境變量和用戶自定義變量。系統環境變量對全部用戶生效,用戶環境變量對當前用戶生效。bash
系統變量用於定義Shell環境,保證SHell腳本正常輸出,肯定用戶名稱、命令所在目錄、終端類型、版本、主機名等衆多信息。查看系統變量方法已經介紹過(env等命令)。服務器
#演示常見幾個變量,更多信息使用env命令 [root@promote bin]# echo $HOME /root [root@promote bin]# echo $USER root [root@promote bin]# echo $UID 0 [root@promote bin]#
export 命令建立環境變量,通常臨時使用或者每次使用均須要建立。關閉終端後變量消失。舉例以下編程語言
[root@promote ~]# export name="tom" [root@promote ~]# echo $name tom #退出用戶終端,XShell退出用戶終端須要從新鏈接服務器 [root@promote ~]# exit 登出 Connection closing...Socket close. Connection closed by foreign host. Disconnected from remote host(CentOS7 演示環境) at 15:49:05. Type `help' to learn how to use Xshell prompt. [C:\~]$ Connecting to 192.168.216.140:22... Connection established. To escape to local shell, press 'Ctrl+Alt+]'. WARNING! The remote SSH server rejected X11 forwarding request. Last login: Sun Mar 31 14:33:59 2019 from 192.168.216.1 [root@promote ~]# #name變量爲空,實際無輸出,顯示爲空行 [root@promote ~]# echo $name [root@promote ~]# #方法2 [root@promote ~]# export name [root@promote ~]# name="tom" [root@promote ~]# echo $name tom #方法3 [root@promote ~]# name="tom";export name #方法4 [root@promote ~]# declare -x name="bill" [root@promote ~]# echo $name bill [root@promote ~]#
注意對比以上各類方法不一樣點。ui
變量名稱以字母和下劃線開頭,能夠接數字或字母,不要有含特殊符號。變量內容能夠以單引號或雙引號包圍,也能夠不使用,三者具備不一樣意義。code
Java 在Linux 系統中應用普遍,分爲Oracle JDK和OpenJDK等,本文以yum 安裝 OpenJDK 爲例演示用戶自定義變量建立過程。server
#查看文件名包含java軟件列表 [root@promote ~]# yum -y list java* #安裝OpenJDK 1.8.0 [root@promote ~]# yum -y install java-1.8.0-openjdk* #卸載OpenJDK 1.8.0,不執行該命令 [root@promote ~]# yum -y remove java-1.8.0-openjdk* #查看Java版本 [root@promote ~]# java -version openjdk version "1.8.0_201" OpenJDK Runtime Environment (build 1.8.0_201-b09) OpenJDK 64-Bit Server VM (build 25.201-b09, mixed mode) [root@promote ~]# [root@promote bin]# which java /usr/bin/java [root@promote bin]# ls -l /usr/bin/java | grep "java" lrwxrwxrwx 1 root root 22 3月 31 15:33 /usr/bin/java -> /etc/alternatives/java [root@promote]# ls -l /etc/alternatives/ | grep -F "java" [root@promote]# export JAVA_HOME=/etc/alternatives/
若是但願環境變量永久生效,須要將環境變量寫入用戶或系統配置文件。不一樣系統和用戶配置文件分別位於rem
#用戶變量,以root爲例,表示root用戶當前文件夾隱藏文件.bashrc [root@promote ~]# ls -l .bashrc -rw-r--r--. 1 root root 176 12月 29 2013 .bashrc #系統變量 [root@promote bin]# ls /etc/bashrc /etc/bashrc [root@promote bin]# ls /etc/profile /etc/profile [root@promote bin]#
Shell 解釋器調取配置文件具備優先級,優先調取/etc/bashrc文件,而後根據需求分別讀取其餘配置文件。
使配置文件生效使用 source 配置文件 命令。
取消變量使用unset命令。能夠取消用戶和系統環境變量。
[root@promote ~]# unset JAVA_HOME [root@promote ~]# echo $USER root [root@promote ~]# unset $USER [root@promote ~]# echo $USER #name變量爲空,實際無輸出,顯示爲空行
下一講繼續介紹變量使用細節。敬請期待