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