客户端程序(例如,您的图形应用程序)通过检查 DISPLAY
环境变量来了解要连接到哪个显示器。不过,可以通过在启动客户端时给它命令行参数 -display hostname:0
来覆盖此设置。一些示例可能会使事情更清楚。
我们的计算机在外部被称为 light,并且我们在域 uni.verse 中。如果我们运行一个正常的 X 服务器,则显示器被称为 light.uni.verse:0
。我们想要在远程计算机上运行绘图程序 xfig,该计算机名为 dark.matt.er
,并在此处 light 上显示其输出。
假设您已经 telnet 登录到远程计算机 dark.matt.er
。
如果您在远程计算机上运行 csh
dark% setenv DISPLAY light.uni.verse:0
dark% xfig &
或者,另一种方法是
dark% xfig -display light.uni.verse:0 &
如果您在远程计算机上运行 sh
dark$ DISPLAY=light.uni.verse:0
dark$ export DISPLAY
dark$ xfig &
或者,另一种方法是
dark$ DISPLAY=light.uni.verse:0 xfig &
或者,当然,也可以
dark$ xfig -display light.uni.verse:0 &
似乎某些版本的 telnet 会自动将 DISPLAY
变量传输到远程主机。如果您使用的是其中之一,那么您很幸运,不必手动设置它。如果不是,大多数版本的 telnet 确实会传输 TERM
环境变量;通过一些明智的技巧,可以将 DISPLAY
变量搭载到 TERM
变量上。
搭载的想法是,您进行一些脚本编写以实现以下目的:在 telnet 登录之前,将 DISPLAY
的值附加到 TERM
。然后 telnet 登出。在远程端,在适用的 .*shrc
文件中,从 TERM
读取 DISPLAY
的值。