Linux環境變量命令——env、export、set


這三個命令都可以用來顯示shell變量

env:顯示所有的環境變量

set:顯示所有本地定義的shell變量

export:把一個變量變作環境變量。export不加參數的時候,顯示哪些變量被導出成了用戶變量,一個shell自己的變量可以通過export “導出”變成一個用戶變量(env和export顯示基本一樣,env多了一個_=/usr/bin/env)

 

關於哪些變量是環境變量,可以簡單地理解成在當前進程的子進程有效則為環境變量,否則不是。

 

按變量的生存周期來划分,Linux 變量可分為兩類:

  1. 永久的:需要修改配置文件,變量永久生效;

  2. 臨時的:使用 export 命令行聲明即可,變量在關閉 shell 時失效。

這里介紹兩個重要文件 /etc/bashrc(有的 Linux 沒有這個文件) 和 /etc/profile ,它們分別存放的是 shell 變量和環境變量。還有要注意區別的是每個用戶目錄下的一個隱藏文件,

可以通過命令ls -a來查看隱藏的文件(隱藏文件名前面都有一個.,如.profile)。

1. 在/etc/profile文件中添加變量【對所有用戶生效(永久的)】

用VI在文件/etc/profile文件中增加變量,該變量將會對Linux下所有用戶有效,並且是“永久的”。

例如:編輯/etc/profile文件,添加CLASSPATH變量

# vi /etc/profile

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

注:修改文件后要想馬上生效還要運行# 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時就沒有這個變量,需要使用的話還需要重新定義。
三、另外

1.使用readonly命令設置只讀變量,如果使用了readonly命令的話,變量就不可以被修改或清除了。

2.使用unset命令來清除環境變量 $ unset TEMP_KEVIN #刪除環境變量TEMP_KEVIN


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM