Quel est DISPLAY=:0
et qu'est-ce que cela veut dire?
Ce n'est pas une commande, n'est-ce pas? (gnome-panel
est une commande.)
DISPLAY=:0 gnome-panel
DISPLAY=:0 gnome-panel
est une commande Shell qui exécute la commande externe gnome-panel
avec la variable d'environnement DISPLAY
définie sur :0
. La syntaxe Shell VARIABLE=VALUECOMMAND
définit la variable d'environnement VARIABLE
pour la durée de la commande spécifiée uniquement. Il est à peu près équivalent à (export VARIABLE=VALUE; exec COMMAND)
.
La variable d'environnement DISPLAY
indique aux programmes GUI comment communiquer avec l'interface graphique. Un système Unix peut exécuter plusieurs serveurs X , c'est-à-dire plusieurs affichages. Ces affichages peuvent être des affichages physiques (un ou plusieurs moniteurs), ou des affichages à distance (transmis sur le réseau, par exemple via SSH), ou des affichages virtuels tels que Xvfb , etc. La syntaxe de base pour spécifier les affichages est Host:NUMBER
; si vous omettez le Host
partie, l'affichage est local.
Les affichages sont numérotés de 0, donc :0
est le premier affichage local démarré. Dans les configurations typiques, c'est ce qui s'affiche sur le (s) moniteur (s) de l'ordinateur.
Comme toutes les variables d'environnement, DISPLAY
est héritée du processus parent au processus enfant. Par exemple, lorsque vous vous connectez à une session GUI, le gestionnaire de connexion ou le démarreur de session définit DISPLAY
de manière appropriée, et la variable est héritée par tous les programmes de la session. Lorsque vous ouvrez une connexion SSH avec le transfert X, SSH définit la variable d'environnement DISPLAY
sur la connexion transférée, afin que les programmes que vous exécutez sur la machine distante soient affichés sur la machine locale. S'il n'y a pas de connexion X transférée (soit parce que SSH est configuré pour ne pas le faire, soit parce qu'il n'y a pas de serveur X local), SSH ne définit pas DISPLAY
.
La définition de DISPLAY
entraîne explicitement l'affichage du programme à un endroit où il ne le serait normalement pas. Par exemple, exécuter DISPLAY=:0 gnome-panel
dans une connexion SSH démarre un panneau Gnome sur l'écran local de la machine distante (en supposant qu'il y en ait un et que l'utilisateur est autorisé à y accéder). Définition explicite de DISPLAY=:0
est généralement un moyen d'accéder à l'affichage local d'une machine depuis l'extérieur de la session locale, par exemple via un accès distant ou à partir d'une tâche cron.
C'est une variable d'environnement qui est transmise uniquement à ce programme, plutôt qu'au shell dans son ensemble. Cela se produit lorsque vous définissez une variable sur la même ligne qu'une commande.
Les programmes X11 doivent savoir où afficher les fenêtres, car il s'agit d'un système client/serveur et vous pouvez afficher sur une machine distante. Cela signifie simplement utiliser le premier affichage sur la machine locale.
Ceci est normalement configuré automatiquement lors de la connexion à un environnement de bureau. Par exemple, ouvrez un terminal graphique et tapez echo $DISPLAY
.