我偷偷學(xué)了這五個(gè)命令,打印Linux環(huán)境變量那叫一個(gè)“絲滑”
一、概述
在基于 Linux 和 Unix 的系統(tǒng)中,環(huán)境變量是一組動(dòng)態(tài)命名值,存儲(chǔ)在系統(tǒng)中,供在 shell 或子 shell 中啟動(dòng)的應(yīng)用程序使用。簡(jiǎn)單來(lái)說(shuō),環(huán)境變量是具有名稱和關(guān)聯(lián)值的變量。
在 Linux 中有多種方法可以列出或顯示環(huán)境變量,我們可以使用env、printenv、declare或set命令列出系統(tǒng)中的所有變量。
在本教程中,我們將給大家分享如何在 Linux 中列出環(huán)境變量。
二、環(huán)境變量必知的規(guī)則
- 環(huán)境變量遵循<NAME>=<VALUE>格式。
- 等號(hào)=兩邊沒(méi)有空格
- 可以通過(guò)使用冒號(hào)分隔單個(gè)變量來(lái)指定多個(gè)值:``=::`
- 環(huán)境變量區(qū)分大小寫。
- 習(xí)慣上,環(huán)境變量名稱設(shè)置為大寫。
- Shell 變量與環(huán)境變量不同。Shell 變量?jī)H適用于當(dāng)前 shell,不適用于任何子進(jìn)程。
三、列出環(huán)境變量
3.1 printenv
printenv是最常用的顯示環(huán)境變量的命令,如果變量的名稱作為參數(shù)提供給命令,則僅顯示變量的值,printenv如果沒(méi)有給出參數(shù),則打印所有環(huán)境變量的列表,每行一個(gè)變量。
我們執(zhí)行命令看下效果。
執(zhí)行結(jié)果:
查看HOME環(huán)境變量的值:
執(zhí)行結(jié)果:
我們注意到HOME是執(zhí)行printenv命令后的變量:
所以我們想要查看什么參數(shù)的時(shí)候,直接printenv后加上其變量即可。
比如:
執(zhí)行結(jié)果:
那么這些參數(shù)到底是什么意思呢?我們選擇幾個(gè)常用的解釋一下。
- USER:當(dāng)前登錄的用戶。
- HOME:當(dāng)前用戶的主目錄。
- EDITOR:用作默認(rèn)文件編輯器。
- SHELL:當(dāng)前用戶的 shell 路徑,例如 bash 或 zsh。
- LOGNAME:此處顯示當(dāng)前用戶的名稱。
- PATH:運(yùn)行命令時(shí),這是要搜索的目錄列表。
- LANG:區(qū)域設(shè)置的當(dāng)前設(shè)置。
- TERM:當(dāng)前終端仿真。
- MAIL:當(dāng)前用戶的郵件保存在此位置。
3.2 env
env命令效果和printenv是一樣的,顯示的內(nèi)容也是完全一樣的:
執(zhí)行結(jié)果:
唯一區(qū)別的是過(guò)濾的參數(shù)不一樣,printenv是后面直接加變量名進(jìn)行過(guò)濾,但是env命令需要結(jié)合grep進(jìn)行過(guò)濾,舉個(gè)例子:
執(zhí)行結(jié)果:
3.3 declare
declare命令顯示的是已經(jīng)聲明的環(huán)境變量:
執(zhí)行結(jié)果:
這個(gè)時(shí)候我們?cè)趺慈ミ^(guò)濾呢?
執(zhí)行以下命令即可:
執(zhí)行結(jié)果:
3.4 set
set命令看字面像是設(shè)置變量的,不過(guò)它確實(shí)可以顯示出系統(tǒng)的環(huán)境變量,注意set顯示當(dāng)前 shell 中所有 shell 變量的名稱和值:
執(zhí)行結(jié)果:
這里不止那么多,文章篇幅的原因,不全部截圖出來(lái)。
我們也可以結(jié)合grep命令進(jìn)行過(guò)濾:
執(zhí)行結(jié)果:
3.5 echo
echo命令后加$符號(hào)再加上變量也可以直接打印出環(huán)境變量:
執(zhí)行結(jié)果:
這個(gè)就比較簡(jiǎn)單了,不過(guò)前提是你得知道有哪些變量。
總結(jié)
打印環(huán)境變量這個(gè)操作在運(yùn)維過(guò)程中經(jīng)常用到,本文列舉了5個(gè)常用的打印環(huán)境變量的命令,它們分別是printenv、env、declare、set、echo,希望本文對(duì)您有所幫助。