Die vorhandenen Antworten gehen nicht auf das Gesamtbild ein.
Wenn Sie keine grafische Umgebung verwenden (dh Sie melden sich an der Systemkonsole ohne Fenster usw. an oder Sie melden sich remote von einem Nur-Text-Terminal über SSH oder ähnlichem an, z. B. von einem Windows-Computer, auf dem PuTTY ausgeführt wird) Es ist keine grafische Benutzeroberfläche beteiligt und DISPLAY
wird normalerweise deaktiviert. Die einzige Möglichkeit, mit dem Computer zu kommunizieren, ist die Befehlszeile (wenn Sie wissen, wie Sie in eine GUI-Sitzung wechseln können).
Wenn Sie sich an der Konsole mit einer grafischen Oberfläche anmelden (unter Ubuntu wird normalerweise der GDM-Begrüßer verwendet) oder ein grafisches Terminal verwenden (z. B. von einem Windows-Computer mit eXceed oder mobaX oder einer Remotedesktopsoftware wie einem VNC-Client) DISPLAY
Die Variable wird von dem Programm eingerichtet, das Ihre grafische Sitzung verwaltet, um grafischen Clients anzuzeigen, mit welchen E / A-Geräten eine Verbindung hergestellt werden soll.
Traditionell lief auf der GUI eines Ubuntu-Computers X.org, eine X11-Implementierung. In jüngerer Zeit wurde jedoch von Canonical ein modernisierter Ersatz namens Mir eingeführt. und ich glaube, dass Mir in letzter Zeit zugunsten eines anderen Projekts mit im Großen und Ganzen ähnlichen Zielen, Wayland, aufgegeben wird . Diese Ersetzungen sollen die Komplexität eines vollständigen X11-Stacks verringern, auf den wir hier nicht näher eingehen werden. Sie halten sich an dieselbe DISPLAY
Konvention, die wir schließlich hier diskutieren.
Unter X11 könnte der Host-Teil DISPLAY
ein Remote-Server sein, und Sie würden Ihren Ubuntu-Computer als "grafisches Terminal" verwenden, um auf Dateien und Programme auf diesem Remote-Server zuzugreifen (in diesem Fall ist Ihr Computer der "Server", der eine Tastatur bedient) , eine Maus und ein oder mehrere Anzeigegeräte für "Client" -Programme, die auf dem fernen ... Server ausgeführt werden). In der Regel werden der X11-Server (oder Mir- oder Wayland-Server) und die Client-Programme (ein Desktop-Manager und verschiedene grafische Clients wie ein Webbrowser, ein E-Mail-Client, ein Kalenderprogramm usw.) auf Ihrem Computer ausgeführt. Dies wird durch den "Server" -Teil des DISPLAY
Werts angezeigt , der im letzteren Fall normalerweise leer ist (was den Standardwert impliziert localhost
).
Auf einem X11-Server können eine oder mehrere grafische Sitzungen ausgeführt werden. Beispielsweise können Ihre Konsolenanmeldung und eine Remote-VNC-Sitzung gleichzeitig ausgeführt werden. In diesem Fall (wenn sie von derselben X11-Serverinstanz verwaltet werden) haben Sie mehr als eine "Anzeige" in X11-Begriffen. In der Praxis entspricht eine Sitzung (ein Anmeldeereignis und die daraus hervorgehende Desktop-Instanz) einer Anzeige in X11.
Eine solche Anzeige kann einen oder mehrere Bildschirme haben. Traditionell bedeutete dies einen Monitor, obwohl die ursprüngliche Architektur einige unglückliche Eigenschaften aufwies, wie die Unfähigkeit, ein Fenster von einem Bildschirm auf einen anderen zu verschieben. Add-Ons wie Xinerama und Xrandr trübten die Situation bis zu dem Punkt, an dem ein Bildschirm häufig mehrere Monitore auf verschiedene Weise miteinander verbindet.
Wenn Sie mit Systemen mit mehreren Monitoren gespielt haben, haben Sie wahrscheinlich festgestellt, dass Sie Monitore auf verschiedene Weise anordnen können und einen rechteckigen Bereich erhalten, in dem einige Teile der Monitore angezeigt werden und andere Teile keinem Monitor zugewiesen sind. Dies ist der "Bildschirm", den X11 erstellt. Wenn Sie über mehr als eine Grafikkarte verfügen, können Sie mehrere dieser Bildschirme einem oder mehreren Monitoren zuweisen (oder theoretisch ohne Monitor ausführen; Xvfb nutzt dies aus, um dies zu ermöglichen Sie können X11 ohne Monitore ausführen, indem Sie die GUI einfach einem Speicherbereich zuordnen (für welchen Zweck auch immer).
echo $DISPLAY
wird:0
NICHT gedruckt:0.0