Ich bin neu in der Shell-Skripterstellung. Ich verstehe nicht, was die $DISPLAY
Umgebungsvariable ist.
Ich habe Ubuntu 13.10 und benutze die /bin/bash
Shell. Ich habe zwei Monitore.
Fragen:
Der Befehl
echo $DISPLAY
wird:0.0
auf meinem Computer gedruckt (auf beiden Monitoren). Was bedeutet das?In welchen Fällen ist die
$DISPLAY
Variable leer oder NULL?Gibt es dazu Artikel oder Tutorials?
xorg
environment-variables
Chandrayya GK
quelle
quelle
echo $DISPLAY
wird:0
NICHT gedruckt:0.0
Antworten:
Das Zauberwort im X-Window-System ist DISPLAY. Eine Anzeige besteht (vereinfacht) aus:
Eine Anzeige wird von einem Serverprogramm verwaltet, das als X-Server bezeichnet wird. Der Server dient zum Anzeigen von Funktionen für andere Programme, die eine Verbindung zu ihm herstellen.
Der Remote-Server weiß über die Definition der Umgebungsvariablen DISPLAY, die in der Regel auf einen X-Display-Server verweist, der sich auf Ihrem lokalen Computer befindet, wo er den X-Netzwerkverkehr umleiten muss.
Der Wert der Anzeigeumgebungsvariablen ist:
wo:
Hostname ist der Name des Computers, auf dem der X-Server ausgeführt wird. Ein weggelassener Hostname bedeutet den localhost.
D ist eine Sequenznummer (normalerweise 0). Sie kann variiert werden, wenn mehrere Displays an einen Computer angeschlossen sind.
S ist die Bildschirmnummer. Eine Anzeige kann tatsächlich mehrere Bildschirme haben. Normalerweise gibt es nur einen Bildschirm, wobei 0 der Standard ist.
Beispiel für Werte
hostname:D.S
bedeutet Bildschirm S auf Anzeige D von Host Hostname; Der X-Server für diese Anzeige überwacht den TCP-Port 6000 + D.host/unix:D.S
bedeutet Bildschirm S auf der Anzeige D von Host Host; Der X-Server für diese Anzeige überwacht den UNIX-Domain-Socket /tmp/.X11-unix/XD (ist also nur vom Host aus erreichbar).:D.S
ist äquivalent zu host / unix: DS, wobei host der lokale Hostname ist.: 0.0 bedeutet, dass es sich um den ersten Bildschirm handelt, der an Ihre erste Anzeige in Ihrem lokalen Host angehängt ist
Lesen Sie hier und hier und hier mehr .
Aus einer X (7) -Manpage:
quelle
/dev/tty1
) anmelde, erhalte ich das Leerzeichen$DISPLAY
.:0
für an$DISPLAY
.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 desDISPLAY
Werts angezeigt , der im letzteren Fall normalerweise leer ist (was den Standardwert impliziertlocalhost
).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).
quelle
Von https://help.ubuntu.com/community/EnvironmentVariables :
Variable-DISPLAY
Werte Beispiel:
Wofür ist es?
quelle
: 0.0 bedeutet Anzeigenummer 0 und Bildschirmnummer 0
Im Falle eines Fehlers in Ihrem $ DISPLAY passiert dies normalerweise nicht
Einige Tutorials und Ressourcen finden Sie hier:
quelle