如何在 Linux 中打印環境變量

環境變量特定於某些環境。 一個通用的答案,對吧?

但實際上,這些是特定於您當前系統環境的變量,例如當前登錄的用戶,將存儲在“USER”變量中。

我還在迷茫嗎? 無後顧之憂。 我將引導您簡要了解環境變量,然後介紹各種打印它們的方法。

什麼是環境變量?

不,它與您的桌面環境無關。

您每天遇到的最基本的環境變量之一是主機名。 那麼,你有沒有想過為什麼它總是全部大寫?

因為大部分環境變量都是系統預定義的,並且是全局變量,所以經常會發現它們都是大寫的。

那麼為什麼首先使用環境變量呢?

假設您是一名程序員,並且您的代碼需要訪問您的數據庫密鑰,該密鑰永遠不應公開共享。

那麼在 Git 上共享完整代碼時您有哪些選擇? 將數據庫密鑰包裝在環境變量中。

這樣,您可以在 Git 中設置指令,例如“如果您希望此代碼正常工作,請將此變量與您的數據庫密鑰交換”。

當然,這是使用環境變量的唯一方法。 那麼讓我們來看看Linux中一些常見的環境變量。

環境變量 描述
顯示當前用戶的主目錄
主機名 包含系統的主機名
用戶標識符 存儲用戶的唯一 ID
顯示當前正在使用的 shell 的路徑。
BASH_VERSION 包含當前使用的 bash 實例的版本
歷史檔案 保存命令歷史的文件路徑
完成的 顯示您正在使用的登錄終端類型
小路 顯示命令的路徑,目錄由列分隔

有幾種方法可以在 Linux 中打印環境變量,我將嘗試介紹其中的每一種。 所以讓我們從最簡單的開始。

使用 printenev 命令

printenv 實用程序用於打印當前 shell 的環境變量。

假設我想使用打印 USERNAME 的值 printenv 所以我的命令如下:

                      
                        printenv USERNAME
                      
                    
使用 printenv 打印 USERNAME

同樣,您也可以使用 printenv 實用程序打印多個環境變量,方法是用 .

那麼如何使用 printenv 一次打印 HOME 和 USERNAME 的值呢?

                      
                        printenv HOME USERNAME
                      
                    

首先,它將打印當前登錄用戶的主目錄,並在第二行顯示主機名。

使用 printenv 打印 HOME 和 USERNAME

但是,如果您正在尋找一種方法來打印當前 shell 中可用的每個環境變量怎麼辦?

您可以通過運行不帶任何選項或參數的 printenv 命令輕鬆完成此操作。

                      
                        printenv
                      
                    
使用 printenv 命令打印當前 shell 中的每個可用環境變量

使用回顯命令

如果你已經使用 Linux 一段時間了,使用這種方法打印環境變量的機會非常高(即使你不知道它不是環境變量)。

現在,讓我向您展示如何使用 echo 打印 USERNAME 的值:

                      
                        echo $USERNAME
                      
                    
Imprimir variable de entorno usando el comando echo使用 echo 命令打印環境變量

但是如果你想使用 echo 打印多個環境變量呢? 只需遵循給定的語法:

                      
                        echo -e "$<variable 1> n<variable 2> n<variable 3>"
                      
                    

那麼使用 echo 一次打印 HOME、USERNAME 和 HOSTNAME 值呢?

                      
                        echo -e "$USERNAME n$HOME n$HOSTNAME"
                      
                    
Use el comando echo para imprimir múltiples valores de variables de entorno使用 echo 打印 HOME、USERNAME 和 HOSTNAME 值

使用 env 命令

Shell 腳本通常使用 env 命令來啟動正確的解釋器,但您也可以使用 env 命令列出可用的環境變量。

如果使用不帶參數或選項的 env 命令,將打印所有可用的環境變量。

                      
                        env
                      
                    
Use el comando env para imprimir la variable de entorno使用 env 命令打印每個可用的環境變量

但是如果你想獲取特定環境變量的值怎麼辦? 您可以使用 grep 命令輕鬆過濾結果。

為了演示,我將使用 echo 命令打印 HOME 的值:

                      
                        env | grep HOME
                      
                    
Use el comando env para imprimir la variable de entorno使用 env 命令打印 HOME 環境變量

使用聲明命令

declare 命令用於聲明變量的值並將其打印到 shell。

像上面顯示的任何其他示例一樣,您可以使用不帶任何參數的聲明,它將獲取可用變量的列表。

                      
                        declare
                      
                    
Use el comando declare para imprimir variables de entorno使用不帶任何參數的 declare 命令打印可用的環境變量

之前我向您展示瞭如何使用 grep 命令過濾結果,但是如果您想過濾多個結果怎麼辦?

首先,我們來看看過濾多個環境變量的語法:

                      
                        declare | grep '<variable 1>|<variable 2>|<variable 3>'
                      
                    

例如,讓我們打印 HOSTNAME 和 USERNAME 的值:

                      
                        declare | grep 'HOSTNAME|USERNAME'
                      
                    
Use grep con declare para imprimir múltiples variables de entorno使用帶有聲明的grep打印多個環境變量

使用設置命令

通常,set 命令用於設置和禁用 shell 中的標誌,以便您可以確定下一個進程的確切行為。

但您也可以使用 set 命令打印當前 shell 的環境變量。

要打印每個環境變量,請使用給定的命令:

                      
                        set
                      
                    
Use el comando set para imprimir variables de entorno使用 set 命令打印可用的環境變量

您可以使用與前一種方法相同的方法來過濾 set 命令的結果。

但是,讓我們看一個使用 grep 命令打印多個環境變量的簡單示例。

                      
                        set | grep 'HISTFILESIZE|HISTFILE|GNOME_SHELL_SESSION_MODE'
                      
                    
Use set commad para imprimir variables de entorno específicas使用帶有grep的set命令過濾和打印多個環境變量

結尾

雖然打印環境變量有幾種方法,但我建議您使用第一種方法,語法在過濾特定變量方面最不復雜。

如果您仍然感到困惑,評論部分對您開放。


相關文章