什么是$ DISPLAY环境变量?

Modified on: Sat, 09 Jun 2018 09:39:53 +0800

我是shell脚本的新手。我不明白$DISPLAY环境变量是什么。

我有Ubuntu 13.10并使用/bin/bash shell。我有两台显示器。

问题:

  1. 命令echo $DISPLAY将在我的机器上打印:0.0(在两台显示器上)。这是什么意思?

  2. 在哪种情况下$DISPLAY变量是空白还是NULL?

  3. 有没有关于此的文章或教程?

  4. 醇>

最佳答案

X窗口系统中的神奇词是DISPLAY。显示包括(简化):

  • 键盘,
  • 一只老鼠
  • 和一个屏幕。

显示由服务器程序管理,称为X服务器。服务器为其他连接到它的程序提供显示功能。

远程服务器知道必须通过DISPLAY环境变量的定义重定向X网络流量的位置,该变量通常指向位于本地计算机上的X Display服务器。

显示环境变量的值为:

hostname:D.S

其中:

hostname是运行X服务器的计算机的名称。省略的主机名表示localhost。

D是序列号(通常为0)。如果有多台显示器连接到一台计算机,则可以改变它。

S是屏幕编号。显示器实际上可以有多个屏幕。通常只有一个屏幕,但默认为0。

值示例

localhost:4 google.com:0 :0.0

hostname:D.S表示主机主机名显示D上的屏幕S;此显示器的X服务器正在侦听TCP端口6000 + D.

host/unix:D.S表示主机主机D的屏幕S;此显示的X服务器正在UNIX域套接字/tmp/.X11-unix/XD中侦听(因此只能从主机访问)。

:D.S相当于host / unix:D.S,其中host是本地主机名。

:0.0表示我们正在讨论第一个显示在您本地主机中的第一个显示屏幕

了解更多此处此处这里

从X(7)手册页:

  

从用户的角度来看,每个X服务器都有一个显示名称
  形式:

  
  

主机名:displaynumber.screennumber在

  
  

应用程序使用此信息来确定应该如何使用
  连接到服务器,默认情况下应该使用哪个屏幕(打开
  显示多个监视器):

  
  

hostname hostname指定要将机器的名称
  显示器是物理连接的。如果没有给出主机名,则
  最有效的方式与同一台机器上的服务器进行通信
  将会被使用。 displaynumber短语“display”通常用于
  指的是共享一个共同键盘的显示器的集合
  指针(鼠标,平板电脑等)。大多数工作站往往只有一个
  键盘,因此,只有一个显示器。更大的多用户系统,
  但是,经常有几个显示器,以便不止一个人
  可以一次做图形工作。为避免混淆,每次显示
  在机器上为X分配显示编号(从0开始)
  启动该显示的服务器。显示编号必须始终为
  以显示名称给出。 screennumber某些显示器共享一个
  两个或多个监视器之间的键盘和指针。自每个监视器
  有自己的一组窗口,每个屏幕都分配了一个屏幕号码
  (从0开始)启动该显示的X服务器。如果
  屏幕编号未给出,将使用屏幕0。

作者:Community,Maythux

相关问答

添加新评论