Soy nuevo en los scripts de shell. No entiendo cuál es la $DISPLAY
variable ambiental.
Tengo Ubuntu 13.10 y uso /bin/bash
shell. Tengo dos monitores
Preguntas:
El comando
echo $DISPLAY
se imprimirá:0.0
en mi máquina (en ambos monitores). ¿Qué significa esto?¿En qué casos la
$DISPLAY
variable estará en blanco o NULL?¿Hay algún artículo o tutorial sobre esto?
xorg
environment-variables
Chandrayya GK
fuente
fuente
echo $DISPLAY
está imprimiendo:0
NO:0.0
Respuestas:
La palabra mágica en el sistema de ventanas X es PANTALLA. Una pantalla consta (simplificada) de:
Una pantalla es administrada por un programa de servidor, conocido como un servidor X. El servidor sirve para mostrar capacidades a otros programas que se conectan a él.
El servidor remoto sabe dónde debe redirigir el tráfico de red X a través de la definición de la variable de entorno DISPLAY que generalmente apunta a un servidor X Display ubicado en su computadora local.
El valor de la variable de entorno de visualización es:
dónde:
hostname es el nombre de la computadora donde se ejecuta el servidor X. Un nombre de host omitido significa localhost.
D es un número de secuencia (generalmente 0). Se puede variar si hay varias pantallas conectadas a una computadora.
S es el número de pantalla. Una pantalla puede tener múltiples pantallas. Por lo general, solo hay una pantalla donde 0 es el valor predeterminado.
Ejemplo de valores
hostname:D.S
significa la pantalla S en la pantalla D del nombre de host del host; el servidor X para esta pantalla está escuchando en el puerto TCP 6000 + D.host/unix:D.S
significa la pantalla S en la pantalla D del host host; el servidor X para esta pantalla está escuchando en el socket de dominio UNIX /tmp/.X11-unix/XD (por lo que solo se puede acceder desde el host).:D.S
es equivalente a host / unix: DS, donde host es el nombre de host local.: 0.0 significa que estamos hablando de la primera pantalla adjunta a su primera pantalla en su host local
Lea más aquí y aquí y aquí .
Desde una página de manual X (7):
fuente
/dev/tty1
), obtuve el espacio en blanco$DISPLAY
.:0
para$DISPLAY
.Las respuestas existentes no abordan la imagen más amplia.
Si no está utilizando un entorno gráfico (es decir, está iniciando sesión en la consola del sistema sin ventanas, etc.) o si está iniciando sesión de forma remota desde un terminal de solo texto a través de SSH o similar, como desde una computadora con Windows que ejecuta PuTTY) no hay interfaz gráfica de usuario involucrada y, por
DISPLAY
lo general, no se configurará. Su único medio de comunicarse con la computadora es la línea de comando (aunque puede haber formas de pasar a una sesión de GUI si sabe cómo hacerlo).Si está iniciando sesión en la consola con una interfaz gráfica (en Ubuntu, generalmente se usa el GDM greeter) o utilizando un terminal gráfico (como desde una computadora con Windows que ejecuta eXceed o mobaX, o software de escritorio remoto como un cliente VNC)
DISPLAY
El programa configura la variable que administra su sesión gráfica para indicar a los clientes gráficos a qué dispositivos de E / S conectarse.Tradicionalmente, la GUI en una computadora Ubuntu ejecutaba X.org, una implementación X11, aunque más recientemente, Canonical introdujo un reemplazo modernizado llamado Mir; e incluso más recientemente, creo que Mir será abandonada en favor de otro proyecto con objetivos ampliamente similares llamados Wayland . Estos reemplazos están destinados a reducir la complejidad de una pila X11 completa, a la que no vamos a entrar aquí; se adhieren a la misma
DISPLAY
convención, que es, después de todo, lo que estamos discutiendo aquí.En X11, la parte del host
DISPLAY
podría ser un servidor remoto, y usaría su computadora Ubuntu como una "terminal gráfica" para acceder a archivos y programas en ese servidor remoto (en cuyo caso su computadora es el "servidor" que sirve un teclado , un mouse y uno o más dispositivos de visualización para programas "cliente" que se ejecutan en el servidor remoto ...). Más comúnmente, el servidor X11 (o Mir, o Wayland) y los programas cliente (un administrador de escritorio y varios clientes gráficos como un navegador web, un cliente de correo electrónico, un programa de calendario, etc.) se ejecutan en su computadora. Esto se indica mediante la parte del "servidor" delDISPLAY
valor, que en este último caso suele estar vacío (lo que implica el valor predeterminadolocalhost
).Un servidor X11 puede ejecutar una o más sesiones gráficas; por ejemplo, el inicio de sesión de su consola y una sesión remota de VNC podrían ejecutarse al mismo tiempo. En este caso (si son administrados por la misma instancia del servidor X11), tiene más de una "pantalla" en términos X11. En la práctica, una sesión (un evento de inicio de sesión y la instancia de escritorio generada a partir de esto) es una pantalla en X11.
Una de esas pantallas puede tener una o más pantallas. Tradicionalmente, esto significaba un monitor, aunque la arquitectura original tenía algunos rasgos desafortunados, como la incapacidad de mover una ventana de una pantalla a otra. Complementos como Xinerama y Xrandr enturbiaron aún más la situación hasta el punto en que una pantalla a menudo conecta múltiples monitores de varias maneras.
Si ha jugado con sistemas de múltiples monitores, probablemente haya descubierto que puede organizar los monitores de varias maneras y terminar con un área rectangular donde sus monitores muestran algunas partes y otras partes no están asignadas a ningún monitor. Esta es la "pantalla" que crea X11, y si tiene más de una tarjeta de visualización, puede tener varias de estas pantallas, cada una asignada a uno o más monitores (o en teoría, ejecutándose sin un monitor; Xvfb explota esto para permitir ejecutar X11 sin ningún monitor, simplemente mapeando la GUI a una región de memoria para cualquier propósito).
fuente
Desde https://help.ubuntu.com/community/EnvironmentVariables :
Variable- PANTALLA
Ejemplo de valores:
Para que sirve
fuente
: 0.0 significa número de pantalla 0 y número de pantalla 0
En caso de error en su $ DISPLAY y esto no sucede normalmente
Algunos tutoriales y recursos se pueden encontrar aquí:
fuente