什麼是 DISPLAY=:0?
是
DISPLAY=:0
什麼,它是什麼意思?這不是命令,是嗎?(
gnome-panel
是一個命令。)DISPLAY=:0 gnome-panel
DISPLAY=:0 gnome-panel
是一個 shell 命令,它執行外部命令gnome-panel
並將環境變數DISPLAY
設置為:0
. shell 語法僅在指定命令的持續時間內設置環境變數。大致相當於。*VARIABLE*=*VALUE* *COMMAND*``*VARIABLE*``(export *VARIABLE*=*VALUE*; exec *COMMAND*)
環境變數
DISPLAY
告訴 GUI 程序如何與 GUI 通信。一個Unix系統可以執行多台X伺服器,即多台顯示器。這些顯示器可以是物理顯示器(一個或多個顯示器),或遠端顯示器(通過網路轉發,例如通過 SSH),或虛擬顯示器,如Xvfb等。指定顯示器的基本語法是; 如果省略該部分,則顯示為本地顯示。*HOST*:*NUMBER*``*HOST*
顯示器從 0 開始編號,因此
:0
啟動的第一個本地顯示器也是如此。在典型設置中,這是電腦顯示器上顯示的內容。像所有環境變數一樣,
DISPLAY
是從父程序繼承到子程序的。例如,當您登錄到 GUI 會話時,登錄管理器或會話啟動器會DISPLAY
適當設置,並且該變數會被會話中的所有程序繼承。當您使用 X 轉發打開 SSH 連接時,SSH 會將DISPLAY
環境變數設置為轉發的連接,以便您在遠端機器上執行的程序顯示在本地機器上。如果沒有轉發 X 連接(或者因為 SSH 配置為不這樣做,或者因為沒有本地 X 伺服器),則 SSH 不會設置DISPLAY
.顯式設置
DISPLAY
會導致程序顯示在通常不會顯示的位置。例如,DISPLAY=:0 gnome-panel
在 SSH 連接中執行會在遠端機器的本地顯示器上啟動一個 Gnome 面板(假設有一個並且使用者有權訪問它)。顯式設置DISPLAY=:0
通常是一種從本地會話外部訪問機器本地顯示的方法,例如通過遠端訪問或從 cron 作業。
它是一個環境變數,僅傳遞給該程序,而不是整個 shell。當您將變數設置在與命令相同的行時,就會發生這種情況。
X11 程序需要知道在哪裡顯示視窗,因為它是一個客戶端/伺服器系統,您可以在遠端機器上顯示。這僅僅意味著使用本地機器上的第一個顯示器。
這通常在登錄到桌面環境時自動設置。例如,打開一個圖形終端並輸入
echo $DISPLAY
.