Linux環境變數的設定、檢視、刪除

haohaoxuexiyai發表於2020-12-09

環境變數一般是指在作業系統中用來指定作業系統執行環境的一些引數,比如臨時資料夾位置和系統資料夾位置等等。

一、Linux的變數種類

按變數的生存週期來劃分,Linux變數可分為兩類:

1、永久的:需要修改配置檔案,變數永久生效。

2、臨時的:使用export命令宣告即可,變數在關閉shell時失效。

二、設定變數的三種方法

1、在/etc/profile檔案中新增變數【對所有使用者生效(永久的)】

用VI在檔案/etc/profile檔案中增加變數,該變數將會對Linux下所有使用者有效,並且是“永久的”。

例如:編輯/etc/profile檔案,新增PATH變數

# vi /etc/profile
export PATH=/home/fs : $PATH

注:修改檔案後要想馬上生效還要執行# source /etc/profile不然只能在下次重進此使用者時生效。

2、在使用者目錄下的.bash_profile檔案中增加變數【對單一使用者生效(永久的)】

用VI在使用者目錄下的.bash_profile檔案中增加變數,改變數僅會對當前使用者有效,並且是“永久的”。

例如:編輯guok使用者目錄(/home/guok)下的.bash_profile

$ vi /home/guok/.bash.profile

新增如下內容:

export CLASSPATH=./JAVA_HOME/lib;$JAVA_HOME/jre/lib

注:修改檔案後要想馬上生效還要執行$ source /home/guok/.bash_profile不然只能在下次重進此使用者時生效。

3、直接執行export命令定義變數【只對當前shell(BASH)有效(臨時的)】

在shell的命令列下直接使用[export 變數名=變數值]

定義變數,該變數只在當前的shell(BASH)或其子shell(BASH)下是有效的,shell關閉了,變數也就失效了,再開啟新shell時就沒有這個變數,需要使用的話還需要重新定義。

三、PATH宣告,其格式為:

PATH=$PATH:<PATH 1>:<PATH 2>:<PATH 3>:------:

你可以自己加上指定的路徑,中間用冒號隔開。環境變數更改後,在使用者下次登陸時生效。

如果想立刻生效,則可執行下面的語句:$source .bash_profile

需要注意的是,最好不要把當前路徑”./”放到PATH裡,這樣可能會受到意想不到的攻擊。

完成後,可以通過$ echo $PATH檢視當前的搜尋路徑。這樣定製後,就可以避免頻繁的啟動位於shell搜尋的路徑之外的程式了。

四、常用的環境變數

   PATH    決定了shell將到哪些目錄中尋找命令或程式

   HOME    當前使用者主目錄

   HISTSIZE    歷史記錄數

   LOGNAME    當前使用者的登入名

   HOSTNAME    指主機的名稱

   SHELL      當前使用者Shell型別

   LANGUGE     語言相關的環境變數,多語言可以修改此環境變數

   MAIL      當前使用者的郵件存放目錄

   PS1      基本提示符,對於root使用者是#,對於普通使用者是$

五、常用的環境變數相關命令

1.顯示環境變數HOME

[root@docker-cry001 centos64]# echo $HOME
/root

2.設定一個新的環境變數hello

[root@docker-cry001 centos64]# export HELLO="Hello"
[root@docker-cry001 centos64]# echo $HELLO
Hello

3. 使用env命令顯示所有的環境變數

[root@docker-cry001 centos64]# env
XDG_SESSION_ID=43
HOSTNAME=docker-cry001
SELINUX_ROLE_REQUESTED=
SHELL=/bin/bash
TERM=xterm
HISTSIZE=1000
HELLO=Hello
SSH_CLIENT=192.168.122.1 52113 22
SELINUX_USE_CURRENT_RANGE=
OLDPWD=/home/centos64
...

4. 使用set命令顯示所有本地定義的Shell變數

[root@docker-cry001 centos64]# set
BASH=/bin/bash  
BASH_VERSINFO=([0]="2"[1]="05b"[2]="0"[3]="1"[4]="release"[5]="i386-redhat-linux-gnu")  
BASH_VERSION='2.05b.0(1)-release'  
COLORS=/etc/DIR_COLORS.xterm  
COLUMNS=80  
DIRSTACK=()  
DISPLAY=:0.0  
...

5. 使用unset命令來清除環境變數

set可以設定某個環境變數的值。清除環境變數的值用unset命令。如果未指定值,則該變數值將被設為NULL。示例如下:

centos64@docker-cry001 ~]$ env | grep HELLO  #此命令有輸出,證明環境變數HELLO  已存在
HELLO=Hello
[centos64@docker-cry001 ~]$ unset HELLO
[centos64@docker-cry001 ~]$ env | grep HELLO #此命令沒輸出,證明環境變數HELLO已被消除了
(這裡也可以使用echo $HOME來輸出)

6. 使用readonly命令設定只讀變數

如果使用了readonly命令的話,變數就不可以被修改或清除了。示例如下:

centos64@docker-cry001 ~]$ export TEST="Test" #增加一個環境變數TEST  
centos64@docker-cry001 ~]$ readonly TEST #將環境變數TEST設為只讀  
centos64@docker-cry001 ~]$ unset TEST #此變數無法刪除  
bash: unset: TEST: cannot unset: readonly variable 
centos64@docker-cry001 ~]$ TEST="NEW" #此變數不可更改  
bash: TEST: readonly variable

轉載:https://blog.csdn.net/zjy900507/article/details/79579420

相關文章