DISPLAY=:0 gnome-panel
é um comando shell que executa o comando externo gnome-panel
com a variável de ambiente DISPLAY
definida como :0
. A sintaxe do shell VARIABLE=VALUE COMMAND
define a variável de ambiente VARIABLE
apenas para a duração do comando especificado. É aproximadamente equivalente a (export VARIABLE=VALUE; exec COMMAND)
.
A variável de ambiente DISPLAY
informa aos programas GUI como se comunicar com a GUI. Um sistema Unix pode executar vários servidores X , ou seja, exibição múltipla. Essas exibições podem ser exibições físicas (um ou mais monitores) ou exibições remotas (encaminhadas pela rede, por exemplo, por meio de SSH) ou exibições virtuais, como Xvfb , etc. A sintaxe básica para especificar exibições é HOST:NUMBER
; se você omitir a parte HOST
, a exibição será local.
As telas são numeradas de 0, então :0
é a primeira exibição local que foi iniciada. Em configurações típicas, isso é o que é exibido no (s) monitor (es) do computador.
Como todas as variáveis de ambiente, DISPLAY
é herdado do processo pai para o processo filho. Por exemplo, quando você faz login em uma sessão da GUI, o gerenciador de login ou o iniciador de sessão define DISPLAY
apropriadamente e a variável é herdada por todos os programas da sessão. Quando você abre uma conexão SSH com o encaminhamento X, o SSH define a variável de ambiente DISPLAY
para a conexão encaminhada, para que os programas que você executa na máquina remota sejam exibidos na máquina local. Se não houver nenhuma conexão X encaminhada (seja porque o SSH está configurado para não fazê-lo ou porque não há um servidor X local), o SSH não define DISPLAY
.
Definir DISPLAY
explicitamente faz com que o programa seja exibido em um lugar onde normalmente não seria. Por exemplo, a execução de DISPLAY=:0 gnome-panel
em uma conexão SSH inicia um painel Gnome na exibição local da máquina remota (supondo que haja uma e que o usuário esteja autorizado a acessá-la). A definição explícita do DISPLAY=:0
é geralmente uma maneira de acessar a exibição local de uma máquina de fora da sessão local, como por exemplo através de um acesso remoto ou de uma tarefa cron.