环境变量 DISPLAY

0Refrence

http://blog.chinaunix.net/uid-23072872-id-3388906.html

每个 图形界面程序就是一个 xclient

每台主机上都会运行一个 xserver

xclient 在哪里显示(链接到哪个xserver)和它的终端环境变量DISPLAY 有关


DISPLAY环境变量格式如下host:NumA.NumB, 
host:指Xserver所在的主机主机名或者ip地址, 图形将显示在这一机器上, 
可以是启动了图形界面的Linux/Unix机器, 
也可以是安装了Exceed, X-Deep/32等Windows平台运行的Xserver的Windows机器. 
假如Host为空, 则表示链接运行于本机的Xserver, 
并且图形程序(Xclient)使用unix socket方式连接到Xserver, 而不是TCP方式. 
NumA: 使用TCP方式连接时, NumA为连接的端口减去6000的值, 假如NumA为0, 则表示连接到6000端口; 
 使用unix socket方式连接时则表示连接的unix socket的路径, 假如为0, 则表示连接到/tmp/.X11-unix/X0 . 
NumB:则几乎总是0. 

在2台Linux机器之间, 
假如设置服务器端配置文件/etc/ssh/sshd_config中包含
X11Forwarding no[yes?]

客户端配置文件/etc/ssh/ssh_config包含
ForwardX11 yes

则从客户端ssh到服务器端后会自动设置DISPLAY环境变量, 答应在服务器端执行的图形程序将图形显示在客户端上.
在服务器上查看环境变量显示如下(这个结果不同的时候并不相同)
DISPLAY=localhost:10.0(服务器上的xclient链接到客户端的xserver上)

在客户机上用netstat -lnp可以看到有程序监听了6010端口
tcp        0      0 127.0.0.1:6010          0.0.0.0:*               LISTEN     4827/1

如果机器A通过ssh连接上机器B时,该终端启动一个图形程序,因为该终端的DISPLAY=localhost:10.0,【链接机器A的xserver】

所以,该图形界面会在机器A上显示,如果不想让图形界面在机器B上显示,需执行:
export DISPLAY=:0.0【链接机器B的xserver】

你可能感兴趣的:(Ubuntu,environment)