Les réponses existantes ne parviennent pas à aborder la situation dans son ensemble.
Si vous n'utilisez pas d'environnement graphique (c'est-à-dire que vous vous connectez à la console système sans fenêtre, etc.; ou que vous vous connectez à distance à partir d'un terminal texte uniquement sous SSH ou similaire, par exemple à partir d'un ordinateur Windows exécutant PuTTY), aucune interface graphique n'est impliquée et DISPLAY
sera généralement non définie. La ligne de commande est votre seul moyen de communiquer avec l’ordinateur (bien qu’il soit possible de faire pivoter une session avec une interface graphique si vous savez comment faire).
Si vous vous connectez à la console à l'aide d'une interface graphique (sous Ubuntu, on utilise généralement la sonde GDM) ou à l'aide d'un terminal graphique (tel qu'un ordinateur Windows exécutant eXceed ou mobaX, ou un logiciel de bureau à distance tel qu'un client VNC), DISPLAY
La variable est configurée par le programme qui gère votre session graphique pour indiquer aux clients graphiques les périphériques d’E / S auxquels se connecter.
Traditionnellement, l'interface graphique sur un ordinateur Ubuntu exécutait X.org, une implémentation de X11, bien que plus récemment, un remplacement modernisé appelé Mir ait été introduit par Canonical; et encore plus récemment, je crois que Mir sera abandonné au profit d'un autre projet, appelé Wayland, ayant des objectifs similaires . Ces remplacements ont pour but de réduire la complexité d'une pile X11 complète, ce que nous n'allons pas DISPLAY
aborder ici - ils adhèrent à la même convention, qui est après tout ce dont nous discutons ici.
Sur X11, la partie hôte DISPLAY
peut être un serveur distant et vous utiliseriez votre ordinateur Ubuntu comme un "terminal graphique" pour accéder aux fichiers et aux programmes de ce serveur distant (votre ordinateur est alors le "serveur" qui sert un clavier. souris, et un ou plusieurs périphériques d’affichage pour les programmes "clients" s'exécutant sur le serveur distant). Plus généralement, le serveur X11 (ou Mir ou Wayland) et les programmes clients (un gestionnaire de bureau et divers clients graphiques tels qu'un navigateur Web, un client de messagerie, un programme de calendrier, etc.) s'exécutent tous sur votre ordinateur. Ceci est indiqué par la partie "serveur" de la DISPLAY
valeur, qui dans ce dernier cas est généralement vide (ce qui implique la valeur par défaut localhost
).
Un serveur X11 peut exécuter une ou plusieurs sessions graphiques. Par exemple, votre connexion à la console et une session VNC distante peuvent être exécutées simultanément. Dans ce cas (si elles sont gérées par la même instance de serveur X11), vous avez plusieurs "affichages" en termes X11. En pratique, une session (un événement de connexion et l'instance de bureau créée à partir de celle-ci) correspond à un affichage dans X11.
Un tel affichage peut avoir un ou plusieurs écrans. Traditionnellement, cela signifiait un moniteur, bien que l'architecture originale ait des traits malheureux tels que l'incapacité de déplacer une fenêtre d'un écran à un autre. Des add-ons tels que Xinerama et Xrandr ont encore compliqué la situation au point où un écran connecte souvent plusieurs moniteurs de différentes manières.
Si vous avez joué avec des systèmes à plusieurs moniteurs, vous avez probablement découvert que vous pouvez organiser les moniteurs de différentes manières et vous retrouver avec une zone rectangulaire dans laquelle vos moniteurs en affichent certaines parties et les autres ne sont affectés à aucun moniteur. Il s’agit de "l’écran" créé par X11, et si vous avez plusieurs cartes d’affichage, vous pouvez avoir plusieurs de ces écrans, chacun assigné à un ou plusieurs moniteurs (ou, en théorie, fonctionnant sans moniteur; Xvfb exploite cela pour permettre d’exécuter X11 sans aucun moniteur, en mappant simplement l’interface graphique sur une région de mémoire pour quelque fin que ce soit).
echo $DISPLAY
n'imprimons:0
PAS:0.0