Shell

什麼是 DISPLAY=:0?

  • April 2, 2015

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.

引用自:https://unix.stackexchange.com/questions/193827