博客 > Linux入門:關(guān)于Linux環(huán)境變量的知識(shí)點(diǎn)匯總
瀏覽量:1781次評(píng)論:0次
作者:銳成網(wǎng)絡(luò)整理時(shí)間:2024-05-13 16:30:14
Linux操作系統(tǒng)是一款開(kāi)放源代碼的操作系統(tǒng),被廣泛應(yīng)用于各種領(lǐng)域,例如服務(wù)器、嵌入式設(shè)備以及個(gè)人電腦等。而要深入了解Linux操作系統(tǒng),了解其環(huán)境變量是非常重要的。本文將匯總了關(guān)于Linux環(huán)境變量的知識(shí)點(diǎn),涵蓋Linux環(huán)境變量的基本概念、分類、相關(guān)操作命令、常見(jiàn)的環(huán)境變量、環(huán)境變量文件以及獲取環(huán)境變量等知識(shí),幫助您更好地掌握Linux。
一、什么是環(huán)境變量?
環(huán)境變量(environment variables)一般是指在操作系統(tǒng)中用來(lái)指定操作系統(tǒng)運(yùn)行環(huán)境的一些參數(shù)。環(huán)境變量本質(zhì)就是一張表,保存在內(nèi)存當(dāng)中。該表在用戶登錄系統(tǒng)的時(shí)候,給用戶生成的特定的環(huán)境變量表。
環(huán)境變量的主要用途:
二、環(huán)境變量分類
按生命周期分:
按作用域分:
三、環(huán)境變量相關(guān)操作命令
1)echo
查看指定環(huán)境變量的值
2) env
查看當(dāng)前用戶全部的環(huán)境變量。
3) export
export: 設(shè)置一個(gè)新的環(huán)境變量
也可以顯示當(dāng)前系統(tǒng)定義的所有環(huán)境變量。
4) set
set: 顯示本地定義的shell變量和環(huán)境變量
5) unset命令
unset: 取消本地變量和環(huán)境變量
6) printenv
printenv 環(huán)境變量名:查看指定環(huán)境變量的值。
四、常見(jiàn)的環(huán)境變量
HOME:指定用戶的主工作目錄(即用戶登陸到Linux系統(tǒng)中時(shí),默認(rèn)的目錄)。
PWD:顯示當(dāng)前目錄。
SHELL:當(dāng)前用戶用的是哪種Shell。
HISTSIZE:保存歷史命令記錄的條數(shù)。
HOSTNAME:主機(jī)的名稱,應(yīng)用程序如果要用到主機(jī)名的話,通常是從這個(gè)環(huán)境變量中取得。
LOGNAME:當(dāng)前用戶的登錄名。
LANG/LANGUGE:和語(yǔ)言相關(guān)的環(huán)境變量,使用多種語(yǔ)言的用戶可以修改此環(huán)境變量。
1)PATH
功能和作用
PATH表示可執(zhí)行程序的搜索目錄,可執(zhí)行程序包括Linux系統(tǒng)命令和用戶的應(yīng)用程序。
我們都知道之所以要加上 ./ ,是因?yàn)樵诔绦蜻\(yùn)行時(shí),需要說(shuō)明該可執(zhí)行程序所處的路徑,執(zhí)行一個(gè)命令的前提是先找到它。
如果我們?cè)敢?,也可以使用絕對(duì)路徑來(lái)說(shuō)明。
接下來(lái)我們思考一下為什么同為可執(zhí)行程序的 ls 、 pwd 等等諸多指令在使用時(shí)不需要加 ./ 來(lái)說(shuō)明其所處路徑呢?
這是因?yàn)樵谙到y(tǒng)中存在一個(gè)環(huán)境變量幫助我們?cè)谔囟窂较滤阉鬟@些默認(rèn)指令,這個(gè)環(huán)境變量叫做 PATH 。
如果可執(zhí)行程序的目錄不在PATH指定的目錄中,執(zhí)行時(shí)需要指定目錄,這就是執(zhí)行不在PATH中的可執(zhí)行程序時(shí)為什么要加./或者絕對(duì)路徑的原因。
書(shū)寫格式
PATH環(huán)境變量存放的是目錄列表,目錄之間用冒號(hào):分隔,最后的圓點(diǎn).表示當(dāng)前目錄。
export PATH=目錄1:目錄2:目錄3:......目錄n:.
PATH缺省包含Linux系統(tǒng)命令所在目錄(/usr/local/bin:/usr/bin:/usr/local/sbin:/usr/sbin),如果不包含這些目錄,Linux的常用命令也無(wú)法執(zhí)行(要輸入絕對(duì)路徑才能執(zhí)行)。
添加格式
export PATH=$PATH:$HOME/bin 或 export PATH=$HOME/bin:$PATH
2)LD_LIBRARY_PATH
功能和作用
C/C++語(yǔ)言動(dòng)態(tài)鏈接庫(kù)文件搜索的目錄,它不是Linux缺省的環(huán)境變量,但對(duì)C/C++程序員來(lái)說(shuō)非常重要。
LD_LIBRARY_PATH環(huán)境變量存放的也是目錄列表,目錄之間用冒號(hào):分隔,最后的圓點(diǎn).表示當(dāng)前目錄,與PATH的格式相同。
書(shū)寫格式
export LD_LIBRARY_PATH=目錄1:目錄2:目錄3:......目錄n:.
3)C_INCLUDE_PATH、CPLUS_INCLUDE_PATH
功能和作用
C_INCLUDE_PATH 指明C頭文件的搜索路徑,CPLUS_INCLUDE_PATH指明C++頭文件的搜索路徑。
添加格式
推薦
一般情況下Linux是不會(huì)設(shè)置這些環(huán)境變量的。
所以在對(duì)某一個(gè)環(huán)境變量第一次設(shè)置時(shí),應(yīng)該直接將其賦值為所需的目錄,在之后的設(shè)置中再使用遞歸式的賦值;或者直接一次性將所有目錄用:分隔開(kāi),一起賦值;或者索性不使用這些環(huán)境變量,而是在編譯時(shí)使用-I參數(shù)來(lái)添加包含目錄。
4)CLASSPATH
JAVA語(yǔ)言庫(kù)文件搜索的目錄,它也不是Linux缺省的環(huán)境變量,但對(duì)JAVA程序員來(lái)說(shuō)非常重要。
CLASSPATH環(huán)境變量存放的也是目錄列表,目錄之間用冒號(hào):分隔,最后的圓點(diǎn).表示當(dāng)前目錄,與PATH的格式相同。
五、環(huán)境變量文件
本小節(jié)介紹Linux下幾個(gè)與環(huán)境變量配置相關(guān)的配置文件。
1. /etc/profile 文件
此文件為系統(tǒng)的每個(gè)用戶設(shè)置環(huán)境信息,當(dāng)用戶第一次登錄時(shí),該文件被執(zhí)行。
并從 /etc/profile.d 目錄的配置文件中收集 shell 的設(shè)置。
如果你有對(duì) /etc/profile 有修改的話必須得手動(dòng)執(zhí)行 source /etc/profile,修改才會(huì)生效,此修改對(duì)每個(gè)用戶都生效。
2. /etc/profile.d 目錄(推薦)
/etc/profile 在每次啟動(dòng)時(shí)會(huì)執(zhí)行 /etc/profile.d 下全部的腳本文件。
3. /etc/bashrc 文件
為每一個(gè)運(yùn)行終端的用戶執(zhí)行此文件。當(dāng)終端被打開(kāi)時(shí),該文件被讀取。如果你想對(duì)所有的使用終端的用戶修改某個(gè)配置并在以后打開(kāi)的終端都生效的話可以修改這個(gè)文件,修改這個(gè)文件不用重啟,重新打開(kāi)一個(gè)終端即可生效。
Ubuntu沒(méi)有此文件,與之對(duì)應(yīng)的是 /etc/bash.bashrc。
4. ~/.bash_profile 或 ~/.bash_login 或 ~/.profile 文件(推薦)
每個(gè)用戶都可使用該文件輸入專用于自己使用的 shell 信息,當(dāng)用戶登錄時(shí),該文件僅僅執(zhí)行一次!默認(rèn)情況下,它設(shè)置一些環(huán)境變量,執(zhí)行用戶的 ~/ .bashrc 文件。此文件類似于 /etc/profile,也是需要手動(dòng)執(zhí)行 source ~/.profile,修改才會(huì)生效,/etc/profile 對(duì)所有用戶生效,~/.profile 只對(duì)當(dāng)前用戶生效。
~/.bash_profile、 ~/.bash_login 和 ~/.profile 文件往往只存在一個(gè),這與Linux的發(fā)行版本有關(guān)。centos中為 ~/.bash_profile,ubuntu則為 ~/.profile。
執(zhí)行的順序?yàn)椋簙/.bash_profile > ~/.bash_login > ~/.profile
5. ~/.bashrc 文件
當(dāng)用戶登錄時(shí)以及每次打開(kāi)新的Shell時(shí)該文件都將被讀取。(每個(gè)用戶都有一個(gè) ~/.bashrc 文件,在用戶目錄下) 此文件類似于 /etc/bashrc,不需要重啟就可以生效,重新打開(kāi)一個(gè) bash 即可生效,/etc/bashrc 對(duì)所有用戶新打開(kāi)的 bash 都生效,但 ~/.bashrc 只對(duì)當(dāng)前用戶新打開(kāi)的 bash 生效。不推薦在里面配置用戶專用的環(huán)境變量,因?yàn)槊块_(kāi)一個(gè)Shell,該文件都會(huì)被讀取一次,效率肯定受影響。
6. ~/.bash_logout 文件
當(dāng)每次退出系統(tǒng)(退出 bash shell)時(shí),執(zhí)行該文件。可把一些清理工作的命令放到這文件中。
7. 執(zhí)行順序
1. /etc/profile
2. /etc/bashrc
3. /etc/profile.d
4. ~/.bash_profile | ~/.bash_login | ~/.profile
5. ~/.bashrc
六、獲取環(huán)境變量
1. 全局變量environ
environ 變量是一個(gè)char** 類型,存儲(chǔ)著系統(tǒng)的環(huán)境變量
實(shí)例:
執(zhí)行結(jié)果:
2. 命令行參數(shù)
也可以通過(guò)命令行參數(shù)傳遞環(huán)境變量
實(shí)例:
執(zhí)行結(jié)果:
3. getenv
要想直接獲取某個(gè)環(huán)境變量,也可以調(diào)用函數(shù)去獲取,可以使用庫(kù)函數(shù)getenv()獲取環(huán)境變量。
舉例:通過(guò)getenv獲取環(huán)境變量PWD, 實(shí)現(xiàn)自己的PWD指令:
#include<stdio.h>
#include<stdlib.h>
int main()
{
char*pwd=getenv("PWD");
if(pwd==NULL)
perror("getenv");
else
printf("%s\n", pwd);
return 0;
}
通過(guò)本文的介紹,我們了解了Linux環(huán)境變量的相關(guān)知識(shí),這可以提高我們對(duì)Linux操作系統(tǒng)的理解和運(yùn)用能力。希望本文對(duì)您學(xué)習(xí)Linux有所幫助。
重要聲明:本文來(lái)自一口Linux,經(jīng)授權(quán)轉(zhuǎn)載,版權(quán)歸原作者所有,不代表銳成觀點(diǎn),轉(zhuǎn)載的目的在于傳遞更多知識(shí)和信息。
相關(guān)文章推薦
2025-05-27 11:53:22
2024-08-20 17:58:16
2024-08-19 17:49:29
2024-08-19 10:23:28
2024-08-16 17:06:33
熱門工具
標(biāo)簽選擇
閱讀排行
我的評(píng)論
還未登錄?點(diǎn)擊登錄